IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
UP-0991109
(2001-11-26)
|
등록번호 |
US-7698454
(2010-05-20)
|
발명자
/ 주소 |
- Dyckerhoff, Stefan
- Kritayakirana, Kong
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
3 인용 특허 :
47 |
초록
▼
A system processes packet data received in a number of incoming streams of variable speeds. The system includes an input interface, input logic, and one or more packet processors. The input interface receives the packet data and outputs the data using a first arbitration element. The input logic inc
A system processes packet data received in a number of incoming streams of variable speeds. The system includes an input interface, input logic, and one or more packet processors. The input interface receives the packet data and outputs the data using a first arbitration element. The input logic includes flow control logic, a memory, and a dispatch unit. The flow control logic initiates flow control on the data output by the input interface. The memory stores the data from the input interface. The dispatch unit reads the data from the memory using a second arbitration element. The packet processor(s) process the data from the dispatch unit.
대표청구항
▼
The invention claimed is: 1. A system, comprising: a memory to store data associated with a plurality of incoming streams of different speeds; an interface controller comprising a first arbitration element to arbitrate among the streams to store the data in the memory, the first arbitration element
The invention claimed is: 1. A system, comprising: a memory to store data associated with a plurality of incoming streams of different speeds; an interface controller comprising a first arbitration element to arbitrate among the streams to store the data in the memory, the first arbitration element including a number of first entries, each of the first entries indicating which of the streams is to be serviced in each of a plurality of first time slots, the streams being assigned to the first entries based on the speeds of the streams, where a quantity of the first entries, in the first arbitration element, assigned to one of the streams with a faster one of the different speeds is larger than a quantity of the first entries, in the first arbitration element, assigned to another one of the streams with a slower one of the different speeds, where the interface controller is to: identify one of the first entries corresponding to a particular one of the plurality of first time slots, determine a particular one of the streams identified by the one of the first entries, and store data, associated with the particular one of the streams, in the memory; and a dispatch unit comprising a second arbitration element to arbitrate among the streams to read the data from the memory, the second arbitration element including a number of second entries, each of the second entries indicating which of the streams is to be serviced in each of a plurality of second time slots, the streams being assigned to the second entries based on the speeds of the streams, where a quantity of the second entries, in the second arbitration element, assigned to the one of the streams with the faster one of the different speeds is larger than a quantity of the second entries, in the second arbitration element, assigned to the other one of the streams with the slower one of the different speeds, where the dispatch unit is to: identify one of the second entries corresponding to a particular one of the plurality of second time slots, determine a certain one of the streams identified by the one of the second entries, and read data, associated with the certain one of the streams, from the memory. 2. The system of claim 1, where the memory includes: a plurality of memory buckets corresponding to the streams. 3. The system of claim 2, where the memory buckets have a fixed size. 4. The system of claim 1, each of the first entries including a stream number that identifies one of the streams. 5. The system of claim 1, where the number of the first entries in the first arbitration element is programmable. 6. The system of claim 4, where the interface controller is to: read one of the stream numbers from the first arbitration element, gather data for the identified one of the streams corresponding to the one of the stream numbers, and transfer the gathered data to the memory. 7. The system of claim 6, where the interface controller is further to send a stream identifier with the data transferred to the memory. 8. The system of claim 7, where the memory is further to sort the data from the interface controller based on the stream identifier. 9. The system of claim 1, where the first and second arbitration elements are synchronized. 10. The system of claim 1, each of the second entries including a stream number that identifies one of the streams. 11. The system of claim 1, where the number of the second entries in the second arbitration element is programmable. 12. The system of claim 10, where the dispatch unit is to: read one of the stream numbers from the second arbitration element, read data, for the identified one of the streams corresponding to the one of the stream numbers, from the memory, and output the read data for processing. 13. The system of claim 1, further comprising: flow control logic to initiate flow control on the storing of data in the memory. 14. The system of claim 13, where the flow control includes dropping data from one of the streams. 15. The system of claim 13, where the flow control includes causing the interface controller to stop storing data, from one of the streams, in the memory. 16. The system of claim 13, where the flow control logic includes: a buffer to temporarily store the data from the interface controller in a plurality of entries, a counter to determine a number of entries in the buffer corresponding to each of the streams, and a comparator to determine whether to initiate the flow control for each of the streams based on the determined number of entries for the stream. 17. The system of claim 16, where the comparator is to compare the determined number of entries for a stream to a watermark and initiate the flow control for the stream when the determined number of entries exceeds the watermark. 18. The system of claim 17, where the comparator is further to compare the determined number of entries for the stream to a second watermark and drop data from the stream when the determined number of entries exceeds the second watermark. 19. The system of claim 1, where each of the streams has an associated watermark for performing flow control on the storing of data in the memory. 20. The system of claim 1, where each of the streams has two associated watermarks for performing flow control on the storing of data in the memory. 21. A method, comprising: storing data, from a plurality of streams of potentially different speeds, in a memory using a first arbitration scheme that stores data associated with a faster one of the streams in the memory at a higher rate than data associated with a slower one of the streams, the first arbitration scheme including a plurality of first entries, each of the first entries corresponding to one of a plurality of first time slots, each of the first entries identifying one of the streams, the storing comprising: identifying one of the first entries corresponding to a particular one of the plurality of first time slots, determining a particular one of the streams identified by the one of the first entries, and storing data, associated with the particular one of the streams, in the memory; and reading the data from the memory using a second arbitration scheme that reads the data associated with the faster one of the streams from the memory at a higher rate than the data associated with the slower one of the streams, the second arbitration scheme including a plurality of second entries, each of the second entries corresponding to one of a plurality of second time slots, each of the second entries identifying one of the streams, the reading comprising: identifying one of the second entries corresponding to a particular one of the plurality of second time slots, determining a certain one of the streams identified by the one of the second entries, and reading data, associated with the certain one of the streams, from the memory. 22. The method of claim 21, where the storing includes: storing the data in a plurality of memory buckets in the memory based on the streams to which the data belongs. 23. The method of claim 21, where each of the first entries includes a stream number that identifies one of the streams. 24. The method of claim 23, where a quantity of the first entries for the faster one of the streams is greater than a quantity of the first entries for the slower one of the streams. 25. The method of claim 23, where the storing includes: reading one of the stream numbers, gathering data for the identified one of the streams corresponding to the one of the stream numbers, and transferring the gathered data to the memory. 26. The method of claim 25, where the transferring includes: sending a stream identifier with the gathered data transferred to the memory. 27. The method of claim 26, where the storing further includes: sorting the gathered data based on the stream identifier. 28. The method of claim 21, where the first and second arbitration schemes are synchronized. 29. The method of claim 21, where each of the second entries includes a stream number that identifies one of the streams. 30. The method of claim 29, where a quantity of the second entries for the faster one of the streams is greater than a quantity of the second entries for the slower one of the streams. 31. The method of claim 29, where the reading includes: obtaining one of the stream numbers, obtaining data for the identified one of the streams corresponding to the one of the stream numbers, from the memory, and outputting the obtained data for processing. 32. The method of claim 21, further comprising: initiating flow control on the storing of data in the memory. 33. The method of claim 32, where the initiating includes: temporarily storing the data in a plurality of entries in a buffer, determining a number of entries in the buffer corresponding to each of the streams, and determining whether to initiate the flow control for each of the streams based on the determined number of entries for the stream. 34. The method of claim 33, where the determining whether to initiate the flow control includes: comparing the determined number of entries for a stream to a watermark, and initiating the flow control for the stream when the determined number of entries exceeds the watermark. 35. The method of claim 34, where the determining whether to initiate the flow control includes: comparing the determined number of entries for the stream to a second watermark, and dropping data from the stream when the determined number of entries exceeds the second watermark. 36. The method of claim 32, where the initiating the flow control includes: dropping data from one of the streams. 37. The method of claim 32, where the initiating the flow control includes: stopping the storing of data from one of the streams in the memory. 38. The method of claim 21, where each of the streams has an associated watermark for performing flow control for the associated stream. 39. The method of claim 21, where each of the streams has two associated watermarks for performing flow control for the associated stream. 40. The system of claim 1, where at least one of the first arbitration element or the second arbitration element is to be reprogrammed when the speed of one of the streams changes. 41. The method of claim 21, further comprising: receiving an input that the speed of one of the streams has changed; and reprogramming at least one of the first arbitration element or the second arbitration element based on the received input. 42. The system of claim 40, where the at least one of the first arbitration element or the second arbitration element is reprogrammed to change the number of the first or second entries assigned to the one of the streams. 43. The method of claim 41, where reprogramming the at least one of the first arbitration element or the second arbitration element includes changing the rate at which data associated with the one of the streams is stored in or read from the memory.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.