FIFO STORAGE AND SHARED BUFFER SWITCHING DEVICE FOR CONNECTION NETWORKS IN ATM ARCHITECTURAL AND APPLICATIONS

Abstract: FIFO storage and shared buffer switching device for connection networks in ATM technology comprising a plurality of input sections (Interface_ini) on which ATM input cell flows (Cell_ini(p_in:1)) and associated service signals (Cell_en_ini, Cell_str_ini, Cell_rout_tagi, Ck_ini) transit, and a plurality of output sections (Interface_outj) on which respective ATM output cell flows (Out_sectj(p_out:1)) and respective associated service signals (Cell_en_outj, Cell_str_outj, Cell_avj, En_outj and Ck_outj) transit. The device comprises a memory array (Mem_array) set up by a series of memory sections assigned to memorize the ATM cells which arrive at said input sections and in which the enables for the transmission of the cells are arranged according to priority queues, each one corresponding to a different output. So inside the above-said memory array (Mem_array) several FIFOs are realized, one for each output with variable depths and containing queues of ATM cells.

Description: FIFO STORAGE AND SHARED BUFFER SWITCHING DEVICE FOR CONNECTION NETWORKS IN ATM ARCHITECTURAL AND APPLICATIONS Technical Field In a general way the present invention relates to communication systems using a digital technology called fast cell switching or ATM (Asynchronous Transfer Mode) for the transportation of voice, video and data signals. More in particular the invention relates to a FIFO storage and shared buffer switching device for cells of the ATM type. The ATM technology becomes more and more important in integrated switching of digital signal flows belonging to services for the transmission of voice, video and data signals with different bandwidth requirements and specialized traffic characteristics. The ATM technology foresees in particular that the data related to the various services are arranged in contiguous units with a fixed length of 53 Bytes (424 bits) called cells. Such cells contain further to the real data a header carrying among others the informations which are necessary for the routing of the cell through the geographic network. The connection systems having the task to switch especially the cells from one input gate to an output gate must be suitable to clear off big traffic volumes in the range of hundreds of Gbit/s. Inside the connection systems realized in ATM technology there are multiple points where it is necessary to provide for temporary storage functions for the cells which, arriving from several inputs, must be sent in a controlled and systematic way towards different outputs. For example inside a switching node it may happen that two or more cells arriving from different inputs have to join contemporaneously the same output gate. In this case the temporary cell storage function turns out to be necessary to maintain such cells in standby for the availability of the output gate. In this case it turns out to be necessary to manage for each one of the output gates a respective waiting queue inside of which the cells occupy a position in function of the arrival order. Moreover inside of a connection network PON (Passive Optical Network) realized in ATM technology there are termination nodes (ONU Optical Network Units) in which the flow of cells arrive carried by a high speed carrier to be sorted out among outputs of minor speed. In this case the temporary cell storage function turns out necessary to adapt the speed of the arriving cells to the capacity of the carriers on which the cell flows have to be distributed. Also in this case it turns out necessary to manage for each output interface a respective queue in which the cells occupy a systematic position. The solution of these problems based on the use of buffer memories contrasts with the necessity to reduce to the minimum the time of passing through the nodes of the network in order to minimize the delay by which the cells join the end user, as well as the variation of the delay itself. Such delay variation called CDV (Cell Delay Variation) constitutes a characterization parameter of the network. Another significant characteristic in the evaluation of a switching structure is the modularity. Excluding the case of the PON switching network in which the switching structure has only one input with high bit rate and multiple outputs with lower rate, the switching devices have a symmetric structure n x m with n inputs and m outputs with the same bit rate, where the values n and m turn out to be substantial, the frequency and the possibility of using the commutator n x m as a modular element to use for the realization of more complex switching structures. Background Art For the attempt of resolving the problem of temporary ATM cell storage various methods are known which consist in keeping back the cells in temporary memories before forwarding them in output on the space switching network. The used memories present generally FIFO type structures in order to avoid inversions of the cell order This implies however inconveniences in case a cell entered in the memory could not be switched due to an output conflict In fact this would block all cells arrived afterwards, even if these last ones were addressed towards available outputs. It is possible to obviate these inconveniences as described in "Considerations on the Structure of an ATM Switch in the Frame Work of hybrid BB ISDN Concept", by Karl Anton Lutz, published in the documents of IEEE COMSOC International Workshop, November 22-24, Osaka Japan, using an access algorithm to the not purely FIFO memory. But this requires a considerable increase of the complexity in the control unit According to another method described in the memo entitled "The Knockout Switch a simple modular architecture for high performance packet switching" by Y.S Yeh and others, published in section B10.2.1 of the documents of the 1987 ISS conference, March 15-20, 1987, Phoenix, Arizona, USA, the cells are switched towards the wanted output through a cross-point type network realized by buses. Such network operates at a speed higher than the nominal one and sufficient to allow in the worst case the reception by an output of a cell arriving from one whatsoever of the inputs The characteristic to have an operational speed which increases in proportion to the number of inputs and outputs may cause growing difficulties to the increasing of the complexity of the connection network. A third method, described in the memo entitled "Prelude: An Asynchronous Time-Division Switched Network" by J. Coudreuse and others, published at section 22.2.1 of the documents of the 1987 ICC Conference of June 8, 1987, Seattle, USA, foresees that all cells in arrival are entered in a single common memory and that from this one the cells will be collected, by means of an appropriate control algorithm, already switched to be forwarded to the appropriate output. The memory is therefore understood as an area which each output gate may reach in an absolutely free way Such memory is therefore shared completely by all output gates. But each input gate is just able to reach one area it has been assigned to. If this area is filled up the following cells in arrival on the corresponding input cannot occupy other free memory areas assigned to other inputs Therefore it is not possible to use completely the capacity of the common memory. It is possible to point out that, with the same performances in terms of probability of loss and with the same traffic conditions, the types of storage realized in the first two solutions require a quantity of memory globally higher than that necessary for the third solution, as the memory is in no way shared neither in input nor in output. In addition to this it is possible to take into consideration the structures proposed by the article "A Shared Buffer Memory Switch for an ATM Exchange", by Hiroshi Kuwahara and others, published in section 4.4.1 of the documents of the ICC898 Congress, June 11 -14, 1989, Boston USA, and by "Switching ATM in a Broadband ISDN", by A.J. Wilwey, published at page 115 of the documents of the Networks 89 congress, Birmingham, Great Britain, in which the storage of the cells allows the access to a same memory area by all input and output flows with a consequent saving regarding the total necessary memory quantity. The realization of the shared access to the memory area is moreover such to free completely the number of inputs and outputs of the element from the cell length. The access is managed by a control body using a second memory area where interlinked lists of pointers at the data memory are realized. However, these solutions require an operational speed in the second memory area which is at least the double of the one necessary in the data mewmory. The European patent Nr. 502873 in the name of the same applicant describes a basic element for a connection network in a fast ATM cell switching node using a memory of the shared type addressable through the content, in which a fraction of the routing tag is memorised together with a code indicating the arrival time sequence of the cells. Such basic element, even presenting numerous advantages and allowing a very efficient use of the memory, requires for its functioning control elements for the management of the addresses of the locations of the shared memory inside of which the cells will be memorised. These control elements complicate the circuitry of the element itself and make the cost and the difficulties for the realization of the element increase. W0 97/23968 PCI7EP96/05745 Furthermore this basic element is not able to implement in a direct way cell replication functions on different outputs. As described in the following patent application nr. MI93A001550 registered on July 14, 1993 on behalf of the same applicant regarding the carrying out of such functions additional circuits are necessary. Moreover this basic element is not able to implement in a direct way overflow signalling functions towards upstream transmission devices (backpressure signals). As described in the following patent application nr. MI92A001231 registered on May 21 , 1992 on behalf of the same applicant for the carrying out of such functions further additional circuits are necessary. All these additional circuits, however simple they may be, increase the realization difficulty of the element. Object of the Invention A first object of the present invention is to realize a FIFO storage device for ATM type cells allowing an efficient use of the shared memory to be realized in a simple and economic way. Another object of the present invention is that of implementing in a direct way overflow signalling functions towards upstream transmission devices emitting the so-called backpressure signals. A further object of the present invention is that of realizing a storage device which is also able to switch on the own outputs the cells received on the own inputs. A particular object of the invention is the realization of a device allowing an efficient management of the replication functions of the cells required by the multipoint type ATM connections. Summary of the Invention These and other objects are reached through a FIFO shared buffer storage device for connection networks in ATM technology comprising a plurality of input sections on which ATM input cell flows and associated service signals are travelling, and a plurality of output sections on which respective ATM output cell flows and respective associated service signals are travelling, characterized in that it comprises a memory block set up by a series of memory sections assigned to the storage of the ATM cells arriving at said input sections, and in which the enables for the transmission of the cells are arranged according to priority queues, each one corresponding to a different output section such to realize inside of the above-said memory block several FIFOs, one for each output section with variable depth and containing ATM cell queues. Brief Description of the Drawings The features of the present invention which are believed to be novel are set forth with particularity in the appended claims. The invention, together with further objects and advantages thereof, may be understood with reference to the following description, taken in conjunction with the accompanying drawings and in which: figure 1 shows the link connections of a device according to the present invention; figure 2 shows a general structural block scheme of the device according to the invention; - figure 3 shows in details the structure of one among the memory sections of the device according to the invention. Detailed Description of a Preferred Embodiment The interface structure of the device according to the present invention as a whole indicated by Cell_Fifo is illustrated by Fig. 1. The device Cell_Fifo of Fig. 1 comprises according to an illustrative but not limiting description four input interfaces and four output interfaces realizing a switching structure 4x4. In the description the i-th subscript characterizes the input sections and the j-th subscript those of the output. The four input sections of the device Cell_Fifo are indicated by ln_sectι , In_sect2, In_sect3 and In_sect4, respectively. The generic input section ln_sect j is set up by a bus Celljrv,(pjn:1) f by a bus Cell_rout_tagj(j:1 ) with dimensions equal to the number of the output interfaces and by the signals Cell_st_inj, Cell_en_inj and Ckjnj. On the bus Celljnj(p_iπ:1) the device receives the ATM cells set up by 53 bytes arranged by a parallelism pjn mainly linked to the need to reduce the operation frequency of the interface optimizing the number of the interconnections. On the bus Cell_rout_tagj(j:1) the device Cell_Fifo receives the routing tags related to the cell travelling on the input bus Celljnj(p_in:1). These routing tags are generated by elements which are not subject of claims, on the basis of the connection map and to the cell identifiers extracted from the header of the ATM cells which define the course of the cells inside the single switching elements. On the wire Cell_str_in j the device Cell_Fifo receives a start signal of the arriving cells on the bus Cell_inj(p_in:1). On the wire Cell_en_in j the device Cell_Fifo receives or transmits a enabling signal of the arriving cells on the bus Cell_inj(p_in:1). The direction of the signalling is linked to the codirectional or counter-directional characteristic of the interface. On the wire CKJn, the device Cell_Fifo receives or forwards a timing signal. Each input section of the device Cell_Fifo may advantageously include an output Bakw ull j for the emission of an overflow signal. This signalling called backpressure is addressed to the elements which transmit cells towards the device Cell_Fifo and represents a request of temporary suspension of the cell transmission towards the respective input section. The four output sections of the device Cell_Fifo are indicated by Out_sect-| , Out_sect2, Out_sect3 and Out_sect4, respectively. The generic output section Out_secti is set up by a bus Cell_outj (p_out:1 ), by the signals Cell_st_outj, Cell_en_outj and Cell_av;. The output section Out_sectj comprises also an input En_outι and an input CK_outj in the case of a counter-directional interface which becomes output in case of a codirectional interface. The number of input and output sections, which is equal to four in the embodiment of Fig. 1 , represents only a preferred embodiment which does not 8 exclude a different number of input and output sections. On the bus Cell_out,(p_out:1) the device Cell_Fifo transmits ATM cells with a degree of parallelism p_out which may be a priori any, and in general different from the parallelism degree pjn of the input cells. On the wire Cell_en_outj the device transmits an enabling signal of the cells transmitted on the bus Cell_out j (p_out:1). On the wire Cell_st_out the device transmits an enabling signal of the cells transmitted on the bus Cell_outj(p_out:1). On the wire Cell_av_outι the device Cell_Fιfo receives an availability signal to transmit cells on the bus Cell_outj(p_out:1 ). On the wire En_out; the device Cell_Fιfo receives from the downstream devices a permission signal for the transmission of cells on the bus Cell_out,(p_out:1), a signal which is not present in the case of a codirectional interface. On the wire CK__outj the device Cell_Fifo receives the timing signal from the downstream devices in the case of a counter-directional interface, or transmits the timing in the case of a condirectional interface. With reference to the enclosed Fig. 2 the structure of the device Celi_Fifo of Fig. 1 will now be illustrated with more details. To each input section an interface block Interfacejn, is associated which, using the control signals of the section, rearranges the input flow on the bus Cell_ιπ j (p_ιn:1 ). This flow is memorised on the support buffer Support_bufjn | To the cell present at the input the interface block Interfacejnj associates a support byte extending the cell to 54 bytes. In the additional byte the contents present on bus Cell_rout_tagj(j:1 ) constituting the self-routing addressing (routιπg_tags) of the cells themselves are inserted. In the described embodiment the insertion of the routing tags uses four of the eight added bits. The remaining four may be used for the insertion of a control on the integrity of the content of the cell in the transfer through the device up to the destination interface. For this aim a parity coding or a coding by mean ' s of a CRC may be used. The blocks Interfacejn, transfer the contents of their support buffer Support_buf_ιn | in a cell cycle in a parallel form to a block Mem_array on the respective bus Celljoad j enabled by corresponding signals Loadj. The block Mem_array comprises a number k of storage sections, Cell_merrik with k taking the values from 1 to k. All the storage sections Celljnemk are equal among them, with the exclusion of those with a lower index in number equal to the input interfaces Interfacejnj (in Fig. 2 these sections are labelled by Cell_mem-| , Cell__mem2, Cell_mem3, Cell_mem4). Each one of the storage sections Cell_merrt[< has a storage capacity equal to the dimensions of the extended cells created by the blocks Interfacejnj. The inputs of the storage sections Cell πemk (Cell_mem-j , Cel!_mem2, Cell_mem3, Cell_mem4) of lower range are connected through the buses Celljoad j to the corresponding interface blocks Interfacejnj. Through these connections the cells memorised in the interface blocks Interfacejnj may be simultaneously loaded in the block Mem_array. Each storage section Cell_merri|< is connected to the previous Celljnemk_ι and to the following one Celljτιemk+1 in such a way to realize a connection of the shift register type. All storage sections Celljnemk setting up the buffer are able, ifenabled, to unload the cells contained in these sections on the busses Bus_outj which convey on the output interfaces lnterface_outj the cells arranged in function of the input arrival order at the device Cell_Fifo. In the representation of Fig. 2 the busses Bus_outj (Busjouti , Bus_out2, Bus_out3, Bus_out4) are connected to the four output sections lnterface_outj. Each output section lnterface_outj comprises a storage register of the cells converging in output and a further register which operates as a support to the cell integrity control functions of the received cells as well as their correct routing and even as an adaptation with respect to the two timings of the block Mem_array and as an interface in case the last one is set up by a counter- directional connection. The output interfaces lnterface_outj of the device Cell_Fifo deprive the cells of the additional byte containing the routing indicators and the error identification codifications, and reorganize the flow of cells with a parallelism corresponding to the interface characteristics of the bus Cell_outj(p_out:1 ). 10 Referring to the alleged Fig. 3 we will now describe in a more detailed way the structure of the memory block MEM_Array and the connections between the memory sections Cell nemk which carry out the function of managing the arriving cell queues for each output section. Fig. 3 represents a generic section k of the block Mem_Array and its interconnections with the contiguous sections marked Cell_memk-i and Cell inemk+i , respectively. The description of the memory sections will be carried out with reference to the generic k-th memory section marked Celjmem^. The memory section Cell nerrik comprises a parallel register Cell_sdffk with the capacity of 53 bytes. The inputs of the register Cell_sdffk are connected through the bus Cell_datak. 1 to the outputs of the register Cell_sdffk_ι belonging to the previous memory section Cell riemk.-i . The outputs of the register Cell_sdff|< are connected through the bus Cell_datak to the inputs of the register Cell_sdffk + ι to the following memory section Cell_menri| <+ 1. The bus Cell_data ( < is also connected through enable gates to the busses conveying the cells to the output sections Bus_outj. The enabling circuits AND j k may be realized through simple logical gates AND provided with a number of inputs and outputs equal to the bit number of the bus Cell_data. The outputs of the enable gates ANDj^ for values of k from 1 to K are connected to set up the busses Bus_outj. Each one of the busses Cell_dataι , Cell_data2, Cel^data^ turns out to be connected to all four output busses: Bus_out- | , Bus_out2, Bus_out3, Bus_out4. The form of this connection is linked to the technological implementation. The elements memorising the routing tag bits are Flip-flops with the possibility of synchronous reset of the content (LO). These Flip-flops marked in Fig. 3 by FFjk are connected, with signals Rout agj^.-i , to the Fiip-flops of the previous stages, and with signals Rout agjk + ι to the Flip-flops of the next stages to setup shift registers equal in number to the output sections of the device Cell Fifo. 11 The shift registers set up by the storage elements FF represent the managing structure of the chains towards the output interfaces. The Flip-flops FFj^ contain as a whole the state of the queue related to the output interface lnterface_outj In the memory biock Mem_array the cells arriving from the input interfaces are inserted in the sections Cell_memι of a lower order. As it will become clearer hereafter, the cells are forwarded together with their routing Jags through all sections of the unit Mem_array. The Flip Jl ops FFj | < with the subscripts k of higher order presenting an active (set) memorised routingjag identify for each chain the cells having had the longest latency in the buffer. These cells are the first to be extracted and routed in output on the respective output interfaces lnterface_outj. The signals Bak_out_chainik arriving from the following Cell_memk + -| are active (1 in Booleancode) if there is no cell in the sections of the higher order addressed to the corresponding j-th queue. In this case, if the content of the flip-flop FFjk is active, the logic AND of the two signals Bak_out_chainjk and Routjagjk on the gate ENANDjk generates the enable on gate connecting the bus Cell_datak to the bus Bus_outj which conveys the cells to the output sections. The same signal BakjDut ^ chainjk of the following section put in the logic AND on gate BEANDjk with the inverted content of the Flip-flop FFjk constitutes the enable Bak_out_chainj|<.ι assigned to the previous section. While the section Celljnemk is routing the cell contained in it the signal Bak_out_chainjk_ι . turns out not to be active (o in Booleancode) In this way it prevents the lower order sections at their time with contents of the FFjy, where y<k, from routing the cells contained in them to the bus Bus_outj. In case the signal Bak out Dhainjk is not active this would indicate that in the higher order sections there is a cell with a longer latency addressed to the corresponding queue. In this case the contents of the section Celljnerrik and of the lower order sections will not be routed and remain in the buffer waiting for the exhaustion of the corresponding queue. If an enable signal Bak_out_chain jk arrived from the following section Cell_mem k+1 and the content of FF jk were void, the gate ENAND jk would not enable the routing of the content of the section Cell_mem k , because it is addressed to another output interface or because it is void (no active routingjag). The gate BEAND jk woufd extend in this case the enabl i ng sending a signal Bak.out.chalnj^ and so on for all previous sections until the section of higher order with Flip-flop containing a routingjag. The routing tag signals Routjag jk _ι of the corresponding section Cell_mem k are used after the routing to reset the content of the Flip-flops FF jk acting on the reset input LO of the Flip-flops themselves. Setting to zero the con + te„„n + t « o*f t t h h e e j i- t t h n F ι-lιiι D p-f τlιoυ D μ F π Fi . kκ the cell contained in the section Cell_mem k will be withdrawn from the j-th queue. A logic OR~(SHOR k ) reveals the presence of zero contents in the Flip-flops FF ik and prepares the cell register Cel._sdff k for the loadin ntent of the previous register CeH.sdffk.i connected through the bus . Therefore, if all Flip-flops FF jk of the section Cell_mem k present not active routing tags, or if the cell contained in it has already been routed on all the interface to which it was addressed, the cell contained in the sect i on Cell_mem k will be withdrawn from the buffer. This " enable to the shifting function of the registers will be extended to all sections with a lower index compared to that in which the routingjags have been cancelled out realizing in this way a regrouping of the buffer and a transfer of the contents towards the sections with a higher i ndex. The signal Bak shift k is the signal supplied by the section Cell_mem k to the previous section Cell mem^ putting the last one in shifting mode. Analogously the signal Bak_shift k+1 is the signal transmitted by the following section Cell mem k+1 putting the same section Cell_mem k in shift i ng. Considering " the generic .emory section k and the j-th queue, the logic controlling the routing is set up by the Flip-flops FF jk and by the gates ENAND jk , BEAND jk and AND jk , while the regrouping logic of the memory ,s only set up by the gate SHOR . The shift number turning out to be enabled simultaneously in a cycle is equal to the number of memory locations cancelled during the previous cycle. As inside of a memory cycle a maximum number of memory locations equal to the number of output sections may be cancelled, the maximum number of shifts which may occur during a cycle is equal to the number of output sections. It will be possible to appreciate that this corresponds in a normal memory management scheme to relocate in a unique cycle the locations having become available. If this did not happen, the missed regrouping of the memory inside of an access cycle would make grow the occupied part of the block Mem_Array up to degenerate with the filling up of the whole memory. The sections Cell_mem k with lower index, characterized by null routingjag bits are in the enabled shift condition, therefore the ATM cells inserted in the block Mem_Array will be rapidly forwarded towards sections with higher index, even being always available for the routing starting from their entry in the block Mem_Array. The description which has been made regarding the memory section Cell_mem is valid under the condition of varying the index k for all sections of the memory block Mem_Array with the exception of the last section and the first sections with k= 1 ,2 ...i. The last section with k=k is, regarding the structure, equal to the previous ones. The input connection Bak_shift is permanently disabled while the qualification inputs Bak_out_chainj of the last section are on the contrary permaneπtlyenabled. The bus Cell_data k is only connected to the gates ANDj as well as the routing indications corresponding to the section memorised in the Flip-flops FF j are only connected to the gates ENAND^ and BEANDj k . The first i sections Cell_mem k present, as shown in Fig 2, two input connection busses, one is the bus Cell_data connecting the different sections in a shift register structure, the other one is a bus connecting the section k=i with the buffer Support uf j of the input section Interfacejnj. These busses Celljoadj make it possible to load in a single cell period in the buffer Mem_Array cells, which may present themselves simultaneously on the i 14 input interfaces of the device Cell_Fifo. The timing of all registers Cell_sdff and of all flip-flops FFj k of all sections Cell_mem is given by the same clock signal (not shown in the figure), as also the qualifications are common, which time the shifting operations of the registers and the cancelling of the routingjags according to the relation existing between the main clock signal and the cell period, or of the degree of parallelism marked by pjn on the input interfaces. The device Cell_Fifo operates as follows. The device Cell_Fifo acquires on its input sections Interfacejnj cells of 53 bytes supplied by the respective vectors containing i routingjag bits. These routingjags will be memorised together with the cell to set up the extended cell passing through the device. A cell cycle, once the extended cell is received by the input section Interfacejn j and memorised here, will be transferred through the bus Celljoad j to the corresponding section Cell_mem k (k=i) among those with lower index of the block Mem_array accompanied by an enable Loadj. Always within a cell period further to the loading of the new cell arrived from the input section transfer operations of the contents from one storage section to the following one will be enabled in number equal to the major one among the number of the input and output interface sections. Memorised in the biock Mem_array the cell will be inserted inside the waiting queues of the memorised cells towards the output interfaces, the set routing bits identify, if the cell is a multicasting cell, the queues in which the cell itself will be inserted. At the run out of the chains due to the effect of cancellation of the cells supplied to the output and of the regrouping realized through the shifting of the contents inside the block Mem__array, the cell runs through all sections Cell_mem k until it reaches the end of the queue to be carried to the output section. The enables for the transmission of the cells are organized in a plurality of priority chains (of the daisy-chain type), each one corresponding to a different output. For each output the only enable to be actuated is the one corresponding to the memory section of major index, i.e. corresponding to the cell having accumulated the major latency in the block Mem_Array. In this way inside of one and the same shared memory several Fifos are realized, one for each output with variable depth and containing ATM cells. The contents which will be addressed in sequence on one and the same output section are related to memory sections which, even not being necessarily contiguous in the physical sense, are on the contrary contiguous in the subset set up by the cells to be addressed towards to that same output section. Thanks to a similar structure also the replication of one and the same cell on several outputs happens in a very simple way. In case of multipoint connections the ATM cell, at the moment of the memorization, will be associated to a routingjag with the activated bits relative to the different channels to which it is addressed. Such cell, even if it will be memorised in only one memory section, turns out inserted in a number of queues equal to the output sections towards which it is addressed, and its latency inside the block Mem_Array is determined by the running out of the queues themselves. As a further advantage turns out the fact, that a cell directed towards several outputs can reach simultaneously all outputs without no variation in the access times to the memory section. In a preferred but not shown embodiment the device Cell_Fifo comprises means for the analysis of the instant state of filling of the block Mem_Array starting from the analysis on the state of the routingjag flip-flops of the block Mem_Array. Such means can easily supply indications about the global occupation state of the block Mem_Array, or they can also supply the state of occupation of the individual queues. Such means can be used in an advantageous way to supply in case of overcoming an occupation threshold to supply a backpressure signal towards the devices which transmit towards the device Cell Fifo. The device Cell_Fifo may preferably be provided with an additional not shown logic which calculates a code CRC on the 53 bytes of the ATM cell and on the routingjag bits. Such CRC code may advantageously be inserted into the remaining bits setting up the content of the extended memorised cell The recalculating of such code CRC carried out on the extracted cells in each output section controls, further to the correctness of the cell content, the correct functioning of all memory sections passed through by the cell before its routing In this way an always active Built-in self test controlling all memory sections during the functioning. The advantages of the invention are evident The control circuits of the memory sections do not comprise pointer registers or machine set up according to the philosophy of states, but they are set up by elementary logic gates. This implies a significantly reduced price of realization compared to all solutions described in the mentioned known technology. Moreover there is no critica ty in the time of access to the registers, as, in whatsoever condition, the timings are connected to the cell period related to the interface with higher speed Inside of such period the block Mem_Array carries out elementary operations (shifts) by number equal to the maximum between the number of inputs and outputs The structure of the device according to the present invention is suitable to realize devices Cell_Fιfo provided with the most different numbers of inputs and outputs. To realize for example a device with 16 inputs and the same number of outputs it would have been sufficient to use 16 blocks Interfacejn/out, each one with 16 flipjlops for the routing control logic and to increase from 54 (53+1) to at least 55 bytes (53^2, 2bytes=16bιts) the dimensions of the extended cells memorised in the support buffer and of each section of the memory Mem_Array. A further significant advantage of the device according to the invention consists in the fact that the depth of the buffer is not linked to powers of 2, but it may be whatsoever This often may make significant savings possible in the use of the memory. On the contrary all devices described in the mentioned known technology have this problem. In the case of multipoint connections the device Cell_Fifo does not foresee the re-copying of the cells: the same content is simply routed towards the output interfaces in different times or simultaneously after the running out of the individual chains. The only variation compared to a point-to-point connection consists in the possible longer latency of the cell inside the device. If there were not the implementation of a Built-in-self-test logic, the structure of the shift register type of the buffer Mem_Array would be suitable for the application of testing methods with scan-insertion. The Analysis of the occupation state of the buffers as well as the emission of backpressure signallings (even separate for each single routing) can be managed by a contained increase of the logic. While a particular embodiment of the present invention has been shown and described, it should be understood that the present invention is not limited thereto since other embodiments may be made by those skilled in the art without departing from the true spirit and scope thereof. It is thus contemplated that the present invention encompasses any and all such embodiments covered by the following claims.

