Asynchronous transfer mode switch

Abstract: An Asynchronous Transfer Mode switch for switching cells, having destination information therewith, between input ports and output ports, comprises (a) a shared multibuffer (SBM) having addresses for storing cells; and (b) a controller (16) having a common address queue for queueing the addresses of cells stored in the shared multibuffer and the destination information.

Description: Background of the Invention This invention relates to an asynchronous transfer mode switch for switching cells, having destination information therewith, between input ports and output ports. Description of the Related Art In ATM (Asynchronous Transfer Mode) communication systems, continuous signals such as line signals or voice signals, and bursty signals such as data signals or motion video are divided into fixed lengths of data, appended to a header indicating destination information, thus forming a packet. This packet is called a "cell" in ATM. Data are transferred in the same packet form. Synchronization of frames is not needed between terminal equipment and a channel, and the operating speed of the terminal equipment and the channel can be set independently. This system can be applied to many kinds of terminal equipment. But a high-speed packet switch receives packets at random, and a lot of packets may be addressed to one destination, so that packets need to be queued for processing to prevent loss of information. Fig. 14 shows an example of a conventional ATM switch named shared multibuffer ATM switch described in "622 Mb/s 8 x 8 Shared Multibuffer ATM Switch with Hierarchical Queueing and Multicast Functions", GLOBECOM '93, session #40, December 1993 by Hideaki Yamanaka et al. A data queueing apparatus is address queues in a controller 16. When a cell comes to one of the input ports 11 1 - 11 8 , the ATM switch detects the header in the cell and transfers it to the controller 16. The incoming cell is written in one of the vacant addresses of the shared buffer memories (SBMs). This address is chosen in the controller 16. The controller 16 has plural address queues. Each address queue is for one of output ports. Address queues are selected based on the destination of the cell. Then the write address is buffered in the selected address queues. On the other hand, the incoming cell is passed through a cross point switch 3201, transferred to a shared buffer memory (SBM). and stored there. The data stored in SBM are transmitted to one of the output ports 12 1 - 12 8 based on the output direction from the controller 16. Fig. 15 shows the address queues by the FIFO memories in the controller 16. Fig. 16 shows an example of an operation for multicast cells, which are to be multicasted to a plurality of the output ports. For processing the multicast cells, multicast cell counters (MCCs) are provided. The MCCs correspond to the data stored in the shared buffer memory (SBM) and indicate if the received data are multicast cells or not. For example, when an incoming multicast cell is stored in SBM 14 1 in address AO and this multicast cell is to be copied to two output ports, MCC 93 increments the counter value from "0" to "2" as shown in Fig. 16. Another cell stored in address B3 in SBM 14 2 is a multicast cell destined for two output ports, and MCC 90 decrements the counter value from "2" to "0" after the cell in B3 goes out to two output ports. As the MCC 90 becomes "0", the address B3 is released and put in idle address pool. Though another cell destined for two output ports is stored in SBM 14 3 as shown by MCC 92, it has been transferred to only one output port in this time slot. The MCC 92 decrements the counter value from "2" to "1". As the MCC 90 is not "0" , the address C1 is not released. As a result, the cell in C1 can wait until the next slot for going out to the other destination port. In this way, the MCCs control to detect the release timing of addresses of SBM for multicast cells. Fig. 17 shows a graph of memory capacity requlred by the shared buffer memories (SBMs) and the address queues (AQs), where B is the size of the buffer memories per output port (cells/port). AQs are an example of a conventional data queueing apparatus. Fig. 18 shows a formula for drawing this graph. The required memory capacity of the address queues (AQ) increases according to the increase of the number of the output ports. The memory capacity of the address queues (AQ) is tuned to be larger than the memory capacity of SBM when the output ports number 64 or more. Fig. 19 shows some considerations relative to the design of high-speed ATM switches and large-scaled ATM switches. The operation speed must be increased in the high-speed ATM switches. Therefore, the number of addresses written in the address queues per second is increased in proportion to the operation speed, the number of the input ports, and the number of the output ports. As a result, the address queues or a data queueing apparatus is forced to operate at a high speed. And the number of the input ports and the output ports must be increased in large-scaled ATM switches. The memory capacity of the shared buffer memory must be increased as well. In accordance with these increases, the number and the lengths of the queues need to be increased. The number of address bits also needs to be increased. Thus, the total memory capacity of the address queues gets larger. In the conventional data queueing apparatus configured as described above, for example, when the memory 14 has capacity to hold P number of packets, the FIFO memory 19 needs to have capacity of P number of addresses so as to prevent a loss of packets caused by an overflow of addresses. Therefore, the data queueing apparatus 18 needs a memory capacity sufficient to hold P times as many as m number of addresses as a whole, so that the scale of the apparatus becomes large. IBM Technical Disclosure Bulletin, vol. 32, no. 10B, March 1990, pages 176/177, discloses a buffered ATM switch with n input and n output ports and having a plurality of data sections controlled by a single control section. Each data section contains a set of shift registers as packet storage. A shift register is supposed to hold one fixed-size packet (e.g., ATM cell). At the input side, up to n incoming packets can be routed simultaneously into free shift registers via individual routers at each input. The routing information for each of these routers, i.e. a pointer to a free shift register, is provided in advance by the control section. At the output side, up to n outgoing packets can be transmitted simultaneously from appropriate shift registers via individual selectors at each output. The select information for each of these selectors, i.e., a pointer to full shift registers holding packets due for transmission, is provided by the control section, also. The data sections are interconnected, with their inputs and outputs in parallel. Some bits of the address pointers provided by the control section are used to enable the appropriate data section, while the remaining bits are used to point to a shift register within the data section. The control section handles short control packets containing address pointers pointing to shift registers in the data selections. There are n+1 control queues in the control section, namely, one FIFO output queue per switch output and a single free storage queue which contains all addresses of momentarily free shift registers. From this free storage queue, free storage pointers are de-queued and fed to the routers at the input side of the data sections. Whenever a packet arrives, the free storage pointer it takes is entered as a control packet into that output queue within the control section which is addressed by the header of the incoming packet. The entry at the head of an output queue i contains a full storage pointer which addresses that shift register which holds the packet which is due for transmission via output port i. This pointer is de-queued and fed to selector i at the output side of the data sections. When the packet transmission is finished, the corresponding address pointer is returned to the free storage queue as a momentarily free storage address. Summary of the Invention The object of this invention is to solve the above problems. The invention provides an apparatus which does not need plural memories for storing data, but uses a common memory for storing data for all of the output ports. The capacity of the memory becomes smaller, so that the scale of the apparatus can also become smaller. In addition, the possibility of data loss can be reduced because of sharing effect. Claim 1 defines an Asynchronous Transfer Mode switch according to the invention. In the Asynchronous Transfer Mode switch according to this invention, the address queue may include memory means for storing the addresses and the destination information of cells, and select means for selecting addresses for each of output ports based on the destination information. In the Asynchronous Transfer Mode switch, the memory means may include shift memories for storing addresses and destination information, and searching elements for searching destination information stored in the shift memories. In the Asynchronous Transfer Mode switch, each of the shift memories may include an occupation indicator for indicating an occupation status of the shift memory, and a shift trigger for shifting addresses and destination information to another shift memory based on the occupation status indicated by the occupation indicator in the other shift memory. Brief Description of the Drawings In the drawings, Figure 1 is a block diagram of a data queueing apparatus not covered by the invention; Figure 2 is a timing chart which shows timing of the operation of each part shown in the block diagram of Fig. 1; Figure 3 is a timing chart which shows timing of the operation of each part shown in the block diagram of Fig. 1; Figure 4 is a timing chart which shows timing of the operation of each part shown in the block diagram of Fig. 1; Figure 5 is a flow chart of the operation of the apparatus shown in Fig. 1; Figure 6 is a block diagram showing the shared multibuffer ATM switch according to an embodiment of the invention; Figure 7 shows a configuration of the data queueing apparatus In the shared multibuffer ATM switch according to the embodiment of this invention; Figure 8 shows the shift operation according to the embodiment of this invention; Figure 9 shows the operation of forward shifting according to the embodiment of this invention; Figure 10 is a chart comparing the memory size of the data queueing apparatus used in an ATM switch according to this invention and a conventional data queueing apparatus; Figure 11 shows a formula for calculating the memory size of the data queueing apparatus used in an ATM switch according to this invention and the conventional data queueing apparatus; Figure 12 shows the shift operation according to another embodiment of this invention; Figure 13 shows the operation of the searching element according to another embodiment of this invention; Figure 14 shows a configuration of the shared multibuffer ATM switch; Figure 15 shows the address queueing by the conventional FIFO memories; Figure 16 shows the operation of the conventional data queueing apparatus, when receiving a conventional multicast cell; Figure 17 shows the memory size needed by the conventional shared buffer memories (SBMs) and the address queues (AQs); Figure 18 shows a formula for calculating the memory size needed by the conventional shared buffer memories (SBMs) and the address queues (AQs); and Figure 19 shows design considerations related to high-speed ATM switches and large-scaled ATM switches. Fig. 1 shows an embodiment of a data queueing apparatus which is not covered by the invention. In Fig. 1, an input line 1 receives a limited length of data and a plurality of output lines 2 1 - 2 m transmit data. Destination inputs 3 1 - 3 m are provided correspondingly to the output lines 2 1 - 2 m and indicate destination output ports of received data. Shift memories 4 1 - 4 k store data. Destination indicating bits 5 11 - 5 km are provided correspondingly to each shift memory. The destination indicating bit 5 12 , for example, shows whether the destination of the data stored in the shift memory 4 1 is the output line 2 2 or not. The destination indicating bit 5 km , for another example, shows whether the destination of the data stored in the shift memory 4 k is the output line 2 m or not. Search circuits 6 1 - 6 m are provided correspondingly to each output lines 2 1 - 2 m . The search circuit 6 1 , for example, is connected to the destination indicating bits 5 11 , 5 21 ...5 k1 . Selectors 7 1 - 7 m are provided correspondingly to each of the output lines 2 1 - 2 m . The selector 7 1 , for example, corresponding to the output line 2 1 , selects the data to be transmitted from the shift memories 4 1 - 4 k based on a search result of the search circuit 6 1 , and transmits the data selected to the output line 2 1 . Operation of the apparatus of Fig. 1 is explained hereinafter. Figs. 2 - 4 show changing signals and memory contents when the number of the input line 1 is one, the number m of the output lines 2 1 - 2 m is four, the number k of the shift memories 4 1 - 4 k is six. In Figs. 2 - 4, line (a) shows time slots divided by a fixed length of time. Line (b) shows an example of data received in the input line 1, and line (c) shows destination inputs 3 4 , 3 3 , 3 2 , and 3 1 in this order. Examples of the contents of the shift memories 4 1 - 4 6 and the destination indicating bits 5 11 - 5 64 in each time slot are shown in lines (d) - (o). Lines (p) - (s) show examples of the data to be transmitted to the output lines 2 1 - 2 4 . Data received in the input line 1 is a limited length of information such as frame information divided into predetermined fixed times, fixed-length address information, or fixed-length packet information. In Figs. 2 - 4, the predetermined fixed times are the time slots and a serial number is assigned to each time slot from time slot 1 for the convenience of this explanation. In these figures, one data item is received in each time slot. These figures show an example in which no data was received before the time slot 1 or a long time has passed since data was last received, and therefore the shift memories 4 1 - 4 6 are empty before time slot 1. One data item is received in each of the time slots 1, 2, 3, 4, 6, 7, and 8. In Figs. 2 - 4, the data to be transmitted to the output lines 2 1 - 2 4 are read once every 4 time slots. Actually, data is read in the time slot 4 and the time slot 8. Destination information is received at the destination inputs 3 1 - 3 4 simultaneously with data received at the input line 1. For example, when the destination of the received data is the output line 2 4 , only the destination input 3 4 is asserted. In the figures, "1" means an asserted bit, thus, in this case, destination inputs {3 4 , 3 3 , 3 2 , 3 1 } become {1, 0, 0, 0}. "Data a" addressed to the output line 2 4 is received in the time slot 1, and "data b" addressed to the output line 2 1 is received in the time slot 2. In the time slot 1, the shift memory 4 6 is empty, thus, "data a" is shifted to the shift memory 4 6 immediately. Destination inputs 3 1 - 3 4 are stored in the destination indicating bits 5 64 - 5 61 . In the same way, in the time slot 2, the shift memory 4 5 is empty, thus, "data a" is shifted to the shift memory 4 5 , and "data b" is shifted to the shift memory 4 6 . When "data a" is shifted from the shift memory 4 6 to the shift memory 4 5 , the destination in the destination indicating bits 5 64 - 5 61 are shifted to the destination indicating bits 5 54 - 5 51 corresponding to the next shift memory 4 5 . The following is an explanation of reading out data to the output lines 2 1 - 2 4 . Figure 2 shows an example of transmitting data in the time slot 4. At the first stage of the time slot 4, the search circuits 6 1 - 6 4 search for and detect data to transmit. When any one of destination indicating bits 5 11 - 5 64 is asserted, a search result to that effect is passed to the selectors 7 1 - 7 4 . The selectors 7 1 - 7 4 select one transmitted data of those detected for each output line 2 1 - 2 4 from the shift memories 4 1 - 4 6 , and transmit data to the output lines 2 1 - 2 4 . For example, the search circuit 6 1 detects data to transmit to the output line 2 1 . The destination indicating bits 5 11 , 5 21 , 5 31 , 5 41 , 5 51 , 5 61 are read in this order until the asserted bit "1" is detected among these bits. If the asserted bit is detected, it is passed to the selector 7 1 . The selector 7 1 shown in these figures selects one out of six. The selector 7 1 selects one of 6 shift memories 4 1 - 4 6 , and the selected data is transmitted to the output line 2 1 . The above operation of transmitting data to the output line 2 1 is done independently of transmitting data to the other output lines 2 2 - 2 4 . These operations of transmitting data to the output lines can be done separately and simultaneously. The destination indicating bits 5 11 - 5 64 detected by the search circuits 6 1 - 6 4 become deasserted after selection based on a detection. The data stored in the shift memories 4 1 - 4 6 are deleted after reading. The next data is shifted to the shift memories 4 1 - 4 6 , if there is any data in the previous stage. The following is a more detailed explanation of the operation, referring to Figs. 2 - 4. In each time slot 1 - 4, each of "data a, b, c, and d" is received. Each of "data a, b, c, and d" is stored in the shift memories in the order received. In the time slot 4, one data is read and transmitted to each of the output lines 2 1 - 2 4 as described above. The data to be transmitted to the output line 2 1 is explained referring to Fig. 2 hereinafter. In the time slot 4, the search circuit 6 1 reads out the destination indicating bits 5 11 , 5 21 , 5 31 , 5 41 , 5 51 , and 5 61 in this order. These bits are 0, 0, 0, 0, 1, and 1. The destination indicating bit 5 51 is detected from these values, because it is asserted and read before 5 61 , and it is passed to the selector 7 1 . The selector 7 1 selects the shift memory 4 5 from six shift memories 4 1 - 4 6 based on the result of the search circuit 6 1 operation, and "data b" is transmitted to the output line 2 1 . When "data b" is transmitted to the output line 2 1 , the shift memory 4 5 , in which "data b" was stored in the time slot 4, becomes empty. In the time slot 5, "data c", which was stored in the previous stage in the time slot 4, is shifted to the shift memory 4 5 as shown in Fig. 3. And the destination information in the destination indicating bits 5 64 , 5 63 , 5 62 , and 5 61 are also shifted to the destination indicating bits 5 54 , 5 53 , 5 52 , and 5 51 . In the same way, "data a" is transmitted to the output line 2 4 . Each value of the destination indicating bits 5 12 , 5 22 , 5 32 , 5 42 , 5 52 , and 5 62 , which correspond to the output line 2 2 , is 0, 0, 0, 0, 0, and 0. This means there exists no asserted bits, thus the search circuit 6 2 informs the selector that there is no data to be transmitted. Thus, no data is transmitted from the output line 2 2 . In the same way, no data is transmitted from the output line 2 3 . No data is received in the time slot 5, however the data stored in the shift memories are shifted to the next shift memories. In the time slots 6 - 8, "data e, f, and g" are received sequentially. The received data are stored in the shift memories, and then shifted to the next shift memories. In the time slot 8, data are read to be transmitted to the output lines as described above. In this case, "data c" is detected as the data to be transmitted to the output line 2 1 by the search circuit 6 1 . "Data e" is detected as the data to be transmitted to the output line 2 2 by the search circuit 6 2 . These detected "data c and e" are transmitted to each output lines. The search circuits 6 3 and 6 4 can know there are no data to be transmitted to the output lines 2 3 and 2 4 because the destination indicating bits have no asserted bits. Accordingly, no data is transmitted to the output lines 2 3 and 2 4 . In the time slots 9 - 11, no data Is received at the input lines. In these cases, the data stored in the shift memories are shifted to the next shift memories sequentially. "Data d" is stored in the shift memory 4 1 in the time slot 10 as shown in Fig. 4. "Data d" cannot be shifted furthermore because the shift memory 4 1 is the last stage. "Data d" remains in the shift memory 4 1 during the time slot 11. This "data d" is detected as the data to be transmitted to the output line 2 1 by the search circuit 6 1 in the time slot 12, then is transmitted to the output line 2 1 by the selector 7 1 . In the above examples, all received data could be written in the shift memory 4 6 . But data cannot be written when all of the shift memories 4 1 - 4 6 are occupied by data. In this case, coming data are discarded. To reduce the possibility of data discard or loss, the number k of the shift memories 4 1 - 4 k Is desired to be large. A flow of the above operation is explained hereinafter referring to Fig. 5. At step S1, data and its destination are received at the input line 1 and the destination inputs 3 1 - 3 m . At step S2, it is checked whether the first shift memory, which initially stores the received data, is occupied by any data. When the first shift memory has been occupied by some other data, the data and the destination received at step S1, are disposed at step S3. If it is detected that the first shift memory is empty at step S2, the first shift memory stores at step S5, the data and the destination which are received at step S1. At step S6, it is checked if it is fourth input or not. When it is not fourth input, the operation from step S1 - S5 is repeated. While the operation from step S1 - S6 is repeated, the received data are shifted at step S6', to the next shift memory one by one. By forward shifting as described above, the first shift memory, which receives the data for the first time, remains empty unless all shift memories are full. If it is judged to be fourth input at step S6, the search circuits 6 1 -6 4 search and detect the data to be transmitted to each output lines by checking the destination to each output lines at step S7. At step S8, it is checked if the data to be transmitted to the output line is detected or not. When no data is detected to be transmitted, the operation is repeated from the step S1 again. When any data is detected to be transmitted at step S8, the data is selected from the shift memory by the selector at step S9. At step S10, the data selected by the selector is transmitted to the corresponding output line. At step S11, the data is deleted from the shift memory by clearing the corresponding destination since the data transmitted at step S10 is no longer needed. After deleting the data, the operation is repeated from receiving data and the destination at step S1. And the data stored in the previous shift memory is requested to shift to the next stage by this data deletion. Thus, the data stored in the previous shift memory is overwritten in the shift memory where the destination has been cleared. (Step S6') As described above, in this apparatus, received limited-length data in the input line 1 are written in the shift memories, in which data can be shifted from one to the next sequentially regardless of its destination. The destination indicating bits are associated with each of the shift memories. The search circuits search the data to be transmitted in received order by detecting an asserted bit from the destination indicating bits corresponding to the destination output lines, and the data is extracted by the selectors. After extraction, the selector transfers the data to the desired output lines and the previous data is shifted to overwrite the transmitted data. By this data queueing apparatus, the data received at the input line is written in the shift memories and its destination is stored in the destination indicating bits. Data are read in arrival order by searching the destination indicating bits corresponding to each of the output lines, so that the received data can be transmitted to the desired output line in arrival order. The shift memories can be used commonly for all output lines, so that the data queueing apparatus can reduce the possibility of data loss, which would be caused by attempting to write data, especially receiving bursty data which exceed the capacity of the shift memories. Embodiment 1 Fig. 6 shows an example of a shared multibuffer ATM switch. This shared multibuffer ATM switch is characterized by adopting in the controller 16 the data queueing apparatus 180 described above. Fig. 7 shows a configuration of the data queueing apparatus 180. The data queueing apparatus 180 has the same function as the data queueing apparatus described with respect to Figs. 1 to 5. Flags correspond to the above-described destination indicating bits which store the destination information. Address corresponds to the data stored in the above-described shift memories. And a searching element corresponds to the above-described search circuit. Fig. 8 shows a shift operation. The value of an occupation indicator becomes "0" when all of the flags are "0". When the occupation indicator indicates "0", the data stored in the previous stage is shifted to the next. Fig. 9 explains the forward shifting shown in Fig. 8. In the first' stage, the flags have been set 1, 0, 0, so that the occupation indicator indicates "1" as shown in Fig. 9. The value of the occupation indicator is transmitted to a shift trigger of the second stage. The shift trigger shifts the data which are stored in the stage where the shift trigger exists, to the next stage when the value of the occupation indicator becomes "0". In the second stage, the flags are all "0", so that the occupation indicator indicates "0". The shift trigger of the third stage shifts the address and the destination indication, stored in the third stage, to the second stage. Fig. 10 is a graph comparing the memory size needed by the conventional data queueing apparatus and by the data queueing apparatus according to this embodiment. In Fig. 10 the horizontal axis shows the number of the output lines and the vertical axis shows the ratio of the memory size needed by the apparatus according to this embodiment to the memory size needed by the conventional apparatus. The graph shown in Fig. 10 is made using the formula as shown in Fig. 11. As shown in Fig. 10, the more output ports the apparatus has, the smaller memory size is needed by the data queueing apparatus of this embodiment compared with the conventional apparatus. Embodiment 2 Fig. 12 shows another embodiment for shifting the data stored in the shift memories. In the above embodiment, the data stored in the shift memories are shifted forward once every time slot. It is desirable to shift the stored data a plurality of times every time slot as shown in Fig. 12, not to shift data once every time slot. In this case, data are received every time slot, and the received data can be certainly stored in the shift memories by previously shifting forward the stored data. Embodiment 3 Fig. 29 shows an example of the searching element. In the above embodiment, the searching element is provided correspondingly to each output line. In this embodiment, the searching element is provided in common for a plurality of the output lines. A switch 60 is provided for the searching element, and the switch changes the connections with the flags for searching each flag sequentially. In this case, the searching element may operate at a high speed, or the searching element may not operate at a high speed for searching the data to be transmitted to each output line once every time slot. In this embodiment, the same effect can be attained as in the above embodiments. Embodiment 4 Each of the flags is not needed to be 1 bit, but it can consist of 2 or more bits, not shown in the figure. When a flag has 2 or more bits, the priorities of the data can be processed.

Claims: An Asynchronous Transfer Mode switch for switching cells, having destination information therewith, between input ports (11) and output ports (12), comprising a shared multibuffer (14) having addresses for storing cells and an address queue for queueing the addresses of cells stored in the shared multibuffer characterized in that the address queue contains means (180) for storing both the addresses of cells and destination information and is common to all output ports (12). The Asynchronous Transfer Mode switch of claim 1, wherein the address queue comprises memory means for storing the addresses and the destination information of cells, and select means for selecting addresses for each of output ports based on the destination information. The Asynchronous Transfer Mode switch of claim 2, wherein the memory means comprises shift memories for storing addresses and destination information, and searching elements for searching destination information stored in the shift memories. The Asynchronous Transfer Mode switch of claim 3, wherein each of the shift memories comprises an occupation indicator for indicating an occupation status of the shift memory, and a shift trigger for shifting addresses and destination information to another shift memory based on the occupation status indicated by the occupation indicator in the other shift memory.

Inventors: KONDOH HARUFUSA, NOTANI HIROMI, OSHIMA KAZUYOSHI, SAITO HIROTAKA, TSUZUKI MUNENORI, YAMADA HIROTOSHI, YAMANAKA HIDEAKI, KONDOH, HARUFUSA, NOTANI, HIROMI, OSHIMA, KAZUYOSHI, SAITO, HIROTAKA, TSUZUKI, MUNENORI, YAMADA, HIROTOSHI, YAMANAKA, HIDEAKI, KONDOH, HARUFUSA, C/O MITSUBISHI DENKI K.K., NOTANI, HIROMI, C/O MITSUBISHI DENKI K.K., OSHIMA, KAZUYOSHI, C/O MITSUBISHI DENKI K.K., SAITO, HIROTAKA, C/O MITSUBISHI DENKI K.K., TSUZUKI, MUNENORI, C/O MITSUBISHI DENKI K.K., YAMADA, HIROTOSHI, C/O MITSUBISHI DENKI K.K., YAMANAKA, HIDEAKI, C/O MITSUBISHI DENKI K.K.
Applicants: MITSUBISHI ELECTRIC CORP, MITSUBISHI DENKI KABUSHIKI KAISHA
Application year: 1994
Main classification: H04L12
IPC codes: H04L12