Network switch utilizing centralized and partitioned memory for connection topology information storage

Information

  • Patent Grant
  • 5917805
  • Patent Number
    5,917,805
  • Date Filed
    Thursday, July 18, 1996
    28 years ago
  • Date Issued
    Tuesday, June 29, 1999
    25 years ago
Abstract
A network switch utilizing centralized and partitioned memory for storing connection topology information. The switch includes at least one input port, at least one output port and a central switch fabric interconnecting the input port and output port, with the connection topology memory centralized at the switch fabric. The central switch fabric includes at least one input side translator associated with a predetermined number of input ports and at least one output side translator associated with a predetermined number of output ports. The connection topology memory is distributed among the at least one input side translator and the at least one output side translator. With this arrangement, memory bandwidth requirements associated with connection topology look-up operations are distributed and scaling the number of ports is facilitated.
Description

FIELD OF THE INVENTION
The present invention relates generally to networks and, more particularly, to a network switch having centralized and partitioned memory for storing connection topology information.
BACKGROUND OF THE INVENTION
Networks such as asynchronous transfer mode ("ATM") networks are used to transfer audio, video and other data. ATM networks deliver data by routing data units, such as ATM cells, from source to destination through switches. Switches include input/output ("I/O") ports through which ATM cells are received and transmitted. Each of the I/O ports, in turn, has at least one queue associated therewith for temporarily storing, or buffering cells processed by the respective port. Queues associated with an input port are referred to herein as input port queues and queues associated with an output port are referred to herein as output port queues.
Cells and control signals may be transmitted from an input port queue to a single output port queue in the case of point to point connections or from an input port queue to a selected group of output port queues in the case of point to multipoint connections. Prior to transmitting a cell from an input port queue to a destination output port queue, or queues, a control signal is sent from the input port to the destination output port, or ports, to query whether sufficient output port queue space is available to enqueue the cell.
In accordance with one type of ATM transmission, which may be referred to as "per-VC queuing", the cell header identifies the input port queue which temporarily stores the cell. In this way, the header also identifies the destination output port queue, or queues, since the cells stored in a particular input port queue have the same destination output port queue, or queues.
The ATM switch requires memory for storing a look-up table containing connection topology information (i.e., the destination output port queue, or queues associated with each input port queue). As the number of input and output ports increases, the size and bandwidth requirements of the connection topology memory likewise increase. Additionally, scaling the number of ports of the switch requires an increase in size of the connection topology look-up table.
SUMMARY OF THE INVENTION
Methods and apparatus are described for reducing memory size and bandwidth requirements associated with looking up stored connection topology information in a network switch and for facilitating scaling of the number of ports of the switch. The switch includes at least one input port for receiving data from a network, at least one output port for transmitting data from the switch and a control module including a central switch fabric coupled between the input port and output port. The central switch fabric includes a connection topology memory containing a look-up table correlating the at least one input port to the at least one output port.
With this arrangement, the memory containing the connection topology information is centralized at the switch fabric, thereby facilitating scaling of the number of ports. In particular, the number of input ports or output ports supported by the switch can be increased without modifying the I/O boards containing the I/O ports. Rather, the number of I/O ports can be increased by modifying the centralized connection topology information in the memory at the central switch fabric. This arrangement can be contrasted to maintaining the connection topology memory at the I/O ports themselves, in which case the I/O boards would require increasing or decreasing the size of their memory in order to change the number of switch ports. Moreover, a connection topology memory residing at an input port would be required to have the memory size/bandwidth necessary to perform look-ups for the maximum number of switch output ports, even if it were utilized in a switch with fewer output ports.
The switch further includes at least one input side translator associated with the at least one input port, at least one output side translator associated with the at least one output port and a bandwidth arbiter operative to control data signal flow between the input side translator and the output side translator. At least one input port queue is associated with the input port and at least one output port queue is associated with the output port for temporarily storing data received by the respective output port. The central switch fabric memory is partitioned such that a first connection topology memory is associated with the input side translator and a second connection topology memory is associated with the output side translator.
Each input side translator is associated with a predetermined number of input ports and each output side translator is associated with a predetermined number of output ports. For example, in the illustrative embodiment, each input side translator is associated with up to four input ports and each output side translator is associated with up to four output ports. This arrangement advantageously distributes the bandwidth requirement associated with connection topology memory look-up operations, thereby effectively reducing the necessary memory access bandwidth per device.
Additionally, scaling the number of ports of the switch is facilitated by the disclosed translator/memory/port modularity (i.e., the association of a connection topology memory with each translator and attached ports). In particular, the number of ports can be readily increased with the use of additional translator/memory pairs.
In accordance with a further aspect of the invention, the first connection topology memory associated with the input side translator contains multiqueue number entries, each of which is a list of output port queues associated with a particular input port, and broadcast number entries, each of which is a pointer to one or more multiqueue numbers. A multiqueue number is retrieved from the first connection topology memory for point to point connections and a broadcast number is retrieved from the first connection topology memory for point to multipoint connections. Also stored in the first connection topology memory are bit vector entries which specify the destination output port, or ports. In point to point connections, the bit vector specifies a single output port. The multiqueue number or broadcast number is sent to the output side translator(s) associated with the output port(s) specified by the bit vector. The second connection topology memory associated with the output side translator contains multiqueue numbers for each attached output port. In point to multipoint connections, multiqueue numbers are retrieved from the second connection topology memory in response to a received broadcast number. Multiqueue numbers are further decoded by the particular output port to identify the destination output port queue, or queues.
A multipoint to point connection is a set of multiple point to point connections distributed over time. Hereinafter, wherever point to point is used, it refers to either point to point or multipoint to point unless otherwise noted. A multipoint to multipoint connection is a set of multiple point to multipoint connections distributed over time. Hereinafter, wherever point to multipoint is used, it refers to either point to multipoint or multipoint to multipoint unless otherwise noted.
In point to point connections, the first connection topology memory is accessed to retrieve a multiqueue number and the second connection topology memory is not accessed; whereas, in point to multipoint connections, the first connection topology memory is accessed to retrieve a broadcast number and the second connection topology table memory is accessed to retrieve one or more multiqueue numbers in response to the broadcast number. With this arrangement, access of the second connection topology memory is avoided in point to point connections, thereby reducing the memory size and bandwidth requirements.





BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing features of this invention, as well as the invention itself, may be more fully understood from the following detailed description of the drawings in which:
FIG. 1 is a block diagram of a network switch;
FIG. 2 is a flow diagram of an illustrative process by which one or more destination output port queues are identified; and
FIG. 3 is a diagram of an illustrative connection topology memory and mapping memory of the switch of FIG. 1, as well as the address structures associated with the connection topology memory and the mapping memory.





DESCRIPTION OF THE PREFERRED EMBODIMENT
Referring to FIG. 1, a network switch 10 includes at least one input port comprising at least one input port processor 14.sub.1 -14n coupled to one or more respective ATM links and operative to receive and temporarily store ATM cells from the respective ATM links. Also provided is at least one output port comprising at least one output port processor 18.sub.1 -18o coupled to one or more respective ATM links and operative to temporarily store and transmit ATM cells to the respective ATM links. The input port processors 14.sub.1 -14n are referred to herein generally as "To Switch Port Processors" or TSPPs 14 and the output port processors 18.sub.1 -18n are referred to herein generally as "From Switch Port Processors" or FSPPs 18.
Each of the I/O ports has at least one queue associated therewith. A queue associated with an input port is referred to herein generally as an input port queue 16 and a queue associated with an output port is referred to herein generally as an output port queue 22. Each input port queue 16 has a corresponding input port queue number identifying the respective input port queue. Likewise, each output port queue 22 has a corresponding output port queue number identifying the respective output port queue.
In one embodiment, the input port queues 16 contain identifiers of other queues which buffer, or temporarily store cells contending for access to a common connection. In such an embodiment, the input port queue 16 may alternatively be referred to as a scheduling list since such a queue contains a list of queues to be scheduled for access to a connection. Alternatively however, the input queues 16 may themselves contain (or point to) cells for the purpose of buffering such cells. It will therefore be appreciated that the term input port queue 16 as used hereinafter refers to either a queue containing other queues or a queue containing cells.
Data and control signals may be transmitted from an input port queue 16 to a particular one of the output port queues 22, in the case of a point to point connection. Alternatively, data and control signals may be transmitted from an input port queue 16 to a selected set of output port queues 22, in the case of a point to multipoint connection.
A multipoint to point connection is a set of multiple point to point connections distributed over time. Hereinafter, wherever point to point is used, it refers to either point to point or multipoint to point unless otherwise noted. A multipoint to multipoint connection is a set of multiple point to multipoint connections distributed over time. Hereinafter, wherever point to multipoint is used, it refers to either point to multipoint or multipoint to multipoint unless otherwise noted.
A control module 20 is coupled between each of the TSPPs 14.sub.1 -14n and the FSPPs 18.sub.1 -18n, as shown. The control module 20 includes a central switch fabric 28 which permits the flow of control signals and data between the TSPPs 14.sub.1 -14n and the FSPPs 18.sub.1 -18n. The switch fabric 28 includes a plurality of input side translators 24.sub.1 -24n/x (referred to generally as input side translators 24), where x is a predetermined number, such as four. Stated differently, each input side translator 24 is associated with between one and four TSPPs 14. The input side translators 24 connect the respective TSPP(s) 14 to a bandwidth arbiter 30 of the switch fabric and perform translations used to implement internal switch flow control for point to multipoint and point to point connections. The interface between each input side translator 24 and the bandwidth arbiter 30 is provided by serial signal lines.
Also associated with each input side translator 24.sub.1 -24n/x is a connection topology memory 26.sub.1 -26n/x, respectively (referred to generally as input side memories 26). Each input side memory 26 includes a look-up table containing connection topology information and thus, may be referred to alternatively as a look-up table memory 26. In the illustrative embodiment, each input side memory 26 contains a look-up table of multiqueue numbers (MQNs), forward broadcast numbers (FBCNs), input port queue numbers and bit vectors, as will be described.
Also provided in the switch fabric 28 are a plurality of output side translators 40.sub.1 -40o/x (referred to generally as output side translators 40), where x is a predetermined number, such as four. Thus, each output side translator 40 is associated with between one and four FSPPs 18. Like the input side translators 24, the output side translators 40 are connected to the bandwidth arbiter 30 via serial signal lines and perform translations for internal switch flow control.
A connection topology memory 44.sub.1 -44o/x (referred to generally as output side memories 44) is associated with each output side translator 40.sub.1 -40o/x, respectively. Each of the output side memories 44 includes a look-up table containing connection topology information and thus, may be referred to alternatively as a look-up table memory 44. In the illustrative embodiment, each output side memory 44 contains a look-up table of input port queue numbers and reverse broadcast numbers (RBCNs), as will be described.
The bandwidth arbiter 30 controls data flow within the switch 10 and includes a probe crossbar 32, an XOFF crossbar 36 and an XON crossbar 34, each of which is an NxN switch fabric, such as a cross point switch fabric. Multiple request messages, or probe control signals, flow through the probe crossbar 32. The request message is used to query whether or not sufficient space is available at the destination output port queue, or queues 22 to enqueue a cell. The request message is considered a "forward" control signal since its direction is from a TSPP 14 to one or more FSPPs 18 (i.e., the same direction as data). A two bit control signal flows in the reverse direction (from one or more FSPPs 18 to a TSPP 14) through the XOFF crossbar 36 and responds to the request message query by indicating whether or not the destination output port queue, or queues 22 are presently capable of accepting data cells and thus, whether or not the transmitting TSPP 14 can transmit cells. In the event that the XOFF control signal indicates that the queried output port queue(s) 22 are not presently capable of receiving data, another reverse control signal, which flows through the XON crossbar 34, notifies the transmitting TSPP(s) 14 once space becomes available at the destination output port queue(s) 22.
A data crossbar 48 of the switch fabric 28 permits transmission of data cells between the TSPPs 14 and the FSPPs 18. To this end, the data crossbar 48 is coupled between the TSPPs 14 and FSPPs 18. A microprocessor 50 within the control module 20 provides various control functionality. As one example, the microprocessor 50 executes call control software when switch connections are set up, in order to load the connection topology look-up tables into the input side memories 26 and output side memories 44.
In one embodiment, each of the TSPPs 14 and FSPPs 18 resides on a respective I/O board and the control module 20 is implemented on a central board. In the preferred embodiment, the input side translators 24 and output side translators 40 are implemented on an ASIC, which may contain one or more of the input and output side translators. Additionally, the bandwidth arbiter 30 is implemented on an ASIC. Each input side memory 26 and output side memory 44 is provided by a dedicated SRAM device.
Preferably, the input side translators 24 and output side translators 40 are incorporated into the same device. Similarly, the input side memories 26 and output side memories 44 are interleaved on the same device. To this end, both the input side memories 26 and output side memories 44 contain similar connection topology look-up tables. Specifically, each of the memories 26, 44 contains a connection topology look-up table with entries of multiqueue numbers (MQNs), forward broadcast numbers (FBCNs), bit vectors, input port queue numbers and reverse broadcast numbers (RBCNs).
An MQN is a fourteen bit digital word which specifies one or more output port queues 22 associated with a particular FSPP 18. In point to point connections, an MQN for the destination FSPP 18 is retrieved from the input side memory 26 by the input side translator 24 and is sent to the destination FSPP 18 via the output side translator 40 and bandwidth arbiter 30.
An FBCN is a seventeen bit digital word which points to a list of one or more MQNs. In point to multipoint connections, an FBCN is retrieved from the input side connection topology memory 26 by the respective input side translator 24 and is sent to the output side translator(s) 40 associated with the destination FSPP(s) 18. The output side translator(s) 40 then use the FBCN to retrieve an MQN for each destination FSPP 18. In the case of point to point connections however, no connection topology look-up operations are performed on the output side of the switch fabric 28, since an MQN is transmitted directly from the input side of the switch fabric. Thus, fewer connection topology look-up operations are performed in the case of point to point connections, as contrasted to point to multipoint connections. That is, in point to point connections, an MQN is transmitted directly to the output side, as contrasted to transmission of an FBCN to be translated into MQN(s) by the output side. With this arrangement, the necessary memory size is reduced for point to point connections.
In the illustrative embodiment, a bit vector is a sixteen bit digital word which specifies the destination FSPP(s) 18, with the number of bits corresponding to the number of output ports. A bit vector is retrieved from the input side look-up table memory 26 by the respective input side translator 24 in both point to point and point to multipoint connections. However, only one bit of the bit vector is set for point to point connections. In the illustrative embodiment, bit vectors are not used for transmissions in the reverse direction. Rather, reverse transmissions are either to a single TSPP or to all TSPPs 14. In the case of a reverse transmission to all TSPPs, an RBCN, which is a seventeen bit digital word which points to a list of input port queue numbers, is retrieved from an output side memory 44. Alternatively, in the case of a reverse transmission to one TSPP 14, an input port queue number and the input port number associated with the destination TSPP 14 is retrieved from the output side memory 44.
The following Table 1 summarizes the connection topology look-up operations performed by the input and output side translators 24, 40 for both forward probe control signal transmissions and reverse XON and XOFF control signal transmissions in point to point and point to multipoint connections.
TABLE 1
Input side translator look-up operations for forward signals:
1. Input port queue #: FBCN or MQN (an FBCN for point to multipoint connections and an MQN for point to point connections)
2. Input port queue #: Bit Vector
Output side translator look-up operation for forward signals:
3. FBCN: MQNs
Output side translator look-up operations for reverse signals:
4. Output port queue#: Input port queue# and Input Port# or RBCN (input port queue# for point to point connections and an RBCN for point to multipoint connections)
Input side translator look-up operation for reverse signals:
5. RBCN: Input port queue #
With the above described arrangement, the connection topology memory (including the discrete input side memories 26 associated with respective input side translators 24 and output side memories 44 associated with respective output side translators 40) is centralized at the switch fabric 28 of the control module 20. This look-up memory centralization facilitates switch port scaling (i.e., changes in the number of ports of the switch). In particular, in the event that it is desired to increase the number of input ports or output ports supported by the switch 10, it is not necessary to modify the I/O boards on which the TSPP/FSPP resides. Rather, I/O port capacity can be increased by modifying the centralized connection topology information contained in the switch fabric memories 26, 44. This arrangement can be contrasted to having the look-up table memory reside at the TSPPs 14 and FSPPs 18 which would require a change in size of their local look-up table memory in order to modify the number of switch ports. Also, a connection topology memory residing at an input port would be required to have the memory size/bandwidth necessary to perform connection topology look-ups for the maximum number of switch output ports, even if it were utilized in a switch with fewer output ports.
A further advantage of the switch 10 is provided by the association of a predetermined number of ports with each translator 24, 40 and the partitioning of the connection topology memory, such that each input side translator 24 and output side translator 40 has a dedicated connection topology memory 26, 44, respectively, associated therewith. In particular, in the illustrative embodiment, each input side translator 24/input side memory 26 combination is associated with up to four TSPPs 14 and each output side translator 40/output side memory 44 combination is associated with up to four FSPPs 18. This arrangement serves to distribute the bandwidth requirement associated with connection topology look-up operations. Additionally, switch modularity is facilitated since the number of ports can be readily increased by adding additional translator/memory pairs to the switch fabric 28. For example, input/output port quantity can be increased by adding additional input side translators 24 and associated input side memories 26.
Referring also to FIG. 2, the process by which one or more output port queues 22 are identified for receipt of control signals and data from a particular input port queue 16 will be described. After the process commences in step 70, a TSPP 14 sends the number of the associated input port queue 16 containing data (i.e., or containing queues containing data) to the attached input side translator 24 in step 74. In step 78, the input side translator 24 accesses the corresponding input side memory 26. In particular, the input port queue number is used to address the input side memory 26 to retrieve a bit vector and either an FBCN or an MQN, depending on whether the cell connection is point to point or point to multipoint. In the case of a point to point connection, the input side translator 24 retrieves an MQN and, in the case of a point to multipoint connection, the input side translator 24 retrieves an FBCN.
In subsequent step 86, the retrieved MQN or FBCN is sent by the input side translator 24 to the bandwidth arbiter 30. Subsequently, in step 90, the bandwidth arbiter 30 sends the MQN or FBCN to the output side translator(s) 40 associated with the FSPPs 18 specified by the bit vector. In step 92, it is determined by the receiving output side translator 40 whether an MQN was retrieved by the input side translator 24. In the event that an MQN was not retrieved, then an FBCN was retrieved (i.e., a point to multipoint connection) and a further look-up operation is performed by the output side translator(s) 40 to which the FBCN is transmitted. In particular, in step 94, the receiving output side translator(s) 40 perform the further look-up of retrieving an MQN for each attached FSPP 18 in response to the received FBCN.
The MQNs retrieved by the output side translator(s) 40 are then sent to the respective FSPPs 18, in step 98. Note that, in the event that an MQN was retrieved by the input side translator 24 in step 78 (i.e., a point to point connection), that MQN is sent to the respective FSPP in step 98. Stated differently, there is no output side connection topology look-up operation for point to point connections. Finally, in step 102, the destination FSPP(s) 18 look up the associated output port queue numbers 22 indicated by the received MQN before the process is terminated in step 106.
Referring also to FIG. 3, the structure of the connection topology memories 26, 44 is shown in conjunction with illustrative input side memory 26. In the illustrative embodiment, the connection topology memory 26 is a twenty-two bit wide SRAM segregated into three areas 150, 158 and 160.
The first memory area 150 (referred to as the FBCN:MQN look-up table area) is accessed to perform output side look-up for forward point to multipoint transmissions (i.e., during the look-up operation numbered 3 in Table 1). To this end, the FBCN:MQN look-up table area 150 contains entries correlating each FBCN to a list of MQNs. The second memory area 158 (referred to as the RBCN:Input Port Queue # look-up table area) is accessed to perform input side look-up for reverse point to multipoint transmissions (i.e., during the look-up operation numbered 5 in Table 1). Thus, the RBCN:Input Port Queue number look-up table area 158 contains entries correlating each RBCN to a list of input queue numbers.
The third memory area 160 (referred to as the queue area) is accessed to perform input side look-up operations for forward and reverse point to point and point to multipoint connections (i.e., during the look-up operations numbered 1, 2 and 4 in Table 1). Thus, queue area 160 contains three types of entries: (1) entries correlating an input port queue number to an FBCN or an MQN; (2) entries correlating an input port queue number to a bit vector; and (3) entries correlating an output port queue number to input port queue number(s) and the input port number or an RBCN. Each FBCN/MQN entry contains a bit specifying whether the entry is an FBCN or an MQN (i.e., whether the connection is point to multipoint or point to point, respectively). The bit vector is a sixteen bit entry specifying the destination FSPP(s) 18. Thus, in the case of a point to point connection, only one bit of the bit vector is set. Each input port queue number/RBCN entry contains a bit specifying whether the entry is an input port queue number and input port number or an RBCN (i.e., whether the connection is point to point or point to multipoint).
Two of the connection topology look-up operations are achieved using the port processor (TSPP 14 or FSPP 18) number for addressing. In particular, looking up an MQN in response to an FBCN in the table area 150 (i.e., look-up operation 3 in Table 1) and looking up an input port queue number in response to an RBCN in the table area 158 (i.e., look-up operation 5 in Table 1) are achieved using the particular port processor number for addressing. Specifically, the memory address used to look up an MQN in response to an FBCN is labelled 168, in which the two least significant bits identify the receiving FSPP 18. The most significant seventeen bits are given by an FBCN offset register value minus the FBCN. The FBCN offset corresponds to the end of the memory 26 (i.e., the last memory location). The address used to look up an input port queue number in response to an RBCN is labelled 170 and includes the receiving TSPP identifier as the two least significant bits. The most significant seventeen bits are given by an RBCN offset register value plus the RBCN. The RBCN offset corresponds to the end of the queue area 160.
The RBCN offset is programmable providing a trade-off between the size of the queue area 160 and the size of the BCN look-up table area. This allows flexibility in choosing between the number of connections and the percent of connections which are multipoint. Additionally, the look-up area for the FBCN grows down within the memory; whereas the look-up area for the RBCN grows up, so that the portion of memory dedicated to point to multipoint information as compared to multipoint to point information does not have to be established at machine initialization time.
The remaining look-up operations (numbered 1, 2 and 4 in Table 1) utilize a memory mapping scheme in order to optimize memory utilization. These look-up operations include: (1) looking up a bit vector in response to an input port queue number (i.e., numbered 2 in Table 1); (2) looking up either an MQN or an FBCN in response to an input port queue number (i.e., numbered 1 in Table 1) and (3) looking up either an input port queue number and input port number or an RBCN in response to an output port queue number (i.e., numbered 4 in Table 1).
Each input side translator 24 and output side translator 40 contains a mapping RAM 164. The address to the mapping RAM 164 is labelled 174 and includes the least significant bits of the port processor number (i.e., TSPP or FSPP) and the most significant bits of the input/output port queue number, depending on the particular look-up operation. For example, in the case of looking up a bit vector in response to an input port queue number, the port processor number identifies the transmitting TSPP 14 and the queue number identifies the particular input port queue 16. The two least significant bits of the port processor number are used in address 174 since each translator supports four port processors. The five most significant bits of the I/O port queue number are used in address 174 since the page size is 512 (i.e., nine bits) and the queue number is fourteen bits with all of the bits resolved.
The mapping address 174 is used to retrieve a seven bit mapping word 180 from the mapping RAM 164 for use in an address 178 to access the queue area 160 of the external SRAM 26. The seven bit mapping word 180 specifies a particular page of 128 pages into which the queue area 160 is divided. The queue area address 178 additionally includes the transmitting port queue number (i.e., an input port queue number 16 when looking up an MQN, bit vector or FBCN and an output port queue number 22 when looking up an RBCN or input port queue number 16). The two least significant bits of the queue area address 178 are look-up selection bits which specify the particular one of the three types of look-ups which utilize the queue area 160 (i.e., look-up operations labelled 1, 2 and 4 in Table 1). In particular, 00 as the two least significant bits of address 178 specifies a bit vector look-up operation, 01 as the two least significant bits specifies an MQN or FBCN look-up operation and 11 as the two least significant bits specifies an input port queue number and input port number or RBCN look-up operation. An entry of 10 as the two least significant bits may be used to specify an additional look-up operation.
Use of the above-described memory mapping scheme permits memory page sharing among the port processors supported by a particular translator. Stated differently, memory mapping allows one port processor 14, 18 to use more than the standard allotment of memory pages if another port processor associated with the same translator 24, 40 uses less than the standard allotment. For example, in the illustrative embodiment, each port processor (TSPP 14 and FSPP 18) supports 16,384 connections. With each translator 24, 40 supporting up to four port processors 14, 18, respectively, significant memory space is required to store connection information. However, in certain applications, some port processors 14, 18 support fewer than 16,384 connections while other port processors associated with the same translator support the maximum 16,384 connections. With the above-described memory mapping scheme, a port processor with a low number of connections can give up some memory to a port processor that has more connections. The mapping provides for dynamic reconfiguration of multipoint information as port processors are inserted/removed from an in-service switch.
Having described the preferred embodiments of the invention, it will now become apparent to one of skill in the art that other embodiments incorporating their concepts may be used. It is felt therefore that these embodiments should not be limited to disclosed embodiments but rather should be limited only by the spirit and scope of the appended claims.
Claims
  • 1. A switch for permitting data flow within a network, comprising:
  • at least one input port for receiving data from said network;
  • at least one output port for transmitting data from said switch;
  • a switch fabric coupled between said at least one input port and said at least one output port and operative to permit data flow between said at least one input port to said at least one output port, wherein said switch fabric comprises
  • a connection topology memory,
  • at least one input side translator associated with said at least one input port,
  • at least one output side translator associated with said at least one output port, and
  • a bandwidth arbiter coupled between said at least one input side translator and said at least one output side translator and operative to control data flow between said at least one input side translator and said at least one output side translator;
  • at least one input port queue associated with said at least one input port; and
  • at least one output port queue associated with said at least one output port for temporarily storing data received from said at least one input port queue, wherein said connection topology memory correlates said at least one input port queue to said at least one output port queue,
  • wherein said connection topology memory comprises
  • a first connection topology memory, associated with said at least one input side translator, operable to contain a first entry correlating said at least one input port queue to a bit vector, and
  • a second connection topology memory associated with said at least one output side translator.
  • 2. The switch recited in claim 1 wherein said bit vector identifies said at least one output port.
  • 3. The switch recited in claim 1 wherein said first connection topology memory contains a second entry which correlates said input port queue to either a multiqueue number for a point to point connection or a broadcast number for a point to multipoint connection.
  • 4. The switch recited in claim 3 wherein said multiqueue number identifies said at least one output port queue and said broadcast number identifies said multiqueue number.
  • 5. The switch recited in claim 4 wherein said second connection topology memory contains an entry which correlates said broadcast number to a multiqueue number for said point to multipoint connection.
  • 6. A switch for permitting data flow within a network, comprising:
  • at least one input port for receiving data from said network;
  • a plurality of output ports for transmitting data from said switch;
  • at least one input port queue associated with said at least one input port;
  • at least one output port queue associated with each of said plurality of output ports for temporarily storing data received at the respective output port; and
  • a switch fabric coupled between said at least one input port and said plurality of output ports, said switch fabric comprising:
  • at least one input side translator associated with said at least one input port;
  • at least one output side translator associated with a predetermined number of said plurality of output ports;
  • a bandwidth arbiter coupled between said at least one input side translator and said at least one output side translator and operative to control data flow between said at least one input side translator and said at least one output side translator; and
  • a first connection topology memory associated with said at least one input side translator and a second connection topology memory associated with said at least one output side translator,
  • wherein said first connection topology memory is operable to contain a first entry correlating said at least one input port queue to a bit vector and a second entry correlating said at least one input port queue to either a multiqueue number for a point to point connection or a broadcast number for a point to multipoint connection, and
  • wherein said first and second connection topology memories correlate said at least one input port queue to said at least one output port queues.
  • 7. The switch recited in claim 6 wherein said bit vector identifies a selected one of said plurality of output ports, said multiqueue number identifies said at least one output port queue and said broadcast number identifies said multiqueue number.
  • 8. The switch recited in claim 6 wherein said second connection topology memory contains an entry correlating said broadcast number to a multiqueue number for said point to multipoint connection.
  • 9. A switch for permitting data flow within a network, comprising:
  • at least one input port for receiving data from the network;
  • at least one output port for transmitting data from said switch;
  • at least one input port queue associated with said at least one input port;
  • at least one output port queue associated with said at least one output port for temporarily storing data received from said at least one input port queue; and
  • a switch fabric coupled between said at least one input port and said at least one output port, said switch fabric comprising:
  • at least one input side translator associated with said at least one input port;
  • at least one output side translator associated with said at least one output port;
  • a bandwidth arbiter coupled between said at least one input side translator and said at least one output side translator and operative to control data flow between said at least one input side translator and said at least one output side translator; and
  • a connection topology memory associated with said at least one input side translator, operable to contain a first entry which correlates said at least one input port queue to either a multiqueue number for a point to point connection or a broadcast number for a point to multipoint connection and a second entry which correlates said at least one input port queue to a bit vector.
  • 10. The switch recited in claim 9 wherein said bit vector identifies said at least one output port, said multiqueue number identifies said at least one output port queue and said broadcast number identifies said multiqueue number.
  • 11. The switch recited in claim 9 further comprising a second connection topology memory associated with said at least one output side translator and containing an entry which correlates said broadcast number to a multiqueue number for said point to multipoint connection.
  • 12. A method for identifying at least one destination output port queue of a network switch for receipt of a data cell, comprising the steps of:
  • sending an input port queue number of an input port queue to an input side translator of said switch, said input side translator looking up a bit vector identifying at least one output port of said switch and looking up either a first multiqueue number if said data cell is associated with a point to point connection or a broadcast number if said data cell is associated with a point to multipoint connection;
  • sending said bit vector and either said first multiqueue number or said broadcast number to an output side translator associated with said at least one output port identified by said bit vector, said output side translator looking up a second multiqueue number in response to receipt of said broadcast number; and
  • said at least one output port identifying at least one output port queue associated therewith for receipt of said data cell in response to said first multiqueue number or second multiqueue number.
RELATED CASE INFORMATION

This application claims benefit of U.S. provisional application Ser. No. 60/001,498, filed Jul. 19, 1995.

US Referenced Citations (245)
Number Name Date Kind
3804991 Hammond et al. Apr 1974
3974343 Cheney et al. Aug 1976
4069399 Barrett et al. Jan 1978
4603382 Cole et al. Jul 1986
4715030 Koch et al. Dec 1987
4727537 Nichols Feb 1988
4737953 Koch et al. Apr 1988
4797881 Ben-Artzi Jan 1989
4821034 Anderson et al. Apr 1989
4837761 Isono et al. Jun 1989
4849968 Turner Jul 1989
4870641 Pattavina Sep 1989
4872159 Hemmady et al. Oct 1989
4872160 Hemmady et al. Oct 1989
4878216 Yunoki Oct 1989
4893302 Hemmady et al. Jan 1990
4893307 McKay et al. Jan 1990
4894824 Hemmady et al. Jan 1990
4897841 Gang, Jr. Jan 1990
4899333 Roediger Feb 1990
4920531 Isono et al. Apr 1990
4922503 Leone May 1990
4933938 Sheehy Jun 1990
4947390 Sheehy Aug 1990
4953157 Franklin et al. Aug 1990
4956839 Torii et al. Sep 1990
4958341 Hemmady et al. Sep 1990
4979100 Makris et al. Dec 1990
4993018 Hajikano et al. Feb 1991
5021949 Morten et al. Jun 1991
5029164 Goldstein et al. Jul 1991
5060228 Tsutsui et al. Oct 1991
5067123 Hyodo et al. Nov 1991
5070498 Kakuma et al. Dec 1991
5083269 Syobatake et al. Jan 1992
5084867 Tachibana et al. Jan 1992
5084871 Carn et al. Jan 1992
5090011 Fukuta et al. Feb 1992
5090024 Vander Mey et al. Feb 1992
5093912 Dong et al. Mar 1992
5115429 Kluchyj et al. May 1992
5119369 Tanabe et al. Jun 1992
5119372 Verbeek Jun 1992
5128932 Li Jul 1992
5130975 Akata Jul 1992
5130982 Ash et al. Jul 1992
5132966 Hayano et al. Jul 1992
5146474 Nagler et al. Sep 1992
5146560 Goldberg et al. Sep 1992
5150358 Punj et al. Sep 1992
5151897 Suzuki Sep 1992
5157657 Potter et al. Oct 1992
5163045 Caram et al. Nov 1992
5163046 Hahne et al. Nov 1992
5179556 Turner Jan 1993
5179558 Thacker et al. Jan 1993
5185743 Murayama et al. Feb 1993
5191582 Upp Mar 1993
5191652 Dias et al. Mar 1993
5193151 Jain Mar 1993
5197067 Fujimoto et al. Mar 1993
5198808 Kudo Mar 1993
5199027 Barri Mar 1993
5239539 Uchida et al. Aug 1993
5253247 Hirose et al. Oct 1993
5253248 Dravida et al. Oct 1993
5255264 Cotton et al. Oct 1993
5255266 Watanabe et al. Oct 1993
5257311 Naito et al. Oct 1993
5258979 Oomuro et al. Nov 1993
5265088 Takigawa et al. Nov 1993
5267232 Katsube et al. Nov 1993
5268897 Komine et al. Dec 1993
5271010 Miyake et al. Dec 1993
5272697 Fraser et al. Dec 1993
5274641 Shobatake et al. Dec 1993
5274768 Traw et al. Dec 1993
5280469 Taniguchi et al. Jan 1994
5280470 Buhrke et al. Jan 1994
5282201 Frank et al. Jan 1994
5283788 Morita et al. Feb 1994
5285446 Yonehara Feb 1994
5287349 Hyodo et al. Feb 1994
5287535 Sakagawa et al. Feb 1994
5289462 Ahmadi et al. Feb 1994
5289463 Mobasser Feb 1994
5289470 Chang et al. Feb 1994
5291481 Doshi et al. Mar 1994
5291482 McHarg et al. Mar 1994
5295134 Yoshimura et al. Mar 1994
5301055 Bagchi et al. Apr 1994
5301184 Uriu et al. Apr 1994
5301190 Tsukuda et al. Apr 1994
5301193 Toyofuku et al. Apr 1994
5303232 Faulk, Jr. Apr 1994
5305311 Lyles Apr 1994
5309431 Tominaga et al. May 1994
5309438 Nakajima May 1994
5311586 Bogart et al. May 1994
5313454 Bustini et al. May 1994
5313458 Suzuki May 1994
5315586 Charvillat May 1994
5319638 Lin Jun 1994
5321695 Proctor et al. Jun 1994
5323389 Bitz et al. Jun 1994
5333131 Tanabe et al. Jul 1994
5333134 Ishibashi et al. Jul 1994
5335222 Kamoi et al. Aug 1994
5335325 Frank et al. Aug 1994
5339310 Taniguchi Aug 1994
5339317 Tanaka et al. Aug 1994
5339318 Tanaka et al. Aug 1994
5341366 Soumiya et al. Aug 1994
5341373 Ishibashi et al. Aug 1994
5341376 Yamashita Aug 1994
5345229 Olnowich et al. Sep 1994
5350906 Brody et al. Sep 1994
5355372 Sengupta et al. Oct 1994
5357506 Sugawara Oct 1994
5357507 Hughes et al. Oct 1994
5357508 Le Boudec et al. Oct 1994
5357510 Norizuki et al. Oct 1994
5359600 Ueda et al. Oct 1994
5361251 Aihara et al. Nov 1994
5361372 Rege et al. Nov 1994
5363433 Isono Nov 1994
5365514 Hershey et al. Nov 1994
5371893 Price et al. Dec 1994
5373504 Tanaka et al. Dec 1994
5375117 Morita et al. Dec 1994
5377262 Bales et al. Dec 1994
5377327 Jain et al. Dec 1994
5379297 Glover et al. Jan 1995
5379418 Shimazaki et al. Jan 1995
5390170 Sawant et al. Feb 1995
5390174 Jugel Feb 1995
5390175 Hiller et al. Feb 1995
5392280 Zheng Feb 1995
5392402 Robrock, II Feb 1995
5394396 Yoshimura et al. Feb 1995
5394397 Yanagi et al. Feb 1995
5398235 Tsuzuki et al. Mar 1995
5400337 Munter Mar 1995
5402415 Turner Mar 1995
5412648 Fan May 1995
5414703 Sakaue et al. May 1995
5420858 Marshall et al. May 1995
5420988 Elliott May 1995
5422879 Parsons et al. Jun 1995
5425021 Derby et al. Jun 1995
5425026 Mori Jun 1995
5432713 Takeo et al. Jul 1995
5432784 Ozveren Jul 1995
5432785 Ahmed et al. Jul 1995
5432908 Heddes et al. Jul 1995
5436886 McGill Jul 1995
5436893 Barnett Jul 1995
5440547 Easki et al. Aug 1995
5444702 Burnett et al. Aug 1995
5446733 Tsuruoka Aug 1995
5446737 Cidon et al. Aug 1995
5446738 Kim et al. Aug 1995
5448559 Hayter et al. Sep 1995
5450406 Esaki et al. Sep 1995
5452296 Shimizu Sep 1995
5455820 Yamada Oct 1995
5455825 Lauer et al. Oct 1995
5457687 Newman Oct 1995
5459743 Fukuda et al. Oct 1995
5461611 Drake, Jr. et al. Oct 1995
5463620 Sriram Oct 1995
5465331 Yang et al. Nov 1995
5475679 Munter Dec 1995
5479401 Bitz et al. Dec 1995
5479402 Hata et al. Dec 1995
5483526 Ben-Nun et al. Jan 1996
5485453 Wahlman et al. Jan 1996
5485455 Dobbins et al. Jan 1996
5487063 Kakuma et al. Jan 1996
5488606 Kakuma et al. Jan 1996
5491691 Shtayer et al. Feb 1996
5491694 Oliver et al. Feb 1996
5493566 Ljungberg et al. Feb 1996
5497369 Wainwright Mar 1996
5499238 Shon Mar 1996
5504741 Yamanaka et al. Apr 1996
5504742 Kakuma et al. Apr 1996
5506834 Sekihata et al. Apr 1996
5506839 Hatta Apr 1996
5506956 Cohen Apr 1996
5509001 Tachibana et al. Apr 1996
5509007 Takashima et al. Apr 1996
5513134 Cooperman et al. Apr 1996
5513178 Tanaka Apr 1996
5513180 Miyake et al. Apr 1996
5515359 Zheng May 1996
5517495 Lund et al. May 1996
5519690 Suzuka et al. May 1996
5521905 Oda et al. May 1996
5521915 Dieudonne et al. May 1996
5521916 Choudhury et al. May 1996
5521917 Watanabe et al. May 1996
5521923 Willmann et al. May 1996
5523999 Takano et al. Jun 1996
5524113 Gaddis Jun 1996
5526344 Diaz et al. Jun 1996
5528588 Bennett et al. Jun 1996
5528590 Iidaka et al. Jun 1996
5528591 Lauer Jun 1996
5530695 Dighe et al. Jun 1996
5533009 Chen Jul 1996
5533020 Byrn et al. Jul 1996
5535196 Aihara et al. Jul 1996
5535197 Cotton Jul 1996
5537394 Abe et al. Jul 1996
5541912 Choudhury et al. Jul 1996
5544168 Jeffrey et al. Aug 1996
5544169 Norizuki et al. Aug 1996
5544170 Kasahara Aug 1996
5546389 Wippenbeck et al. Aug 1996
5546391 Hochschild et al. Aug 1996
5546392 Boal et al. Aug 1996
5550821 Akiyoshi Aug 1996
5550823 Irie et al. Aug 1996
5553057 Nakayama Sep 1996
5553068 Aso et al. Sep 1996
5555243 Kakuma et al. Sep 1996
5555265 Kakuma et al. Sep 1996
5557607 Holden Sep 1996
5568479 Watanabe et al. Oct 1996
5570361 Norizuki et al. Oct 1996
5570362 Nishimura Oct 1996
5572522 Calamvokis et al. Nov 1996
5577032 Sone et al. Nov 1996
5577035 Hayter et al. Nov 1996
5583857 Soumiya et al. Dec 1996
5583858 Hanaoka Dec 1996
5583861 Holden Dec 1996
5590132 Ishibashi et al. Dec 1996
5602829 Nie et al. Feb 1997
5610913 Tomonaga et al. Mar 1997
5623405 Isono Apr 1997
5625846 Kobayakawa et al. Apr 1997
5633861 Hanson et al. May 1997
5689506 Chiussi et al. Nov 1997
Foreign Referenced Citations (1)
Number Date Country
484943 Mar 1992 JPX
Non-Patent Literature Citations (17)
Entry
An Ascom Timeplax White Paper, Meeting Critical Requirements with Scalable Enterprise Networking Solutions Based on a Unified ATM Foundation, pp. 1-12, Apr. 1994-Apr. 1995?.
Douglas H. Hunt, ATM Traffic Management--Another Perspective, Business Communications Review, Jul. 1994.
Richard Bubenik et al., Leaf Initiated Join Extensions, Technical Committee, Signalling Subworking Group, ATM Forum/94-0325R1, Jul. 1, 1994.
Douglas H. Hunt et al., Flow Controlled Virtual Connections Proposal for ATM Traffic Management (Revision R2), Traffic Management Subworking Group, ATM.sub.- Forum/94-0632R2, Aug. 1994.
Flavio Bonomi et al., The Rate-Based Flow Control Framework for the Available Bit Rate ATM Service, IEEE Network, Mar./Apr. 1995, pp. 25-39.
R. Jain, Myths About Congestion Management in High Speed Networks, Internetworking Research and Experience, vol. 3, 101-113 (1992).
Douglas H. Hunt et al., Credit Based FCVC Proposal for ATM Traffic Management (Revision R1), ATM Forum Technical Committee Traffic Management Subworking Group, ATM.sub.- Forum/94-0168R1, Apr. 28, 1994.
Douglas H. Hunt et al., Action Item Status for Credit-Based FCVC Proposal, ATM Forum Technical Committee Traffic Management Subworking Group, ATM.sub.- Forum/94-0439, Apr. 28, 1994.
Timothy P. Donahue et al., Arguments in Favor of Continuing Phase 1 as the initial ATM Forum P-NNI Routing Protocol Implementation, ATM Forum Technical Committee, ATM Forum/94-0460, Apr. 28, 1994.
Richard Bubenick et al., Leaf Initiated Join Extensions, Technical Committee, Signalling Subworking Group, ATM Forum/94-0325, Apr. 28, 1994.
Rob Coltun et al., PRP: A P-NNI Routing Protocol Proposal, ATM Forum Technical Committee, ATM.sub.- Forum/94-0492, Apr. 28, 1994.
Richard Bubenik et al., Leaf Initiated Join Extensions, ATM Forum Technical Committee, Signalling Subworking Group, ATM Forum 94-0325, Apr. 28, 1994.
Richard Bubenik et al., Requirements For Phase 2 Signalling Protocol, ATM Forum Technical Committee, Signalling Subworking Group, ATM Forum 94-1078, Jan. 1, 1994.
SITA, ATM RFP: C-Overall Technical Requirements, Sep. 1994.
H.T. Kung and K. Chang, Receiver-Oriented Adaptive Buffer Allocation in Credit-Based Flow Control for ATM Networks, Proceedings of INFOCOM '95, Apr. 2-6, 1995, pp. 1-14.
H.T. Kung et al., Credit-based Flow Control For ATM Networks: Credit Update Protocol, Adaptive Credit Allocation, and Statistical Multiplexing, Proceedings of ACM SIGCOMM '94 Symposium on Communications Architectures, Protocols and Applications, Aug. 31-Sep. 2, 1994, pp. 1-14.
Head of Line Arbitration in ATM Switches With Input-Output Buffering and Backpressure Control. By Hosein F. Badran and H. T. Mouftah, Globecom '91, pp. 0347-0351.