Claims: CLAIMS 1. FIFO storage device with shared buffer for connection networks in ATM architectural and applications comprising a plurality of input sections (Interfacejnj) on which input ATM cell flows (Celljnj(pjn:1) and associated service signals (Cell_enjnj, Cell_strjnj, CelljOut agj, Ckjnj) are travelling, and a plurality of output sections (lnterface_outj) on which pass respective output ATM cell flows (Out_sectj(p_out:1 ) and respective associated service signals (Cell_en_outj, Cell_str_outj, Cell_avj, En_outj and Ck_outj) are travelling, characterized in that it includes a memo block (Mem_array) set up by a series of memory sections assigned to memorize the ATM cells arriving from said input sections (Interfacejn) and in which the enables for the transmission of the cells are organized according to priority chains, each one corresponding to a different output section (lnterface_out) in such a way to realize inside of the above-mentioned memory block (Mem_array) several FIFOs, one for each output section, with variable depth and containing ATM cell chains. 2. Device according to claim 1 , characterized in that said memory block (Mem_array) is set up by a series of memory sections, each one of those includes a cell storage (Cell_sdff k ) suitable to memorize an ATM cell, and a routing storage unit (FFι k ) suitable to memorize the indication of the output sections towards which the ATM cells are directed, the outputs (Cell_data k ) of each one of said cell memory sections (Cell_mem k ) being connected to the inputs of the following memory section (Cell_mem k+ -| ), as well as (Cell_data k ) connected to all output sections (lnterface_outj) through logic circuits (ANDj k , ENANDi ) which allow the transmission of said cell towards an output section only in presence of an indication inside said routing memorization unit (FFj k ) and of enable signals (Bak_out_chainj k ) indicating the absence of ATM cells directed towards the same output section either inside the following memory section (Cell_mem k+ ι) or inside all subsequent memory sections. 3. Device according to claim 2, characterized in that each one of said input sections (Interfacejnj) is directly connected (Celljoadj, Loadj) to a corresponding memory section (Ceiljnemj) among the first memory sections of said memory block (Mem_arτay). 4. Device according to claim 2, characterized in that each one of said memory sections (Cell_mem ) comprises means (ENANDj k ) to update the content of said routing memorization unit (FFj k ) at each transmission of the memorised cell inside said cell memorization unit (Cell_sdff k ) towards an output section. 5. Device according to claim 2, characterized in that each one of said memory sections (Cell_mem ) comprises logic circuits (SHOR ) connected to said routing memorization unit (FFj ) and connected through a shift signal (Bak_shift k+ ι ) to the following memory section (Cell_sdff + ι ), and that said logic circuits (SHOR k ) cause the transfer (Cell_data k .ι , Rout Jagj _ι ) of the contents of the previous memory section (Cell_mem k _ι ) inside said memory section (Cell_mem ) when said routing memorization unit (FFj k ) indicates that the ATM cell memorised in said memory section (Cell_mem k ) has already been transmitted towards all the output sections towards which it was directed, or when said shift signal (Bak_shift + ι ) indicated that the following memory section (Cell_mem k+ ι ) has re-copied inside of itself the content of the memory section (Cell_mem k+ ι ) in question. 6. Device according to claim 2, characterized in that each one of said memory sections (Cell_mem k ) comprises also means (BEAND k ) to extend the enable for the routing (Bak_out_chain k _ι ) towards the previous memory sections up to the section of higher order the routing memorization unit of which (FF ) contains a routing tag. 7. Device according to claim 2, characterized in that each one of said input sections (Interfacejnj) comprises means to associate additional support bytes to each cell of said input ATM cell flow, said additional support bytes comprising routingjags corresponding to the output sections (lnterface_outi) towards which each ATM cell must be transmitted. 8. Device according to ciaim 7, characterized in that each one of said output sections (lnterface_outι) comprises means to remove said additional support bytes inserted by said input sections (Interfacejnj) 9. Device according to claim 2, characterized in that said cell storage unit of said memory section (Cell_mem k ) is set up by a parallel register (Cell_sdff k ) with the capacity of 53 bytes. 10. Device according to claim 2, characterized in that said routing memorization unit of said memory section (Cell_mem k ) is set up by a number of Flip-flops (FFjk) e Q ua| t0 tne number of output sections (lnterface_outj), each one of said Flip-flops (FFj k ) being provided with an input (LO) for the synchronous reset of the content. 11. Device according to the previous claims, characterized in that it comprises also means for the analysis of the instant filling state of the above- mentioned memory block (Mem_array). 12. Device according to claim 11 , characterized in that said means for the analysis of the instant filling state of the above-mentioned memory block are also suitable to provide a backpressure signal when the above-said filling state exceeds a predetermined threshold. 13. Switching device with shared buffer realized in conformity with what illustrated in claims 1 to 12.

Inventors: BALZAROTTI DARIO, CELANT ANGELO, BALZAROTTI, DARIO, CELANT, ANGELO
Applicants: BALZAROTTI DARIO, CELANT ANGELO, ITALTEL SPA, BALZAROTTI, DARIO, CELANT, ANGELO, ITALTEL S.P.A.
Application year: 1996
Main classification: H04J
IPC codes: H04L12, H04Q11