High bit rate cell switching element in CMOS technology

Abstract: The switching element allows building up of ATM exchanges capable of processing cell flows at bit rates higher than 700 Mbit/s. It uses an architecture with output queues, implemented through a unique shared memory, suitably controlled in order to obtain spatial cell switching towards the outputs. ATM cells are converted into a highly parallel format by a structure named rotation memory, where through the cells are then transferred into the master memory. The rotation memory is used also for the inverse operations of format restoration towards the output. The element control circuit is entrusted with the generation of writing and reading addresses of the master memory, in order to carry out the switching proper.

Description: The present invention concerns telecommunications systems using digital signals for transmitting speech, video and data signals and more particularly a high bit rate cell switching element in CMOS technology. Fast cell switching technique, the so called ATM, after the English acronym "Asynchronous Transfer Mode", is playing a more and more important part in the integrated switching of digital flows belonging to services for the transmission of speech, video and data signals with different bandwidth requirements and traffic characteristics. ATM technique is to date universally considered the solution for implementing broadband ISDN, the so-called B-ISDN. It is an efficient fast-packet switching technique dealing with predetermined length entities, referred to as cells, and combining the advantages offered by conventional circuit and packet switching techniques. Hence such a technique allows, thanks to the flexibility inherent in packet switching, processing of any type of information through an only switching technique within an integrated network structure per se independent of bit rate, and hence capable of dealing with variable bit-rate connections. The resources offered by the switching system are not strictly dedicated to a single call for its whole duration, as in circuit switching systems, but are used only at the instant at which there is the necessity of transmitting information. As known, this technique requires that information relevant to the various services be organised in adjacent units, with a fixed length of about 400 bits, named cells. They are composed of an information field and of a header field, the so called label, which carries the information necessary to routing through the connection network and other service information. The cells are received by line interfaces at the input of a switching node, basically consisting of a control part and of a structure which actuates the switching proper. The control part carries out all the high level functions relevant to call processing, to connection network configuration and accessory service control. Among these functions, one of the most important is the choice of the path through the network. This path is determined at the call establishment and is common to all the cells pertaining to the same call. The choice is determined in the different cases by the routing constraints through the geographic map and by the occupancy conditions of the connection network of the node. The structure which carries out the cell switching operates the conversion of the label, which has only local validity in each trunk between two adjacent nodes, and the routing of the cells pertaining to the same call towards the convenient output through the connection network. The connection network, which has the task of spatially switching the cells from an input gate to an output gate, must be capable of carrying high-traffic volumes, of the order of some hundred Gbit/s, with low cell loss probability and low call blocking probability. Besides, the connection network must present a minimum transit time and easily adapt to possible modular growth. It follows that while defining the requirements of an ATM switch, one of the parameters which are to be taken into account is its capacity in terms of bandwidth. The future ATM network in fact is required to carry very wide band services such as videoconferencing, high bit-rate data transfer, data and image transmission for CAD/CAM applications or multimedia services, and possibly broadcast type services (HDTV). However, the increasing band request is neither limited, nor stringently dependent on the introduction of new applications and services, for which diffusion time and level are not easy to forecast, but it is due to the higher and higher diffusion of local networks (LAN) and to their evolution towards high bit rate integrated LAN's which, based on the availability of a physical medium such as the optical fibre, are capable of generating high bandwidths that the public network will then switch. ATM exchange is then requested to control flows carrying a bandwidth varying from 0 to a maximum which is presently of the order of at least 700 MHz (as from a lot of experimental results referred to in the literature). Such a contest is then emphasised by estimations which agree in establishing that, in order to allow a better statistical multiplexing and to ensure the best performances for burst traffic and the minimum connection blocking probability, the switching structure is to dispose of a bandwidth per flow equal to some times that required by the individual service. Hence, in this light the implementation of a switching structure capable of switch inputs at a rate of 700 Mbit/s results significant. A technology which results more and more interesting for analogous studies and experimental investigations mentioned in the literature is CMOS technology. Such a technology has been already widely tested and is commercially available at reasonable costs. The definition of an architecture of an exchange prototype capable of switching ATM flows with a bit rate of the order of 700 Mbit/s could envisage the use of extremely advanced and expensive technologies such as GaAs technologies, some bipolar technologies or, last but not least, optical technologies. Such technologies, however, do not possess an integration capability sufficient to realise complex components, such as those now investigated. In fact ATM switching technique requests implementation of high-capacity cell buffers, to which none of the cited technologies, even though with different nuances, results adapted. Besides for a number of the technologies considered the considerable power dissipation is a serious constraint. Finally, it is extremely likely that, following up to continuous technologic enhancement, these technologies cannot compete with CMOS technologies as to these aspects. It is also to be notes that the access to sophisticated technologies, as the mentioned ones, when sufficiently mature to allow significant implementations, is certainly difficult. Among the known ATM switching elements, there is the one described in the paper entitled "32 x 32 shared buffer type ATM switch VLSls for B-ISDN" by Takahiko Kozaki et al, issued in the proceedings of ICC 91 Conference, Denver (USA), 23-26 June 1991. The described switching module can handle 32 input flows at a bit rate of 150 Mbit/s, supplying as many flows to the output, and it is implemented in CMOS technology. The module architecture is that of a high capacity (4096 cells) shared buffer element, controlled in accordance with a linked list algorithm. By a suitable address control queues are formed within the unique shared memory. The main buffer memory consists of 8 integrated circuits, organised into a bit-slice scheme, according to which each circuit handles a bit of one of the 8-bit input words relevant to the 32 input flows. The control is carried out by two integrated circuits implementing the linked list algorithm and by two FIFO registers which store the addresses available in the main buffer. This switching module, even though it presents low power dissipation, since it is implemented in CMOS technology, results rather cumbersome, since it needs the use of a plurality of integrated circuits to be mounted on a printed circuit board. A solution for converting a 150 Mbit/s 32 x 32 module into a 660 Mbit/s 8 x 8 module is presented in the same paper. Control circuits are modified and some input/output multiplexers and demultiplexers are added, so as to share 600 Mbit/s input flow among four inputs. Another shared buffer memory switch for an ATM exchange, implemented in CMOS technology, is described in the paper "A shared buffer memory switch for an ATM exchange" by Kuwahara H. et al., published in the proceedings of the IEEE international conference on communications, Boston ICC 89, World prosperity through communications, vol. 1, 11 June 1989, Boston, MA, USA, pages 118-122. A further solution is described in the paper entitled "A 400 Mbit/s 8x8 BiCMOS ATM Switch LSI with 128 On-Chip Shared Memory" by Shigeru Tanaka et al., published in the proceedings of ISSCC 91 conference, San Francisco (USA), 15 February 1991. Also in the case the module dealt with is a switch module with shared buffer memory and control carried out according to the linked list algorithm. It allows building up by a unique integrated circuit a 400 Mbit/s 8x8 switching module in a rather expensive BiCMOS technology, a hybrid bipolar and CMOS technology. The parallelism of the 8 input flows is 4 bits and the buffer has a 256 cell capacity. Circuit dissipation is about 6 W at the typical 100 MHz frequency and the input/output gates demand ECL level signals. Another solution has been presented in WO 91/08633 in the name of Italtel, Società Italiana Telecomunicazioni, the preamble of claim 1 is based upon. The switching element described herein operates at 150 Mbit/s and has a structure with shared memory buffer, wherein output queues are controlled by a circuit using CAM (Content Addressable Memory) memories. This type of control structure however poses more serious implementing problems from the technologic point of view, in case of high frequency operation. The foregoing and other problems are overcome and the described technical problems are solved by the high bit rate cell switching element, provided by the present invention, which is integrated into a unique component fabricated in CMOS technology, is cost-efficient, presents low power dissipation and operates at bit rates higher than 700 Mbit/s. It is the main object of the present invention a high bit rate cell switching element in CMOS technology, as described in the characterising portion of claim 1. One of its outstanding characteristics is that it uses a microprogram to generate read and write addresses. Said characteristics and others of the present invention will be made clearer by the following description of a preferred embodiment thereof given by way of non limiting example, and by the annexed drawings in which: Fig. 1 is the representation of ATM cell format; Fig. 2 is a block diagram of a switching module wherein the element provided by the invention can be used; Fig. 3 is block diagram of the switching element provided by the invention; Fig. 4 is a block diagram of a block denoted by OP in Fig. 3; Fig. 5 is a block diagram of a block denoted by CP in Fig. 3. An ATM cell in the format inside the connection network, represented in Fig. 1, has a total length of 64 bytes. The first four bytes, denoted by SO, form a synchronism word which allows a simpler and more direct achievement of the synchronization between serial-to-parallel and parallel-to-serial input/output converters and connection network. In fact, it is sufficient that inside the switching module they replace the synchronism word used by the transmission means and eliminate it at the output, to keep the two portions of the system synchronous with the same clock frequency. The internal format header contains then the five routing labels RO1, RO2,.., RO5 designed for elements belonging to as many stages of the connection network; they consist of 3 bit each and allow the use of the format defined up to switching elements of 8x8 size. The routing labels are protected by a parity bit P. Field HK can contain additional information relevant to the type of cell it is referred to; it typically carries unassigned (empty) cell information and is protected by a parity bit P. SP denotes spare fields. Field SN and bit PR represent respectively the cell sequence number and relative priority; they too are protected by a parity bit P. The 53 information bytes, forming ATM cell in the external format, i.e. in the cell format before entering the switching node such as defined by CCITT, come next. A data packet having a different meaning in function of the desired application could also be carried. The last cell byte, named FCS, allows detection of possible errors in the non-varying part of the cell itself by the use of a cyclic redundancy code. Fig. 2 shows the functional block diagram of a possible switching structure wherein the cell switching element can be inserted. ATM flow transiting on connection 100 arrives at a termination module ET, which carries out the following main functions: it receives ATM frame to be switched, organised in accordance with the format defined by the synchronous transmissive standard (SDH = Synchronous Digital Hierarchy) at about 622 Mbit/s and carries out the function of transmissive termination designed to extract the useful information transported (Payload); it processes the above-mentioned useful information at a bit rate of about 600 Mbit/s, adding in the first ten bytes of the cell the information necessary to the routing inside the connection network, consisting of a plurality of modules of the type denoted by MCM; in the absence of actual useful traffic at the input (absence of payload) it inserts cells which do no carry actual information, i. e. empty cells in internal format, in order to keep the system synchronous; it carries out the dual functions of conversion from the internal cell format into CCITT format and of transmission on connection 100. The ATM cells, in internal format, are then sent via parallel connection 200 towards block TXPS which carries out the parallel-to-serial conversion and the serial transmission on channel 300 (coaxial cable or fibre) which interconnects the termination part to the module MCM of the connection network. Each module MCM of the connection network is subdivided into an interfacing part RTI with serial high rate communication functions and into a matrix MGB of switching elements GB1, GB2, ..., GBn. The interfacing module RTI consists, for the input part, of: a block SPRX, which receives the flow on serial connection 300 and converts it into parallel format, e. g. 32 bits, extracting and generating the cell synchronism information; a block SYR, which, using the above-mentioned synchronism information, carries out the cell alignment to the cell time base and generates on connection 801 a signal detecting the beginning of each cell. Block SYR carries out also the format conversion from 32 to 8 bits, at the bit rate of about 90 Mbit/s, to render it compatible with input gates 800 of the switching elements GB1, ..., GBn. For the output part, the interfacing module RTI consists of: a block SYT, which converts 8-bit parallel format, received on connection 400, into 32-bit format, receiving on connection 500 the cell synchronism information; a block PSTX, which carries out the function of conversion into serial format of the flow received from block SYT and of transmission on serial channel 700. Block RXSP, placed outside module MCM, carries out the functions inverse to those carried out by the already-described module TXPS. RXSP receives the serial flow on channel 700 and converts it into parallel form on connection 600 for output block ET. Switching module MCM contains the switching matrix MGB, consisting of a certain number (8, 16 or 32) of the switching elements GB1, GB2, ..., GBn, provided by the invention, equipped with four 8-bit inputs and with an equal number of 8-bit outputs. Said elements are mutually interconnected through input and output connections so as to realise a part of a multistage connection network, in which they are grouped into columns, named stages. Besides the four data inputs 800, 803, each element is equipped with an input for the cell synchronism signal 801, 802. The elements pertaining to the first stage receive their input flows from a correspondent number of blocks RTI, more particularly from their intemal blocks SYR. The other stages of switching elements receive ATM flows and cell synchronism information from similar elements belonging to preceding stages. Each element generates in tum four outgoing flows on 8 wires and synchronism information either for equal elements belonging to subsequent stages or, in case of elements pertaining to the last stage of matrix MGB, for an equal number of output blocks RTI, more particularly for blocks SYT. Each switching element also receives a clock signal at about 90 MHz. The basic functions which are carried out by a shared memory switching element GB1, GB2,..., GBn, provided by the invention, consist of: a parallelism conversion of each flow at the element input from an 8-bit format to a 128-bit access format to the shared memory; the opposite conversion to the previous one from 128 to 8 bits of the datum outgoing from the shared memory towards the element output connections; a temporary storage function of the data simultaneously reaching the switching element, so as to allow an efficient transfer of the information into the shared memory, and therefrom towards the outputs; the storage of the cells into the shared memory, i. e. a read/write memory with 128-bit input/output parallelism and a capacity which meets the requirements in terms of probability of cell lost due to the saturation of the space available in the temporary memory; the function of elimination and insertion of the cells which are not assigned to any connections, the so called "empty cells"; a function of handling the routing label; a control function of the sequence of the accesses to the shared memory, so as to realise the cell switching proper; a management of the internal synchronisms and the generation of the time base of the element starting from the system synchronism signal. The first four functions are realised by means of an only structure, that we name rotation memory. Such a structure can be conceptually assimilated to a double matrix of dynamic registers with shifting in both directions. The memory cell length is of 64 bytes, what allows the generation of time base signals inside the switching structure through a simple division of a fundamental clock signal. The operational block diagram of the switching element GB1, GB2, ..., GBn, is represented in Fig. 3. The element receives: ATM cells through 4 groups of 8 bits each, denoted by 2, 3, 4, 5, at the bit rate of about 90 Mbit/s; a 90 MHz clock signal, with duty cycle of 50 %, on wire 6; a synchronism signal, which can arrive on wire 1 either from the module interface RTI (Fig. 2), or from a previous switching element. The input groups are forwarded by buffers IB2, IB3, IB4, IB5 to a block DL, where they are stored temporarily to the aim of synchronization in a suitable register. This is clocked by the internal time base signal, supplied on connection 7 by a buffer IB6 receiving the signal on wire 6, and by the synchronism signal, supplied on connection 8 by another buffer IB1 receiving the signal on wire 1. The aim of these buffers is simply that of ensuring an adequate input driving. ATM groups outgoing from DL are successively sent through connections 9, 10, 11, 12 to a block OP, forming the operative part of the element. This block contains the above-mentioned rotation memory, which further parallels the input cells through a conversion from 8 to 128 bits and stores them into a shared memory, whose aim is that of resolving the access conflicts at the same output by different cells. At the output it carries out the inverse operations so as to obtain again 8-bit words on connections 13, 14, 15, and 16. The 512-bit cell, subdivided into four 128-bit fourths, is stored in the shared memory in four contiguous locations. Besides the rotation memory and the shared memory, the operative part OP also comprises an address storing structure. The generation of the shared-memory addresses for writing as well as for reading operations is controlled by a block CP. This is the control part which supplies the writing addresses, wherein to store the cells coming from input connections 9, 10, 11, 12 after the format conversion, which analyses the routing labels of such cells and which controls the switching proper, defining which cells are to be sent to the outside. Since the storing operations are executed by fourths of cell, the significant address wires, grouped in connection 17, are 7, since the two least significant address wires indicate only what cell fourth is dealt with and are directly controlled in the operative part OP by the address storing structure. Control part CP uses the "linked lists" principle, as described by way of example in the paper entitled "A shared buffer memory switch for an ATM exchange" by Hiroshi Kuwahara et al, issued in the Proceedings of ICC89, 11-14 June 1989, Boston, pages 118-122, to efficiently address the shared memory, so as to realise the outputs queues by avoiding the use of five 7-bit 80-word FIFO memories. It is realised by means of a microprogrammed ROM which controls a part of data processing of 7 bits (the addresses for block OP). A small RAM memory contains the address pointers. Besides the addresses, it sends to the operative part OP on connection 18 the decoding signals for writing and reading into the address storage structure. The control part CP exchanges information with block DL on connections 33 and 34; more particularly, it receives on connection 34 the "empty cell" information and the routing label and sends onto connection 33 control signals for scanning the input connections and for synchronization. The circuit operates synchronously on the basis of timing signals which are locally generated by a block TB. This block basically consists of a counter which generates all the signals useful to the circuit, starting from the time base signal with a period equal to bit time, equal to 11 ns, present on wire 7. The signals generated are suitable multiples of the elementary period, corresponding to the input bit cycle: more particularly, the multiples 2, 4, 8, 16, 32, 64, the latter coincident with cell time, and 128. All these signals are sent to block OP by means of connection 19. An intemal synchronism signal generated by block DL on wire 20 starts the counter of block TB. Block TB generates also the starting signal for the microprogram and 45 MHz timing, which clocks the circuits contained in the control part CP, by transferring them on wires 21 and 22 respectively. The cells, once read in block OP, are caused to shift towards the output with the same input parallelism, i. e. four 8-bit flows, and are sent through connections 13, 14, 15, 16 to a register OL for synchronization aims. This register renders then available the flows switched onto output connections 24, 25, 26, 27 and generates on wire 23 an output synchronism signal. These connections reach as many buffers OB2, OB3, OB4, OB5, OB1, whose aim is simply that of ensuring a suitable output driving and which supply ATM flows and synchronism signal on connections 29, 30, 31, 32 and 28, respectively. Block OP is represented in more details in Fig. 4. In it there are the three fundamental blocks, duly interfaced: the rotation memory, consisting of two equal planes MRA and MRB; the address storage structure ST; the shared memory MC. As mentioned, rotation memory MRA, MRB allows the adjustment on input and output format of the data arriving from the input connections 9, 10, 11, 12 to load them into the shared memory MC through connection 41 and subsequently to read them therefrom through connections 45 and routing them towards the output. The two planes MRA and MRB operate alternately so as to carry out a shift of the data incoming on connections 9, 10, 11, 12 and outgoing on connections 13, 14, 15, 16 and a rotation for loading and unloading the cell subdivided into four 128-bit fractions, towards MC. Whilst the data stored in a plane, e. g. MRA, shift in horizontal direction on the same line from inputs 9, 10, 11, 12, towards outputs 51, 53, 55, 57, the data of the other plane MRB are transferred from and towards the memory MC, with a trend similar to an operation of rotation. This operation occurs by transferring the contents of each location of plane MRB into the adjacent location belonging to the same column, the contents of the location close to the output being sent on connections 59 or 60 towards memory MC. Analogously, the location close to the rotation input receives on connections 73 and 74 the data for the element output. The operations in planes MRA and MRB alternate at each cycle, equal to a fourth of the cell time, that is why 2 multiplexers are needed. A multiplexer, denoted by MU1, transfers to the output either the flows on connections 50, 52, 54, 56 coming from MRB or the flows on connections 51, 53, 55, 57 coming from MRA, in function of the clock signal present on wire 58. The other multiplexer MU2 transfers the fourths of cell present on connections 59 or 60, coming from MRA or MRB, towards the shared memory MC through connections 61 and 41 and a register MD. The latter register transfers the data upon control of a clock signal with a period of 22 ns, on wire 63, at suitable instants, the switching signal for multiplexer MU2 is supplied on wire 62 by a gate NO, which inverts the signal on wire 58 used for switching MU1, so as to respect the alternation of shift and rotation operations. The signals on wires 64 and 66 are clock signals with an 11 ns period equal to the bit period, signals on wires 65 and 67 are signals enabling data shifting from and to memory MC and those on wires 75 and 76 are signals enabling data shifting from the input to the output, with a duration equal to 16 clock cycles so as to allow the loading of a fourth of cell. Since the operations in MRA and in MRB alternate at each cycle, the signals above enable in alternate phases the two planes, in the sense that when MRB is enabled towards the output (MRB shifts), MRA is enabled towards the shared memory (MRA rotates) and vice versa in the subsequent cycle. Blocks TS allows data transfer from memory MC to the two memory planes MRA, MRB, modifying at the same time the first bit of the cell, which is the synchronism bit, so as to obtain alternately 0 and 1 according to whether the cell presented to the output occupies an odd or even position in the frame. TS rotates also the routing label. In fact, for each outgoing cell the label updated for the future switching stage is to be put in the first position carrying out a rotation of the five labels, one per stage, contained in the bytes between the 5th and the 9th byte of the cell. The enabling to the rotation and the signal for updating the first bit of the cell, with half-period equal to the cell time, are supplied by the time base on wires 77 and 78 respectively. The address storage structure is to supply the shared memory MC with write and read addresses. It comprises a block ST housing two memory banks, one for current addresses and the other for the future addresses, each formed of eight 7-bit latches, four containing the write addresses and four the reading addresses, one per each input flow. Such addresses are written by the control part on connection 17 and made available 4 times on connection 68, each with a period equal to a fourth of the cell time. Block ST carries out a "pipeline" function between the control and the operative part, allowing the decoupling of the address preparatory phase from their using. The decoder for writing in ST, denoted by DW, operates on the signals supplied by the control part CP (Fig. 3) on connection 18, while a decoder DR for read scanning operates on the signals supplied by counter TB (Fig. 3) on connection 19. Further to the 7 bits cited, present on connection 68 (Fig. 4), there are on connection 40 the two least significant bits, identifying the location of the fourth of the cell. They are recorded by a register CM, controlled by a clock signal with period equal to twice the bit time, present on wire 69, and are sent to the shared memory MC through 9-wire connection 70. The shared memory MC is a static RAM of 320 128-bit words, wherein the cells are stored at subsequent fractions of 1/4 through connection 41; as a consequence, the element above can contain 80 cells. Among these, the empty cell is comprised, wired in the last 4 locations of the above-mentioned memory. Seven address wires, belonging to connections 17, are sufficient for reaching the cells, since the two least significant bits, present on connection 40 coming from the time base, address one of the fourth of cell. The signals on wires 43 and 44 enable the writing or reading in MC, while the signal on wire 42 is a signal allowing inhibition of column pre-loadings and reduced power consumption. The first two are obtained from time base signals and that on wire 42 is directly controllable from the outside of the integrated circuit. The control part, denoted by CP in Fig. 3, is shown in Fig. 5. It controls the generation of the addresses of the shared memory MC (Fig. 4) so as to allow the correct routing of the cells and to ensure their emission with the correct arrival time order, compatibly with the routing labels contained in the cells themselves. It uses a "linked list" structure, which provides as many lists as the output channels, plus one containing the addresses of the empty locations in shared memory MC, wherein the cells entering the module can be stored. Said lists represent the time schedules, or queues, of the cells which, after being stored in the switching element, request to go out on a determined channel. They are obtained by controlling a single RAM memory, referred to as pointer memory. The address of a cell, written in the shared memory MC (Fig. 4) and intended to be queued in a certain schedule of an output channel, can be chosen indifferently among any one of those corresponding to the same number of free locations of the pointer memory. The time order of the cells is maintained through the list structure. In fact in each word of the pointer memory, which corresponds univocally to a location of the shared memory, the control writes the address (i. e. pointer) of the cell which occupies the next position according to the order of the associated queue. In addition to the number of lists relevant to the outputs it is necessary to create a further list correspondent to the free locations in the shared memory; the latter is used to determine the location wherein the incoming cells are to be stored. In the block diagram of Fig. 5, it is to be noted that the control part uses a microprogrammed automaton, implemented through a read-only memory ROC, controlling a part UL for processing the addresses. The microprogram instructions contained in ROC consist of 55 bits organised in 20 fields with well separated functions, so as to obtain maximum efficiency in terms of execution speed. The read-only memory ROC receives the addresses on connection 117 from a block DU, which processes them on the basis of the future state field and of the condition bit coming from connection 118 and of signals coming from connection 34 (signal of empty cell, label, etc.). The operations are carried out at the 45 MHz clock frequency, so as to complete a whole microinstruction cycle, executing the relevant addressing, in 22 ns. At the same time, memory ROC renders the data, contained in a suitable microinstruction field, available on connection 33, which data are the already-cited control signals for block DL (Fig. 3). Memory ROC receives two timing signals on connection 114 arriving from block DTB. The latter receives on connection 22 from block TB (Fig. 3) a 45 MHz clock signal and generates two signals at the same frequency, but with different duty-cycles. Said signals allow a correct and fast line and column addressing of memory ROC. Block DTB decodes also the microinstruction field relevant to writing and reading commands for a block RAC, which field is received through connection 119, and generates relevant signals on connection 113. Block RAC is a static memory consisting of eighty 7-bit words, which form the address pointers as defined by linked list algorithm. It is initialised by the microprogram by loading in each location the next address from 1 to 78. Its contents is updated during the microprogram execution according to linked list algorithm, on the basis of the addresses present on connection 115 and of the contents to the written, processed by block UL, present on connection 116. In the reading phase, memory RAC emits on connection 112 the contents of the location addressed by the address present on connection 115. Block UL processes the addresses of the shared memory MC (Fig. 4), supplying them on 7-bit connection 17. It uses control signals, extracted from the microinstructions, it receives from decoder DU on connection 111, after their sampling and level adjusting. UL comprises three banks of registers; a bank contains the address of the first cell which has requested to go towards a certain output channel, another contains the address of the last cell which requested to go towards the same channel, the third contains the number of cells comprised in the queue in between the first cell and the last. The linked list algorithm allows all the intermediate addresses to be recovered. Each bank consists of five registers, one per each queue, i. e. four registers for the four output channels and one for the free locations. Moreover, there is a counter which updates for each queue the number of cells whose destination is to an output channel. The counter is shared among five queues, since the microprogram examines them separately. During a complete microprogram cycle, i. e. for the cell time duration, control part CP computes four writing addresses in the shared memory MC (Fig. 4), for the cells entering the element, and four reading addresses in the same memory, for the outgoing cells. Said eight addresses are stored in eight further registers in UL, to be then sent to the operative part, namely to block ST of OP (Fig. 4), at the suitable instants. Finally there are three output registers, apt to supply the signals described to be present on connections 17, 115 and 116. The internal registers dialogue with one another on three shared buses. The described switching element is characterised by a minimum crossing time equal to a cell time; this ensures that a cell entering the element may be present on the outputs in the next cell period. The low power dissipation, about 1,2 W at 90 MHz, is obtained thanks to the extensive use of dynamic logics (rotation memory MRA, MRB; microprogram memory ROC), of static memories (shared memory MC, pointer memory RAC) equipped with null static dissipation sense amplifiers and input and output buffers (IB1 ... IB6, OB1 ... OB6) with reduced dynamics ranging between 0 and 1 Volt. It is clear that what described has been given only by way of non limiting example. Variations and modifications are possible without going out of the scope of the claims.

