A portion of the disclosure of this patent document contains material which is subject to copyright protection. This patent document may show and/or describe matter which is or may become trade dress of the owner. The copyright and trade dress owner has no objection to the facsimile reproduction by any one of the patent disclosure as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright and trade dress rights whatsoever.
1. Field of the Invention
The present invention relates to variable size FIFO memories.
2. Description of the Related Art
Communications networks now require handling of data at very high serial data rates. For example, 10 gigabits per second (Gbps) is common. When it is required to process at these speeds, high speed parallel connections are used to increase the effective bandwidth. This may be unsatisfactory because of the resultant decrease in bandwidth due to increased overhead requirements.
As disclosed in a co-pending application entitled High Speed Channels Using Multiple Parallel Lower Speed Channels having Ser. No. 09/962,056, switching of input data arriving at a relatively high data rate of, for example, 10 Gbps, may be accomplished. As illustrated in
This is provided by the overall variable FIFO memory which is a combination of a tail FIFO memory 16, a head FIFO memory 17 and the large scale off chip buffer memory 18. Variable blocks of data are formed by a receiver 11 and transferred through the tail FIFO memory to the head FIFO memory 17 until it is filled. Thus, the tail or FIFO 16 routes data to the head FIFO memory 17 which then distributes data packets to the various switching elements. If the head FIFO memory becomes full, the tail FIFO memory will start filling. The tail FIFO will buffer enough data to keep the head FIFO filled. If the tail FIFO fills due to a sudden burst, data is then written on the line of 21 to the large scale off chip memory 18. This data will be read from the large scale memory into the head FIFO when the head FIFO starts to empty.
From a practical standpoint to operate at the rate of 10 Gbps, tail FIFO 16 and head FIFO 17 are located on a common semiconductor substrate or chip with the large scale buffer memory 18 being remotely located off chip. This is indicated by the dash line 22. When the tail FIFO memory becomes full then the large scale off chip buffer memory 18 is utilized. Uniform blocks of data are stored indicated by the dash line 23. For example, 128 bytes is transferred on the line 21 into the memory 18. This memory also includes a similar block size of 128 bytes. For example, line 21 may have a 64 bit width (meaning eight bytes) and thus, the data block of 128 bytes is transferred in 16 clock cycles (16×64=128 bytes). Optimization of the bus width in all of the FIFO and buffer memories provide, in effect, a 100 percent efficient transfer technique since for every clock cycle a maximum number of bits is transferred. However buffer memory 18 has a lower clock rate and therefore wider bus. In the present application this could be two read and two write cycles. The various write pointers and read pointers (WP and RP) are so indicated on the various memories and the overall control is accomplished by the memory controller 26. A multiplexer 27 connected to memory controller 26 provides for control of the various data routings. When a sudden burst of data packets ceases, the FIFO memory can then return to its ordinary mode of operation where the head FIFO memory 17 contains all of the inputted data packets as delivered by the tail FIFO memory. Of course, this doesn't occur until the large scale off chip buffer memory 18 is unloaded.
The foregoing operation is shown in a flowchart of
The larger external buffer memory 18 can be provisioned, using one of many allocation schemes, to support multiple head and tail FIFOs in the same manner as described.
Thus a variable FIFO memory with head and tail caching has been provided.
This patent is a continuation of application Ser. No. 09/930,804 filed Aug. 15, 2001 and now U.S. Pat. No. 6,987,775, and which is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
4344132 | Dixon et al. | Aug 1982 | A |
4394725 | Blenvenu | Jul 1983 | A |
4704606 | Hasley | Nov 1987 | A |
4754451 | Eng | Jun 1988 | A |
4958299 | Akada | Sep 1990 | A |
5406554 | Parry | Apr 1995 | A |
5550823 | Irie | Aug 1996 | A |
5606370 | Moon | Feb 1997 | A |
5610914 | Yamada | Mar 1997 | A |
5659713 | Goodwin | Aug 1997 | A |
5818839 | Sterne et al. | Oct 1998 | A |
5845145 | James | Dec 1998 | A |
5884099 | Klingelhofer | Mar 1999 | A |
5892979 | Shiraki et al. | Apr 1999 | A |
5905911 | Shimizu | May 1999 | A |
5961626 | Harrison | Oct 1999 | A |
5974516 | Qureshi | Oct 1999 | A |
5982749 | Daniel | Nov 1999 | A |
6067408 | Runaldue | May 2000 | A |
6122674 | Olnowich | Sep 2000 | A |
6145068 | Lewis | Nov 2000 | A |
6172927 | Taylor | Jan 2001 | B1 |
6292878 | Morioka | Sep 2001 | B1 |
6389489 | Stone | May 2002 | B1 |
6442674 | Lee et al. | Aug 2002 | B1 |
6460120 | Bass | Oct 2002 | B1 |
6487171 | Honig | Nov 2002 | B1 |
6493347 | Sindhu | Dec 2002 | B2 |
6510138 | Pannell | Jan 2003 | B1 |
6557053 | Bass et al. | Apr 2003 | B1 |
6570876 | Aimoto | May 2003 | B1 |
6574194 | Sun et al. | Jun 2003 | B1 |
6611527 | Moriwaki | Aug 2003 | B1 |
6658503 | Agarwala et al. | Dec 2003 | B1 |
6687768 | Horikomi | Feb 2004 | B2 |
6708262 | Manning | Mar 2004 | B2 |
6754741 | Alexander et al. | Jun 2004 | B2 |
6795870 | Bass | Sep 2004 | B1 |
6941426 | Haywood | Sep 2005 | B2 |
6944688 | Batcher | Sep 2005 | B1 |
20010037435 | Van Doren | Nov 2001 | A1 |
20020054602 | Takahashi | May 2002 | A1 |
20020099855 | Bass | Jul 2002 | A1 |
20020122386 | Calvignac | Sep 2002 | A1 |
Number | Date | Country | |
---|---|---|---|
20060072598 A1 | Apr 2006 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09930804 | Aug 2001 | US |
Child | 11237481 | US |