IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0942625
(2001-08-31)
|
등록번호 |
US-8271672
(2012-09-18)
|
발명자
/ 주소 |
- Zhang, Song
- Lacroute, Phil
- Gupta, Anurag P.
- Lim, Raymond M.
- Godbole, Avanindra
- Basu, Debashis
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
3 인용 특허 :
47 |
초록
▼
Output logic generates read requests using a programmable schedule that controls read bandwidth for multiple data streams and stores the read requests in a queuing device. The output logic also dequeues the read requests based on a similar programmable schedule, forwards the read requests to the mem
Output logic generates read requests using a programmable schedule that controls read bandwidth for multiple data streams and stores the read requests in a queuing device. The output logic also dequeues the read requests based on a similar programmable schedule, forwards the read requests to the memory, and reads data units from the memory based on the read requests.
대표청구항
▼
1. A system for reading data in a network device, comprising: a memory configured to store data units from a plurality of data streams, the plurality of data streams including data received from network links coupled to the network device;a request queue configured to store read requests associated
1. A system for reading data in a network device, comprising: a memory configured to store data units from a plurality of data streams, the plurality of data streams including data received from network links coupled to the network device;a request queue configured to store read requests associated with the plurality of data streams; andoutput logic configured to: generate the read requests using a first programmable schedule, the first programmable schedule identifying an order in which the plurality of data streams are serviced and indicating that higher speed ones of the plurality of data streams are serviced more often than slower speed ones of the plurality of data streams,store the read requests in the request queue,process the read requests in the request queue based on a second programmable schedule, the second programmable schedule identifying an order in which the stored read requests associated with the plurality of data streams are processed and indicating that higher speed ones of the plurality of data streams are serviced more often than the slower speed ones of the plurality of data streams, andread data units from the memory based on the processed read requests. 2. The system of claim 1, further comprising: a state logic device configured to store state information relating to the read requests, the state logic device identifying an order in which the read requests were stored for each of the respective data streams. 3. The system of claim 2, wherein the memory comprises a plurality of memory devices, the state logic device storing information identifying the memory device associated with each read request. 4. The system of claim 2, wherein when reading the data units from the memory, the output logic reads the data units from a memory device identified by the state logic device at an address identified in the read request. 5. The system of claim 1, wherein the first programmable schedule and the second programmable schedule have a same ordering scheme. 6. The system of claim 1, wherein the first programmable schedule and the second programmable schedule have different ordering schemes. 7. The system of claim 1, wherein the output logic is further configured to: output data units associated with a first packet without buffering all of the data units associated with the first packet. 8. A method for processing packets in a network device, comprising: storing, in a memory, data units from a plurality of input streams, a number of the data units comprising a data packet from each of the respective input streams, wherein at least one of the plurality of input streams corresponds to a higher speed input stream than other ones of the plurality of input streams;generating read requests for reading the data units from the memory using a first time division multiplexing scheme, the first time division multiplexing scheme being configured to service the at least one higher speed input stream more often than the other ones of the plurality of input streams;storing the read requests in a request queue, the request queue storing read requests associated with the plurality of input streams;processing the read requests in the request queue using a second time division multiplexing scheme, the second time division multiplexing scheme being configured to service the at least one higher speed input stream more often than the other ones of the input streams;forwarding the processed read requests to the memory; andreading data units from the memory based on the read requests. 9. The method of claim 8, further comprising: storing, in a state logic device, information relating to each of the plurality of read requests, the information identifying an order in which the read requests were stored for each of the plurality of input streams. 10. The method of claim 9, wherein the reading the data units from the memory comprises reading the data units at an address identified in the read request in a memory bank identified in the state logic device. 11. The method of claim 8, wherein each of the first and second time division multiplexing scheme assigns at least one slot within a predetermined number of slots to each of the input streams. 12. The method of claim 11, further comprising: determining whether an input stream has a stored read request during the slot assigned to the input stream; andbypassing the processing when the input stream has no stored read requests. 13. The method of claim 8, further comprising: transmitting a portion of the data units associated with a first packet to another network device. 14. A system for reading data in a network device, comprising: a memory configured to store data units from a plurality of data streams, a number of the data units comprising data packets from one of the data streams;a first arbiter configured to identify which data stream to service using a first time division multiplexing scheme, the first arbiter outputting stream number information that indicates the identified data stream, wherein the first time division multiplexing scheme is configured to service higher speed ones of the data streams more often than slower speed ones of the data streams;a request engine configured to receive the stream number information and output read requests, the read requests identifying addresses in the memory;a request store configured to store a plurality of read requests for each of the plurality of data streams; anda second arbiter configured to: process the read requests in the request store using a second time division multiplexing scheme, the second time division multiplexing scheme being configured to service the higher speed ones of the data streams more often than the slower speed ones of the data streams, andforward the read requests to the memory;wherein the memory outputs data units based on the read requests. 15. The system of claim 14, further comprising: a state tracker configured to store information relating to each of the plurality of read requests, the state tracker identifying an order in which the plurality of read requests were stored for each of the respective data streams. 16. The system of claim 14, wherein the first and second arbiters each include: control logic and a programmable memory, the control logic identifying a next data stream to service based on the contents of the programmable memory. 17. The system of claim 16, wherein each row in the programmable memory corresponds to a time slot and the contents of each row identify a data stream. 18. The system of claim 17, wherein the programmable memories of the first and second arbiters identify the same data streams in each row. 19. The system of claim 17, wherein the programmable memories of the first and second arbiters identify each of the data streams at a same frequency. 20. The system of claim 14, wherein the request store is configured to store at least six entries for each of the plurality of data streams. 21. A system for reading data in a network device, comprising: a memory configured to store data units from a plurality of data streams, a number of data units comprising a data packet;a queuing device configured to store a predetermined number of read requests for each of the plurality of data streams, wherein at least one of the data streams is a higher speed data stream than other ones of the data streams;first arbitration logic configured to: identify a data stream to service using a first time division multiplexing scheme, the first time division multiplexing scheme being configured to service the at least one higher speed data stream more often than the other ones of the data streams, andforward data stream information identifying the data stream to service;a request engine configured to: receive the data stream information,generate a read request identifying a location in the memory, andqueue the read request in the queuing device; andsecond arbitration logic configured to: dequeue the read request using a second time division multiplexing scheme, the second time division multiplexing scheme being configured to service the at least one higher speed data stream more often than the other ones of the data streams, andforward the dequeued read request to the memory;wherein the memory forwards data units based on the read request. 22. The system of claim 21, further comprising: a notification buffer configured to store information relating to data packets and a plurality of data unit addresses;wherein the request engine generates the read request using information from the notification buffer. 23. The system of claim 22, further comprising: an address buffer configured to store data unit addresses relating to the data unit addresses stored in the notification buffer;wherein the request engine generates the read request using information from the address buffer. 24. The system of claim 21, further comprising: a transmit device configured to transmit data units associated with a first data packet before all of the data units associated with the first data packet are read from the plurality of memory devices. 25. The system of claim 21, wherein the first and second arbitration logic each service the plurality of data streams at a same frequency. 26. The system of claim 21, wherein the system comprises a router. 27. The system of claim 21, wherein the first and second time division multiplexing schemes are identical. 28. The system of claim 21, wherein the first and second time division multiplexing schemes have different ordering schemes. 29. A system for reading data in a network device, comprising: a plurality of memory devices configured to store data units from a plurality of data streams; anda packet reader configured to: store a predetermined number of read requests for each of the plurality of data streams in a queuing device,identify a next data stream to service using a time division multiplexing (TDM) scheme, the TDM scheme servicing higher speed ones of the data streams more often than slower speed ones of the data streams, andqueue the read request in the queuing device,dequeue the read request using the TDM scheme,forward the read request to one of the plurality of memory devices, andread data units from the one of the plurality of memory devices. 30. The system of claim 29, wherein the packet reader is further configured to: transmit the data units associated with a first packet to another network device before all of the data units associated with the first packet are read. 31. A system for reading data in a network device, comprising: means for storing data cells from a plurality of input streams;means for identifying a data stream to service using time division multiplexing;means for queuing read requests in a queuing device configured to store a predetermined number of read requests for each of the plurality of input streams;means for dequeuing the read requests in the queuing device using time division multiplexing, the time division multiplexing scheme servicing higher speed ones of the input streams more often than slower speed ones of the input streams; andmeans for reading data cells based on the read requests. 32. A system for processing information, comprising: a memory configured to store address information relating to locations of data cells associated with a plurality of data streams;a programmable table comprising a number of entries, each of the entries storing a value that identifies one of the plurality of data streams, wherein a number of entries storing a first value associated with a higher speed data stream exceeds a number of entries storing a second value associated with a slower speed data stream; andcontrol logic configured to: identify one of the data streams to service based on the entries of the programmable table, andoutput the address information associated with the identified data stream from the memory. 33. The system of claim 32, wherein each of the plurality of data streams is identified in at least one of the entries in the programmable table. 34. The system of claim 32, wherein the programmable table comprises a first number of entries, and wherein: the control logic is further configured to cycle through a second number of entries to identify the data stream to service during each of a number of time slots, the second number of entries being less than the first number of entries. 35. The system of claim 32, wherein when identifying a data stream to service, the control logic is configured to read one of the entries in the programmable table, the entry corresponding to a time slot. 36. The system of claim 35, wherein the control logic is further configured to not read one of the entries during the time slot corresponding to the one entry, when the stream corresponding to the one entry is at least one of busy or ineligible for service.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.