Claims: A high bit rate cell switching element comprising: input buffers (IB1,IB2,IB3,IB4,IB5,IB6) through which input cells are received, each comprising a routing label and an information field; a first synchronisation block (DL), comprising a register wherein the bits of said cells are temporarily stored for synchronization purposes, on the basis of a synchronism signal (8) and a time base signal (7); an operative part (OP), comprising a rotation memory (MRA,MRB), a shared memory (MC), and an address memory (ST) for supplying the shared memory (MC) with write and read addresses, the operative part (OP) receiving the bits of the cells (9,10,11,12) and, through the rotation memory (MRA,MRB), paralleling the bits of the cells and storing them into the shared memory (MC), resolving the access conflicts to the same output by different cells, and at the output of said rotation memory executing the inverse operation so as to recover the cells (13,14,15,16) in the input arrangement, and said operative part also carrying out the address storage in the shared memory (MC); a control part (CP), which generates the write addresses for input cell storage in the shared memory (MC), analyses the routing labels of said cells and controls the switching, generates the reading addresses, sends decoding signals (18) to the operative part (OP) for reading and writing in the address memory (ST), and also receives the routing labels (34); a timing signal generator (TB), comprising a counter which generates suitable multiples of an elementary period, corresponding to an input bit cycle, after being started by a suitable signal (20), and generates starting (21) and timing (22) signals for the control part (CP); characterized in that the switching element (GB1, GB2, ..., GBn) is implemented in CMOS technology, that the input buffers (IB1, ..., IB6) receive the input cells in groups of 8 bits (2, 3, 4, 5), a time base signal (6) and a synchronism signal (1) which are then forwarded (7, 8) to said first synchronisation block (DL), that the switching element further comprises: a second synchronisation block (OL), comprising a register wherein said cells in groups of 8 bits (13, 14, 15, 16) are temporarily stored for synchronization purposes on the basis of the time base signal (7), and output buffers (OB1, OB2, OB3, OB4, OB5) through which output cells (29, 30, 31, 32) and a synchronism signal (28) are emitted so as to output the switched cells in groups of 8 bits (29, 30, 31, 32), and that the control part (CP) also carries out the functions of receiving empty cell information from said first synchronisation block (DL) and of sending control signals for scanning input connections and for the synchronization (33), and contains a read-only memory (ROC), which contains a microprogram for generating the addresses for said shared memory (MC) and which supplies microinstructions used partly or completely as writing signals (18) for said address memory (ST), as control signals for scanning input connections and for synchronization (33), the starting of the microprogram being controlled (21) by said timing signal generator (TB). A cell switching element as in claim 1, further characterised in that said rotation memory in said operative part (OP) comprises: two planes (MRA, MRB), which alternately operate by receiving cells in groups of 8 bits at their inputs (9, 10, 11, 12) and emitting them at their outputs (50, ..., 57), by sending the cells in group of 128 bits (59, 60) with a shift operation on the lines to said shared memory (MC) and receiving them (73, 74) from said shared memory (MC) with a rotation operation of the locations belonging to the same column; and in that said operative part (OP) further comprises a first multiplexer (MU1), which transfers to its outputs (13, 14, 15, 16) the cells in groups of 8 bits arriving from either memory plane (MRA, MRB), upon command by a first clock signal (58); a second multiplexer (MU2), which transfers to its output (61) the cells in groups of 128 bits arriving from either memory plane (MRA, MRB), upon command by a second clock signal (62) obtained by inverting through a gate (NO) said first clock signal (58); a first register (MD), which transfers to its output (41) the cells in groups of 128 bits received from said second multiplexer (MU2) at the suitable instants; said shared memory (MC), consisting of a RAM memory in which said cells in groups of 128 bits are stored; an output block (TS), which transfers data from said shared memory (MC) to said memory planes (MRA, MRB), modifies the first bit of a cell, alternating 0 and 1 according to whether the outgoing cell occupies an odd or even frame position, and carries out the routing label rotation, on the basis of clock signals (77, 78); said address memory (ST), consisting of two memory banks, wherein the present and future addresses for said shared memory (MC) are stored: a first decoder (DR), which generates the reading addresses in said address memory (ST), on the basis of clock signals (19); a second decoder (DW), which generates the writing addresses in said address memory (ST), on the basis of signals (18) supplied by said control part; a second register (CM), where the addresses (68) supplied by said address memory (ST) are integrated with less significant bits (40) and sent to said shared memory (MC). A cell switching element as in claim 1, characterised in that said control part (CP) further comprises: a third decoder (DU), which supplies the addresses (117) for said read-only memory (ROC), on the basis of a part of the microinstruction (118) relevant to the future state and of signals relevant to the state of the cell (34), and supplies control signals (111), extracted from the microinstruction, after their suitable sampling and level adjusting; an address processing block (UL), which comprises banks of registers wherein the addresses of the first cell, of the last cell and of the number of intermediate cells and the addresses of the free locations are stored for each output, and comprises banks of registers for the writing and reading addresses (17) in said shared memory (MC); a pointer memory (RAC), microprogram initialised and updated on the basis of addresses (115) and data (116) supplied by the address processing block (UL), whereto it sends the address pointers (112), the pointer memory (RAC) being controlled by writing and reading commands (119) contained in the microinstructions issued by the read-only memory (ROC); a fourth decoder (DTB), which generates the reading and writing signals (113) for said pointer memory (RAC), on the basis of commands contained in the microinstruction (119) and of timing signals (22).

Inventors: GANDINI MARCO, LICCIARDI LUIGI, TUROLLA MAURA, VERCELLONE VINICIO, GANDINI, MARCO, LICCIARDI, LUIGI, TUROLLA, MAURA, VERCELLONE, VINICIO
Applicants: CSELT CENTRO STUDI LAB TELECOM, CSELT CENTRO STUDI E LABORATORI TELECOMUNICAZIONI S.P.A.
Application year: 1993
Main classification: H04L12
IPC codes: H04L12, H04Q11