Abstract:
The present invention relates to a buffered crossbar switch which provides a step of changing the size and/or number of queuing buffer entries to ensure optimum buffer memory usage independent of the size of data packets processed.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application is a continuation of copending U.S. patent Ser. No. 10/334,218 filed Dec. 30, 2002 for BUFFERED CROSSBAR SWITCH AND ITS METHOD OF OPERATION. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     The present invention relates to a buffered crossbar switch, and in particular to changing the queuing buffer memory organization of a buffered crossbar switch.  
         [0003]     Crossbar switches connect a plurality of input/output ports one to another. Data packets arriving at one of the input ports are routed to specific output ports.  
         [0004]     Buffered crossbar switches have queuing buffers for temporarily storing data packets that cannot be routed to a specified output port instantly, which is possible since several concurrent routing operations may be performed.  
         [0005]     Crossbar switches are frequently used in multi-processor computer systems with distributed memory architecture e.g. for linking processors with resources such as cache memory and other subsystems. Internet switch networks and similar high-performance communication networks also make use of crossbar switches.  
         [0006]     In view of the high bit rate demands of the previously named applications, state of the art crossbar switches are designed for scalability to form expanded crossbar switches with a plurality of scalable crossbar switches working in parallel. This operation mode is referred to as expansion mode and it is characterized in that incoming data packets are divided into smaller portions each of which is processed by one of the scalable crossbar switches.  
         [0007]     A general buffered crossbar architecture is depicted in  FIG. 1  which will be referred to in the following explanations. This architecture is characterized by a plurality of input ports i 1 , i 2 , i 3 , i 4 , a plurality of output ports o 1 , o 2 , o 3 , o 4 , a plurality of input crossbars  7 , each of which is connected to one of the input ports i 1 -i 4  and a plurality of output crossbars  8 , each of which is connected to one of the output ports o 1 -o 4 .  
         [0008]     An intersection of an input crossbar  7  and an output crossbar  8  is called crosspoint. It can be seen that each crosspoint has a dedicated queuing buffer consisting of a buffer control  5  and a buffer memory  6 . The arrows indicate the direction of data flow to/from the crossbars/queuing buffers.  
         [0009]     The number M of queuing buffer entries greatly influences system performance. A sufficient number M of queuing buffer entries can avoid data loss due to blocking situations caused by multiple connections requesting the same switch resources such as e.g. the same output port.  
         [0010]     When designing a crossbar switch, the constant size E of a queuing buffer entry is usually chosen with respect to the packet size of the data packets of a specific application.  
         [0011]     Applications with data packets of different size, for instance E/ 4 , must use one queuing buffer entry of the size E, too, for storing one data packet thus leaving 75% of the queuing buffer memory space unused.  
         [0012]     Since queuing buffer memory is often provided as on-chip static random access memory (SRAM) within a switch chip, the inefficient way of using queuing buffer memory is one of the limiting factors for further reduction of the chip-size and hence the costs of a switch chip.  
       SUMMARY OF THE INVENTION  
       [0013]     Consequently, it is an object of the present invention to provide a method a buffered crossbar switch that ensures a more efficient usage of queuing buffer memory and increases flexibility of a buffered crossbar switch.  
         [0014]     According to the invention, for a buffered crossbar switch having at least one mode of operation with a specific data packet size L, this object is achieved by changing the size E and/or the number M of queuing buffer entries depending on said mode of operation.  
         [0015]     Given a total queuing buffer memory size S per crosspoint and different data packet sizes for different modes of operation of the crossbar switch, the size E of the queuing buffer entries can advantageously be changed to equal the data packet size L of the respective mode of operation. This adaptation of the queuing buffer entry size E eliminates the waste (E-L)/E of buffer memory.  
         [0016]     According to one embodiment of the invention, the minimum buffer memory size S=S_min is to be chosen large enough to store M=M_min queuing buffer entries each having a size of E=L_max, wherein M_min is the minimum number of queuing buffer entries necessary for the mode of operation characterized by the largest data packet size, L_max.  
         [0017]     Yet it might be necessary to determine the minimum buffer memory size S=S_min by considering another mode of operation with L=L2 and M=M2 for which M2*L2&gt;M_min*L_max.  
         [0018]     However, it is clear that S_min must be chosen to provide sufficient buffer memory for each mode of operation. M_min is often obtained by simulation, whereas the queuing buffer entry size E should equal the data packet size L, as already stated above.  
         [0019]     A further embodiment of the invention is characterized by changing the queuing buffer entry size E to a fraction L′=L/R of the data packet size if operating a plurality of R crossbar switches in parallel in an expansion mode.  
         [0020]     As described above, expansion mode is characterized by parallel processing of data packets by a plurality of R crossbar switches. Hence in expansion mode each of the R crossbar switches has to handle portions of data packets having the size L′=L/R.  
         [0021]     These portions L′ are smaller than the data packet size L, e.g. for R=2 crossbar switches working in parallel, the portions L′ have only half the size L of a data packet.  
         [0022]     Thus, in expansion mode the buffer memory can hold twice the number M of queuing buffer entries as compared to a single chip operation demanding a queuing buffer entry size of E=L. This increase of queuing buffer entries contributes to system performance.  
         [0023]     There is a further advantageous effect concerning queuing buffer memory organization with buffered crossbar switches. As already stated above, crossbar switches are usually designed for scalability to form expanded crossbar switches. Since in expansion mode each scalable crossbar switch only handles a fraction of a data packet being processed, the routing information of said data packet is only available in one of said switches and must be transmitted to the remaining switches, which is done via an external bus system connecting said crossbar switches.  
         [0024]     Said routing information consists of a bit-mask comprising at least as many bits as there are output ports/buffers available. If a port is selected for output, the corresponding bit in the bit-mask has to be set, otherwise it has to be cleared.  
         [0025]     State of the art systems reduce said routing information to be able to handle high data rates, which is achieved by providing fewer bits for the bit-mask. In consequence, each bit of the reduced bit-mask represents a group containing a plurality of output ports. Selecting a specific output port is performed by choosing the group said specific output port belongs to and setting the corresponding bit of the bit-mask denoting this group.  
         [0026]     A data packet that is to be written to the output buffer of said specific output port is simultaneously written to every output buffer corresponding to the output ports belonging to the group specified. Since in a further step the data packet is only output at the specific output port, it is only read from the corresponding output buffer. The buffer entries of the remaining output buffers said data packet has been written to are not evaluated. This waste of buffer entries requires a comparatively large number M of queuing buffer entries to be provided for expansion mode. However, the queuing buffer entry size E can be chosen comparatively small, since only fractions of data packets are to be handled by a single switch in expansion mode.  
         [0027]     For single chip operation, the routing information is not to be transmitted to other switches. Thus, a reduction of the bit-mask as described above is not necessary, i.e. every output port/buffer can be selected individually by setting the corresponding bit. As a consequence, in single chip operation there is no waste of queuing buffer entries, but compared to expansion mode, the queuing buffer entry size E must be chosen to fit the size of a data packet.  
         [0028]     As a result, by using the invention, the queuing buffer memory size S can be relatively small compared to known systems, since the invention provides for a highly flexible queuing buffer management operating the crossbar switch with maximum resource efficiency.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0029]     These and other objects will be apparent to one skilled in the art from the following detailed description of the invention taken in conjunction with the accompanying drawings in which:  
         [0030]      FIG. 1  shows a section of a buffered crossbar switch as already explained above,  
         [0031]      FIG. 2  shows a buffered crossbar switch,  
         [0032]      FIG. 3  shows two variants (a, b) of partitioning a queuing buffer memory,  
         [0033]      FIG. 4  shows four crossbar switches operating in expansion mode and  
         [0034]      FIG. 5  shows a flow chart of an embodiment of the method according to the invention. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0035]      FIG. 2  shows a buffered crossbar switch  11  consisting of a plurality of sections as depicted in  FIG. 1 . It has N=32 input ports i 1 , . . . , iN and 32 output ports o 1 , . . . , oN.  
         [0036]     Each queuing buffer of the crossbar switch  11  contains a queuing buffer memory  6  as depicted in  FIG. 3 .  
         [0037]     Further,  FIG. 3  shows two variants of partitioning the queuing buffer memory  6  of  FIG. 1  having the size S. The variant of  FIG. 3   a ) contains M=4 queuing buffer entries  9  each having the size E=E_a.  
         [0038]     In a first mode of operation, a single crossbar switch  11  is used handling data packets of the size L=E_a.  FIG. 3   a ) shows the queuing buffer memory  6  of this single crossbar switch  11 . Since the size E=E_a of the queuing buffer entries  9  equals the data packet size L=E_a, the complete buffer memory  6  of the size S can be used for storing data packets.  
         [0039]     For a second mode of operation handling data packets with a size L′ different from E_a, it is possible to change the size E accordingly, which is done in step a) shown in the flow chart of  FIG. 5 . This results in a new partitioning of the queuing buffer memory  6  thus yielding a new number M′ of queuing buffer entries.  
         [0040]     M′ generally depends on L′ in that it is possible to create new queuing buffer entries in the queuing buffer memory  6  if the size E of the queuing buffer entries is reduced. Vice versa, an increase of the queuing buffer entry size E results in a reduction of the number M of queuing buffer entries.  
         [0041]     The second mode of operation is expansion mode which is characterized by a plurality of R=4 crossbar switches  11 ,  12  working in parallel as can be seen in  FIG. 4 . The master switch  11  controls three slave switches  12  via an external bus system  13 .  
         [0042]     The input/output ports i 1 , . . . , iN, o 1 , . . . , oN of the switches  11 ,  12  are configured such that each switch only receives a portion of an incoming data packet. The size L′ of such a portion of a data packet is determined by the number R of switches working in parallel according to L′=L/R, in this case L′=L/ 4 .  
         [0043]     I.e. when operating R=4 crossbar switches  11 ,  12  in expansion mode, each switch only has to handle portions of data packets having the size L′=L/4.  
         [0044]     The adaptation of the queuing buffer entry size E in the second mode of operation leads to E=E_b=L′. The new queuing buffer entry size E_b equals the size L′ of a portion of a data packet to be processed by a single switch  11 ,  12 .  
         [0045]     In turn, since L′=L/4, the number M′ of queuing buffer entries can be increased by the factor R=4. Thus, the queuing buffer  6  of  FIG. 3   b ) contains M′=M*4 queuing buffer entries  10  each having the size L′.  
         [0046]     With this adaptation of the queuing buffer entry size E from E=E_a for the first mode of operation to E=E_b for the second mode of operation, expansion mode, no queuing buffer memory is wasted.  
         [0047]     The possibility of adapting the queuing buffer entry size E provides a flexible crossbar switch that can be used with many applications involving different data packet sizes L.  
         [0048]     The invention is particularly interesting for operating a plurality of crossbar switches in parallel in expansion mode, though it is not limited to this mode.  
         [0049]     While the preferred embodiment of the invention has been illustrated and described herein, it is to be understood that the invention is not limited to the precise construction herein disclosed, and the right is reserved to all changes and modifications coming within the scope of the invention as defined in the appended claims.