Embodiments of this invention relate to an interconnection fabric using switching networks interconnected in hierarchy and, in particular, to application of using the interconnection fabric to interconnect programmable logic circuits.
A switching network is comprised of ports, pins, conductors and switches. The ports and pins are external constructs of the switching network where each port contains a plurality of pins to interface to other switching networks or circuits. The conductors and switches are internal constructs of the switching network configured to transfer data or signals from pins of a first plurality of ports of a first type to pins of a second plurality of ports of a second type inside the switching network. The pins of the first plurality of ports receive data or signals and transmit those data or signals through the conductors and the switches of the switching network to the pins of the second plurality of ports. The pins of the ports of the switching network are physically connected to respective conductors of the switching network. The switches of the switching network are program controlled to enable connection paths among the pins of the first plurality of ports to the pins of the second plurality of ports. The connection paths connecting two pins inside the switching network can sometimes involve one or more intermediate conductors coupled through switches of the switching network. Thus the pins and ports of the switching network are external constructs where the pins of ports of the first type receives data or signals from sources such as other switching networks and circuits and the pins of ports of the second type transmit signals or data to destinations such as other switching networks and circuits. The switches and conductors of the switching network are internal constructs where the data or signals on the pins of ports of the first types are transmitted to the pins of ports of the second type through the switches and conductors of the switching network.
Generally, the transmission of data or signals from the first plurality of ports to the second plurality of ports through the switching network is substantially simultaneous and non-blocking. In the case where data or signals of a single pin of a port of the first plurality of ports are transmitted to multiple pins of respective multiple ports of the second plurality of ports, this is called multicasting in network connection terms. The switching network can also be used as programmable interconnect circuitry for programmable logic circuits. In the case of programmable logic circuits, the multicasting corresponds to a source (output) connecting to multiple inputs. Each of the pins of the switching network connects to a conductor internally inside the switching network. For ease of illustration and consistency with the conventional way to describe such technologies, we shall denote each switching network under discussion as having a first set of M conductors (having m number of conductors, for example) to correspond to the pins of the first plurality of ports of the switching network. We denote the second plurality of ports as having k ports where each of the k ports has ni pins with i=[1−k] where each ni is at most equal to n. Additionally, we denote a k plurality of conductors where each of the k plurality of conductors having Ni[1−ni] conductors for i=[1−k]. Thus the switching network can be used to connect the pins of the first plurality of ports to the pins of the k ports through use and control of switches and conductors. Each of the pins of the first plurality of ports is capable of connecting to at least one pin to each of the k ports through the switching network. Typically, multiple numbers of pins of the first plurality of ports can independently connect to the pins of the k ports using the switching network without blocking.
A well-known switching network is the full matrix switch.
The difference between the full matrix switch of
When the size of a switching or interconnect network becomes real large (i.e. the M conductors and the Ni[1−n] conductors of the k plurality of conductors are in the thousands or more), the number of switches required to effect interconnect from M conductors to the Ni[1−n] conductors in either
Another type of switching network is the Clos network described by L. M. Spandorfer in 1965 where any pin of the N nodes is connectable to any other pin of the N nodes through the Clos network independently without blocking. Reblewski et. al. in U.S. Pat. No. 6,594,810 described a scalable architecture using crossbars for a reconfigurable integrated circuit. Wong in U.S. Pat. No. 6,693,456 described an architecture using Benes networks for field programmable gate array. A switching network (SN) was disclosed by the present inventors in U.S. patent application Ser. No. 10/814,943, filed Mar. 30, 2004. In one embodiment of the SN, the M conductors are connected to the k plurality of conductors in the SN through at least one intermediate stage of interconnection, in addition to switches in the SN; any conductor of the M conductors can connect to a Ni[1−n] conductor in each of the k ports independently in the SN.
When the number of the M conductors and the k plurality of conductors are large, it becomes impractical to use one large switching network to make all the programmable interconnections; instead, hierarchy of switching networks are generally used to reduce the total number of switches required in the resulting interconnect system. Additionally, hierarchy is used to take into account the varying amount of traffic amongst large number of traffic origination and termination nodes throughout different locations in the overall network. Using telephone network as an example, local residential and business traffic in a small geographic location are bundled into a central office so the central offices serve as the lowest level of switching networks. The voice and data traffic from the central offices are in turn bundled into regional offices which serve as the next higher level of switching networks and the regional offices are then interconnected to yet higher level of switching networks. Each of the different levels of switching networks has varying size and capacity to handle data and voice traffic in the overall network. One of the common problems to be solved in a hierarchical switching networks is thus to size the overall hierarchy of switching networks to handle the varying amounts of local, intermediate, and higher levels of data and signals transmitted and received by the different switching networks and limit the total number of switches required to allow effective connections for very large number of M conductors to large number of k plurality of conductors while substantially preserving the non-blocking property of the interconnection fabric.
The objectives, features, and advantages of embodiments of the present invention will be apparent from the following detailed description in which:
An innovative hierarchical scheme of interconnecting switching networks to provide a large interconnection fabric is described. The hierarchical switching networks can be applied in a wide range of applications, when used, to provide a large interconnection fabric used in switching, routers, and programmable logic circuits. Relative comparisons are provided contrasting the interconnection fabric using hierarchical switching networks with full matrix switches and with the SN of the prior art by the present inventors in U.S. patent application Ser. No. 10/814,943, filed Mar. 30, 2004.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of embodiments of the present invention. It will be apparent to one skilled in the art that embodiments of the present invention may be practiced without these specific details. In other instances, well-known structures and circuits are shown in block diagram form in order to avoid unnecessarily obscuring embodiments of the present invention. For purpose of description, unless otherwise specified, the terms program controlled switch and switch are interchangeable in the context of this description. The term port comprises a plurality of pins where each of the pin is physically connected to a conductor of the switching network in this disclosure. The terms program configured logic cell, logic cell, cell, Look Up Table (LUT), programmable logic cell are interchangeable in the context of this description. Furthermore, the term “to connect” as used in the current description may include both to directly connect and to indirectly connect (for example, inserting a driver or repeater to boost signal strength). Likewise, the term “to couple” as used herein may include both to directly couple and to indirectly couple. It should also be noted that some embodiments of the present invention use program control means to set the states of switches utilized, this control means can be one time, such as fuse/anti-fuse technologies, or re-programmable, such as SRAM (which is volatile), FLASH (which is non-volatile), Ferro-electric (which is non-volatile), etc. Hence, embodiments of the present invention pertain to a variety of processes, including, but not limited to, static random access memory (SRAM), dynamic random access memory (DRAM), fuse/anti-fuse, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM) such as FLASH, and Ferro-electric processes.
When a program controlled switch is used to interconnect one pin or a conductor to another pin or another conductor, a driver or repeater circuit may be coupled to the switch to improve the speed of the signal traversing those pins and/or conductors.
Switching network 40 is the higher level switching network of the at least two-levels of hierarchy. Specifically, in the
From a data or signals traffic point of view, the embodiment outlined in
The scheme just outlined above can be extended down to yet lower levels of switching networks where each of the n pins of the (k-j) ports 39-41 of each 35 are connected to the pins of a first plurality of ports from a yet lower level switching network much like the port 44 of 40 are connected to the port 334 of 35 illustrated in
An alternative embodiment of
Using switching networks hierarchically can effectively reduce the total switch requirement compared with a one level switching network while allows for flexible interconnection. For example, if each of the switching network 35 of
The switching network 40 of
The technique disclosed above is not limited to coupling switching networks to each other. In some embodiments, the technique can be applied to couple a logic function block to at least one port of at least one switching network. A logic function block can be as simple as a logic gate with multiple inputs and at least one output. The logic gate may be a custom crafted logic gate or a programmable logic gate. Examples of more complex logic function blocks include a multiplier accumulator (MAC), a Digital Signal Processing (DSP) processor, a microprocessor, etc. A memory block such as a single or a dual port SRAM memory with inputs and outputs can be considered as a special type of logic function block in the discussion of this disclosure. An example is illustrated in
Thus we have described an interconnection fabric using switching networks in a hierarchy. The foregoing discussion merely describes some exemplary embodiments of the present invention. One skilled in the art will readily recognize from such discussion, the accompanying drawings, and the claims that various modifications can be made without departing from the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting.
Number | Name | Date | Kind |
---|---|---|---|
4020469 | Manning | Apr 1977 | A |
4661901 | Veneski | Apr 1987 | A |
4700187 | Furtek | Oct 1987 | A |
4720780 | Dolecek | Jan 1988 | A |
4736333 | Mead et al. | Apr 1988 | A |
4758745 | Elgamal | Jul 1988 | A |
4815003 | Putatunda et al. | Mar 1989 | A |
4847612 | Kaplinsky | Jul 1989 | A |
4870302 | Freeman | Sep 1989 | A |
4912342 | Wong et al. | Mar 1990 | A |
4918440 | Furtek | Apr 1990 | A |
4935734 | Austin | Jun 1990 | A |
4992680 | Benedetti et al. | Feb 1991 | A |
5122685 | Chan | Jun 1992 | A |
5144166 | Camarota et al. | Sep 1992 | A |
5187393 | Elgamal et al. | Feb 1993 | A |
5204556 | Shankar | Apr 1993 | A |
5208491 | Ebeling et al. | May 1993 | A |
5221865 | Phillips et al. | Jun 1993 | A |
RE34363 | Freeman | Aug 1993 | E |
5243238 | Kean | Sep 1993 | A |
5256918 | Suzuki | Oct 1993 | A |
5260610 | Pederson et al. | Nov 1993 | A |
5260611 | Cliff et al. | Nov 1993 | A |
5296759 | Sutherland et al. | Mar 1994 | A |
5298805 | Garverick et al. | Mar 1994 | A |
5329470 | Sample et al. | Jul 1994 | A |
5349691 | Harrison et al. | Sep 1994 | A |
5369314 | Patel et al. | Nov 1994 | A |
5376844 | Pederson et al. | Dec 1994 | A |
5396126 | Britton et al. | Mar 1995 | A |
5406525 | Nicholes | Apr 1995 | A |
5444394 | Watson et al. | Aug 1995 | A |
5455525 | Ho et al. | Oct 1995 | A |
5457410 | Ting | Oct 1995 | A |
5469003 | Kean | Nov 1995 | A |
5477067 | Isomura et al. | Dec 1995 | A |
5485103 | Pederson et al. | Jan 1996 | A |
5519629 | Snider | May 1996 | A |
5537057 | Leong et al. | Jul 1996 | A |
5550782 | Cliff et al. | Aug 1996 | A |
5552722 | Kean | Sep 1996 | A |
5572148 | Lytle et al. | Nov 1996 | A |
5581199 | Pierce et al. | Dec 1996 | A |
5581767 | Katuski et al. | Dec 1996 | A |
5815004 | Trimberger et al. | Sep 1998 | A |
5818254 | Agrawal et al. | Oct 1998 | A |
5825202 | Tavana | Oct 1998 | A |
5835405 | Tsui et al. | Nov 1998 | A |
5850564 | Ting et al. | Dec 1998 | A |
5880597 | Lee | Mar 1999 | A |
5883526 | Reddy et al. | Mar 1999 | A |
5894228 | Reddy | Apr 1999 | A |
5903165 | Jones et al. | May 1999 | A |
5914616 | Young | Jun 1999 | A |
6016063 | Trimberger | Jan 2000 | A |
6034547 | Pani et al. | Mar 2000 | A |
6038627 | Plants | Mar 2000 | A |
6051991 | Ting | Apr 2000 | A |
6088526 | Ting et al. | Jul 2000 | A |
6160420 | Gamal | Dec 2000 | A |
6163168 | Nguyen et al. | Dec 2000 | A |
6181162 | Lytle et al. | Jan 2001 | B1 |
6417694 | Reddy et al. | Jul 2002 | B1 |
6433580 | Ting | Aug 2002 | B1 |
6507217 | Ting | Jan 2003 | B2 |
6594810 | Reblewski et al. | Jul 2003 | B1 |
6597196 | Ting | Jul 2003 | B2 |
6670825 | Lane et al. | Dec 2003 | B1 |
6686768 | Comer | Feb 2004 | B2 |
6693456 | Wong | Feb 2004 | B2 |
6975139 | Pani et al. | Dec 2005 | B2 |
20010007428 | Young | Jul 2001 | A1 |
20020163357 | Ting | Nov 2002 | A1 |
20030080777 | Baxter | May 2003 | A1 |
Number | Date | Country |
---|---|---|
0415542 | Mar 1991 | EP |
0630115 | Jun 1994 | EP |
2180382 | Mar 1987 | GB |
2295738 | May 1996 | GB |
9208286 | May 1992 | WO |
9410754 | May 1994 | WO |
9428475 | Dec 1994 | WO |
9504404 | Feb 1995 | WO |
9528769 | Oct 1995 | WO |
9605964 | Apr 1996 | WO |
9635261 | Nov 1996 | WO |
WO 03032492 | Apr 2003 | WO |
Number | Date | Country | |
---|---|---|---|
20060023704 A1 | Feb 2006 | US |