METHOD AND APPARATUS FOR SWITCHING DATA BETWEEN BITSTREAMS OF A TIME DIVISION MULTIPLEXED NETWORK

Abstract: The present invention refers to a method and an apparatus for switching data between a set of input bitstreams and a set of output bitstreams in a circuit switched time division multiplexed network, each of said bitstreams being divided into recurring frames and each of said frames being divided into time slots. According to the invention, each one of said input bitstreams is received, and frames of time slot data from said input bitstreams are temporarily stored in a set of memory means (31-34), each one of said memory means being used for storing frames of a respective bitstream of said input bitstreams. Furthermore, for each frame of each one of said output bitstreams and sequentially in accordance with the order that said time slot data are to be transmitted in the respective output frame, time slot data is selectively read from frames presently temporarily stored in said set of memory means and is then transmitted into allocated time slots of said output bitstreams.

Description: METHOD AND APPARATUS FOR SWITCHING DATA BETWEEN BITSTREAMS OF A TIME DIVISION MULTIPLEXED NETWORK Technical field of invention The present invention refers to a method and an apparatus for switching data between a set of input bitstreams and a set of output bitstreams in a circuit switched time division multiplexed network, each of said bitstreams being divided into recurring frames and each of said frames being divided into time slots. Technical Background and Prior Art Today, new types of circuit switched communication networks are being developed for the transfer of information using time division multiplexed bitstreams, wherein the bitstreams of the network are divided into recurrent, typically fixed size frames, each frame in turn being divided into time slots. An example of such a network, referred to as a DTM (Dynamic synchronous Transfer Mode) network, is described in "The DTM Gigabit Network", Christer Boh , Per Lindgren, Lars Ramfelt, and Peter Sjδdin, Journal of High Speed Networks, 3 (2) : 109-126, 1994, and in "Multi-gigabit networking based on DTM", Lars Gauffin, Lars Hakansson, and Bjδrn Pehrson, Computer networks and ISDN Systems, 24(2) .119-139, April 1992. In such a network, so called switch nodes, each connected to at least two bitstreams, are used to switch time slot data between different bitstreams, more specifically between time slot positions on different bit- streams. If, for example, a circuit (or "channel") is defined by a first set of time slot positions on a first bitstream and a second set of time slot positions on a second bitstream, a switch node is typically used to transfer or copy time slot data from the first set of time slot positions to the second set of time slot positions . According to prior art, switches in circuit switched time division multiplexed networks use control memories that maps incoming slot positions to an outgoing slot positions. Such mapping may involve both a mapping in the time domain, i.e. control of the order in which time slot data are written into each bitstream, and a mapping in the space domain, i.e. controlling which time slot data goes to which bitstream. For general background, so- called time-space-time (TST) switches are described in "Data and Computer Communications", 4th ed. , by Williams Stallings, Macmillan Publishing Company. As an example of a prior art switches, US 4 005 272 (Collins et al . ) , describes a switch apparatus wherein incoming bitstream frames are stored in respective inlet memories and wherein outgoing bitstream frames are stored in respective outlet memories . Based upon information provided in a plurality of control memories, time slot data stored in said inlet memories are transferred to said outlet memories via a space switch. A first control memory is used to designate the inlet memory entry that is currently connected to the space switch, thereby providing a time switching function at the inlet port. Another control memory is used to designate the outlet memory entry that is currently connected to the space switch, thereby correspondingly providing a time switching function at the outlet port. Also, further control memories are provided to control which cross- connections that are to be made over time within the space switch. A disadvantage of switch nodes of the above mentioned kinds is that they do not allow arbitrary communication between input and output ports, i.e. they show limitation as to the possibilities of arbitrary switching time slots in space and time, which consequently also limits switching speed and capacity. Because of the operation features of a space switch of the kind used in, e.g., US 4 005 272, any-to-any switching is typically rendered impossible. In most cases, a first selection of mapping of a specific input time slot position to a specific output time slot position will directly imply restrictions as to a second selection of further mapping. This of course also limits the possibilities of providing space and time multicasting and/or broadcasting. Furthermore, in prior art, input and output ports are connected together using a shared medium that is required to handle the aggregated switching capacity of the input ports to not provide blocking. This typically requires switch internal processing at a bit rate of several times the bit rate of the network bitstreams, which of course limits the scalability of such a design. Objects of the invention An object of the invention is to provide a switching apparatus and method that provides greater freedom as to the possibilities of arbitrary switching time slots in space and time . Another object of the invention is to provide a solution that efficiently handles time and space multicasting and broadcasting channels. Another object of the invention is to provide a simple and fast mechanism for switching between multiple incoming and outgoing bitstreams being arbitrary phase shifted. Another object of the invention is to increase the general switching speed and capacity. Yet another object of the invention is to provide a scaleable switching system, wherein smaller switches may easily be integrated into forming larger switches. Summary of the invention The above mentioned and other objects are achieved by the invention as defined in the accompanying claims. According to the invention, there is provided a method and an apparatus for switching data between a set of input bitstreams and a set of output bitstreams in a circuit switched time division multiplexed network, each of said bitstreams being divided into recurring frames and each of said frames being divided into time slots. The input bitstreams are received and the frames thereof are temporarily stored in a set of memory means (for simplicity referred to below as a set of frame buffers) . Each frame buffer is used for temporarily storing frames of a respective bitstream of said input bitstreams. For each frame of each one of said output bitstreams and in sequence accordance with the order that said time slot data is to be transmitted therein, time slot data is selectively read from frames temporarily stored in said set of frame buffers. Said time slot data, as selectively read from said frame buffers, are then transmitted into allocated time slots of said output bitstreams. Consequently, in a switch embodying the invention, each input port is associated with a respective frame buffer for temporary storing of frames that are received at said input port. All output ports can, independently of one another, read data from any one or more of said frame buffers in a non-blocking manner. A full switch thus comprises a set of frame buffers, each being arranged in a 1-to-many (one input to many outputs) fashion. According to the invention, time and space switching is advantageously accomplished in one single integrated step by the selective reading of data from the frames that are stored in said set of frame buffers, only requiring one single read control function (for example imple- mented using a so called slot mapping table) for controlling said selective reading for each output bitstream. Furthermore, as each input bitstream is written into a respective frame buffer, and time slot data from the output bitstreams are read out from said frame buffers as requested for output, a switch according to the invention will only have to be able to operate at a rate essentially corresponding to the bitstream bit-rate. However, this does not prevent the invention from being used in relation to memory means operating at a bit-rate exceeding wire speed. Also, using the invention, no multiplexing of time slots from different bitstreams is needed at the input side (or corresponding demultiplexing at the output side of the memory means, in contrast to what is often encountered in prior art. According to a preferred embodiment of the inven- tion, said frame buffers are realized by means of multi- ported random access memories (RAM) , which allows insertion and retrieval to be performed independently and without phase synchronization. By using RAMs with multiple read ports, each output bitstream will, independently of others, retrieve its own time slot data and preferably collect it using lines private to said output bitstream, thus providing a non- blocking operation. Therefore, there is no need for mutual exclusion or complicated reservation schemes on a shared resource. It also follows that the concept does not require a higher communication speed in any part of the design compared to the speed at which each line receives input or transmits output. Consequently, a switch embodying the invention will show a significant freedom of operation with respect to the possibilities of arbitrary switching of time slots in time and space as compared to prior art switches . As is understood, a multi-ported random access memory as suggested above may provide a plurality of actual physical read ports or, for example, one single physical port that in turn provides a plurality of virtual read ports (one private to each output port) , as long as the memory means provides support for a selective read access (in the time slot sequential order of the respective output frame) to the output ports as suggested according to the invention. Consequently, as mentioned above, operation within the memory means as such may still, if so desired or required, use a bit rate that exceeds the bitstream bit-rate. As the frame buffers are repeatedly updated at a high rate, an implementation based on dynamic RAM (DRAM) can be envisaged without a need for memory refresh. As mentioned, according to a preferred embodiment of the invention, all output ports read data from said set of frame buffers independently of one another, and the time slot data is preferably transferred from said frame buffers to the output ports on lines private to each output port . Typically, each one of said frame buffers will comprise a plurality of time slot data entries, wherein each time slot data entry of a frame buffer is arranged to store time slot data from a respective recurring time slot position in the sequence of time slots of the input bitstream that is associated with said frame buffer. Since time slot data may be read from any time slot entry of said frame buffers to different output ports, the mechanism for broadcasting and multicasting (i.e. sending data from one input port to several output ports) is implicitly provided. Preferable, a switch apparatus according to the invention comprises means, for example in the form of a control memory ("slot mapping table"), for providing, for those time slots of a frame of each output bitstream that are allocated to receive time slot data from the input bitstreams, each one thereof with a respective identification of an associated time slot data entry of said frame buffers, said time slot data entry providing the time slot data for the respective allocated time slot. Such an identification may for example be an identification uniquely identifying a frame buffer and an entry thereof providing the time slot data to be transmitted into the output time slot associated with said identification, an identification stating that write access to the corresponding output time slot does not belong to the switch and that the output time slot shall not be provided with time slot data from said input bitstream, an identification that an idle pattern shall be generated by the switch and transmitted into the corresponding output time slot, or an identification that time slot data received from another switch shall be transmitted into said corresponding time slot. Thus the designation of where from to collect data for each output time slot provides several new possibilities for switching data. For example, the latter of the four exemplified types of identifications above makes it possible to connect several switches in a simple manner into forming a larger switch, thereby increasing the switching possibilities without essentially complicating implementation. Preferably, each input frame buffer has capacity to hold three sequential frames of the input bitstream in respective frame storage areas, also referred to as frame pages or columns, of said frame buffer. The use of three frame pages per input bitstream is meant to ensure switching consistency, i.e. making sure that the selective reading from a frame or page does not take place before the input writing of that specific frame or page is completed. According to the preferred embodiment, one page is needed to enable re-mapping of time slot in the time domain, another one is needed for parallel storage in a double buffering fashion, and the third page is needed to handle any frame phase difference between the input port writing into said frame buffer and the output ports reading from said frame buffer, a difference which is constrained to one page as a result of the general synchronization of, for example, a DTM network. Each one of the input and output ports is typically controlled by a respective frame synchronization signal, which in turn advances internal pointers to identify the frame page currently used for writing (at an input port) or the frame pages that are currently used for reading (at an output port) . The time slots of an input bitstream is written into storage in sequential order, while the outputs are read from said frame buffers using random access among the entries of the pages currently selected for selective reading. Time slots and frames are hence clocked using clock and frame synchronization signals local to each port, and the frame buffers are accessed by the ports according to the respective local frame synchronization. An underlying assumption is that the frame synchronization signals never have a skew, i.e. a phase difference between an input bitstream and an output bitstream, of more than one frame, i.e. there is no accumulated frame difference (drift) , which is a criteria that is accomodated in, for example, a DTM network, the invention therefore being of special intererst in such a network. The frame synchronization of an input bitstream preferably controls a write slot counter, which advances a write pointer designating a time slot entry of the respective frame buffer to the next time slot entry upon each received time slot (Upon frame synch, the write slot counter is preferably reset to start at the lowest slot in the next frame) . The frame synchronization of the input bitstream preferably also controls a write page select block, one designating a page of the respective frame buffer, which enables one of the three frame pages of the buffer for write access. (Upon frame synch, the next frame page is selected in a circular fashion.) The frame synchronization of an output bitstream preferably controls an output slot counter, which at each output time slot advances a pointer in said time slot table for deriving information as to where time slot data for the subject output time slot is to be collected. (Upon frame synch, the output slot counter is preferably reset to start at the lowest slot in the next output frame) . The frame synchronization of the output bitstream preferably also controls a read page select block, which selects which frame pages, of respective frame buffers, ι-3 Si (- ■ φ Hj ■ Z 0 rt o rt Ω rt ø en if μ- Φ SD μ- Φ Hi μ- Hi O O μ- TJ H Φ <! 0 Ω ø O 0 3 Si 0 μ- Q if iQ H 0 ø SD rt en Φ SD rt ø i rt 0 SD if μ- rt 0 Φ if tf H3 en cr Si H- 1 D Φ en en Φ 3 Pi μ- if rt Φ φ - ι-3 rt ED 0* rt Φ H{ en g μ- TJ Φ 0 3 TJ φ μ- rt en 0 H . 3 ø Hi ø rt 0 TJ H{ ø rt cr Ω Φ ø 0 <! Φ Ω ii μ- rt τ3 Hi ED rt SD S3 H- 1 Φ Φ Hi •< Φ Φ ø 0 0 μ- Φ ø 0 0 ft rt ø Φ ø ( Q Ω SD 9? Hi μ- rt μ- € rt Hi rt rt Hh SD 3 s Φ N Φ 1 O μ- SD Hi if rt en μ- H^ μ- Φ ^ SD Hi O cr ED ED H 1 X H 0 Si 0 Si Ω ø 0 cr O Φ ^ ø rt H if Ω Φ rt rt Pi if cr o φ μ- μ- if 0 φ en I- 1 Φ SD s; en en cn μ- Φ 0 en en t ED 0 Φ en J Hi Φ μ- μ- (_π Ω Hi if SD < TJ μ- TJ Φ μ- ø N if 0 ø Φ O H ø O rt en Φ T= φ cr *< Hj TJ Φ Φ Hh μ- SD en Hi ED rt Hh ED 3 3 TJ - μ- Ω en o μ- Φ Φ μ- Φ Hi Ω rt cr if rt rt ft Ω Hi α ø ø 0 ^ Hi φ Hi if if ED ED H3 rt en < Ω τ3 Hi Hi 0 Φ SD cr S SD ED μ- H- 1 μ- SD ED Ω Hi rt ft O Pi Φ Ω 3 < rt Hi ~< ø μ- Hh rt Φ ED Φ μ- φ 0 rt μ- Φ o ED i rt H- 1 en en ii μ- if cr ED rt ø en rt 4 φ Φ ø Φ Φ 2 if SD ø •<; * Pi 0 . Pi Hi cr 0 o μ- cr μ- en if μ- iQ ft en 0 Hi Hi 0 • en μ- < rt O 0 en ?r ø φ Φ Si ιP-- Ω H- if Hi TJ Ω en • Φ Si o O s: $. £ SD TJ r φ o en ø μ- H3 μ- if 0 rt Φ μ- μ- Pi 0 rt o ø rt * rt μ- Si O ø rt ø Hi ( Q Φ ø 4 Φ Ω Ω ϋ ~ μ- ft ø ^ Ω if if 3 en en rt ø if Ω ft rt cr μ- o μ- rt ø rt Φ rt 3 μ- S fu ø tJ Hi 3 O μ- Hi 0 ø SD ø 0 en ( Q Hi Φ ø ø 3 ø cr Hi iQ μ- Φ φ Hi 0 Φ ø Ω SD en rt ft rt SD μ- en - SD 0 Ω Φ if ED if en Hi X - 0 μ- rt Ω Hi SD 0 Φ H- 1 φ Φ Φ en 0 Si 0 O < 0 Φ 0 Si μ- . rt ø μ- tf Hi Φ o ø rt • iQ Hi 0 Si en o 0 Φ en φ • ED Q 1 Φ H- 1 μ- 0 en r . • en Φ Ω O ø φ H 1 SD H 1 IQ iQ ^ ~ < work's bit-rate. The time slots are divided into two groups, control slots and data slots. Control slots are used for transferring of signaling messages between said nodes for the network's internal operation. The data slots are used for the transfer of data between end users or applications using said nodes for access to the DTM network . The nodes of the DTM network is typically arranged to dynamically establish, modify, and terminate channels on said bitstreams by dynamically allocating selected time slots to the respective channel. Hence, the allocation of both time slots and data slots to different nodes or end users may by dynamically adjusted as network load changes. As is understood, there is essentially no header or address information embedded in the data slots in this kind of circuit switching. For a more detailed description of the DTM technology, reference is made to the above mentioned references "The DTM Gigabit Network" and "Multi-gigabit networking based on DTM" . The above mentioned and other aspects and features of the invention will be more fully understood from the following description, with reference to the accompanying drawings, of exemplifying embodiments thereof. Brief Description of the Drawings Exemplifying embodiments of the invention will now be described with reference to the accompanying drawings, wherein: Fig. 1 schematically shows a switch apparatus performing time and space switching of time slot data; Fig. 2 schematically shows a switch apparatus according to an embodiment of the present invention; Fig. 3 schematically shows an embodiment of a slot mapping table of the kind used in the switch shown in Fig. 2; Fig. 4 schematically shows a frame page selection mechanism used at each input and output port of a switch according to a preferred embodiment of the invention; Figs. 5a and 5b schematically show page offsets in full re-mapping mode and in bypass mode, respectively; Fig. 6 schematically shows a portion of a switch apparatus according to an alternative embodiment of the invention; and Figs. 7, 8a and 8b schematically show a mechanism for updating the slot mapping tables of the kind shown in Fig. 3. Detailed Description of Preferred Embodiments In Fig. 1, a switch apparatus Sw for switching data between a set of input bitstreams and a set of output bitstreams in a circuit switched time division multiplexed network, each of said bitstreams being divided into recurring frames and each of said frames being divided into time slots. More specifically, the switch apparatus Sw in Fig. 1 is provided to switch time slot data from time slots A 0 -A n , B 0 -B n of frames of input bitstreams A and B in time and space to time slots of frames of second bitstreams C and D. As is shown in Fig. 1, an output frame of the bitstream C consists of data transferred from any selected one or more of the input bitstreams A, B and from selected arbitrary input time slots thereof. The occurrence of A 0 in the frames of both output bitstreams C and D corresponds to multicasting the content of the A 0 input slot to both the C and D output bitstreams, but to different slots in the outgoing frame. A switch apparatus according to an exemplifying embodiment of the invention will now be described with reference to Fig. 2. In Fig. 2, the switch Sw, receives time slot data from four input bitstreams 1-4 and transmits time slot data to four output bitstreams 5-8. Accor- dingly, the switch Sw comprises four input medium access units 21-24 and four output medium access units 65-68 providing access to the respective bitstreams . Each input medium access unit 21-24 is arranged to write each frame received from the respective bitstream into a respective frame buffer 31-34. Each frame buffer 31-34 has capacity to store three sequential frames of the respective bitstream in three corresponding frame storage areas or pages, 31a-31c, 32a-32c, 33a-33c, and 34a-34c, each page having capacity to store one frame. For example, the frame buffer 31, which temporarily stores each frame received from the bitstream 1 via the input medium access unit 21, will sequentially store a first frame in frame page 31a, the next (second) frame in frame page 31b, and the following (third) frame in frame page 31c. Then, the following (fourth) frame will be stored again using frame page 31a, thus overwriting the previously stored first frame. Also, note that the time slot data from the time slots of a frame are written sequentially into corresponding time slot data entries of the respective frame pages, i.e. one data entry for each input time slot. At the same time, four time slot data selection units 45-48, which, as illustrated in embodiments to be described below, may be provided, e.g., in the form of multiplexors or tri-state buses, are arranged to select time slot data to be transmitted into the respective output bitstreams 5-8 by deciding, for each output time slot to be transmitted into the respective output bit- streams, which frame buffer, and frame page thereof, and time slot data entry thereof (i.e. among the presently stored time slot data from all four input bitstreams 1-4) that time slot data slot is to be collected, or passed on, to the respective output bitstream. Hence, each selection unit 45-48 is connected to all four frame buffers 31-34 for the selection and collection of time slot data therefrom. In order to know which frame buffer, page and entry thereof to be used for a specific output time slot, each selection unit 45-48 has access to a respective slot mapping table 55-58, which will be described in more detail below with reference to Fig. 3 and which, for each time slot of the respective output bitstream frame and at a respective entry, provides one field 55a-58a designa- ting the frame buffer and one field 55b-58b designating the entry thereof to be used for reading time slot data for the output time slot. The output time slot entries of the slot mapping tables 55-58 is preferably stored in the time sequential order of the corresponding output frame, and each slot mapping table is stepped through once each frame of the respective bitstream. Hence, when reading time slot data for the first time slot in each frame of bitstream 5, the selection unit 45 will access the first entry of the slot mapping table 55, more specifically the first data field of the column 55a and the first data field of the column 55b, to derive information as to which one of the four frame buffers and which entry thereof that time slot data is to be collected for the first output time slot of the frame of the bitstream 5. Also, the selection unit 45 will control the selection of which frame page of each frame buffer 31-34 that is to be used for reading time slot data for the frame currently being transmitted into the bitstream 5, as will be described in more detail below. Accordingly, the selection unit will pick time slot data in given output order for each output bitstream time slot that is set to receive time slot data. Of course, the switch Sw will only transmit time slot data into those slots of the output bitstream allocated for that purpose. An embodiment of a slot mapping table of the kind discussed above with reference to in Fig. 2, (and below with reference to Fig. 7), will now be described with reference to Fig. 3. The slot mapping table is a table in which the allocated channels are defined. As shown in Fig. 2, there is preferably one slot mapping table for each output bitstream. The slot mapping table shown in Fig. 3 is one frame deep and contains four logical memory LJ L to to μ-> LΠ O LΠ o LΠ σ U1 μ- cr en Ξ 0 rt ED tn Pi rt Hi tn SD O 3 tn SD o 3 Φ cr rt _ μ- ED to Ω TJ in cr Hi rt O ED ω μ- rt μ- Hi μ- en ø" 0 if Φ μ- rt Hi SD Φ ø ø SD ED - Φ if 0 H ø - — - O o μ- μ- ø * Hi H rt Hi μ- 1 3 tn o 3 Φ iQ 3 Φ TJ rd Pi ft TJ Ω Φ H μ- 1 ϋ in O rt φ Φ Φ SD Φ rt Φ 0 ξ| 0 TJ Si ft tf 0 TJ TJ if LΠ Si ø Pi 0 μ- rt en Hi SD μ- 1 iQ SD if Ω p Hi tn μ- μ- 1 if μ- φ en ø μ- ED μ- Hi SD en Φ Φ 3 rt • rt ϋ 0 μ- en μ- i Hj 3 ø Φ tn μ- ι-3 Φ Hj φ rt Φ ø 0 H3 TJ rt ø en - en O rt SD Hi ø μ- H ø Φ 0 O o H ED μ- if Hi 0 φ μ- iQ ft if ED iQ φ Ω ø Hh H Ω μ- O H 3 φ Hi rt 0 Ω 0 rt rt 0 rt ø ø φ rt ϋ Ω 3 en μ- Φ Ω Hi <Q ED 0 Hi Hi SD if ø μ- 1 ø if SD ii TJ Si Hi ED ts 0 if rt Φ tn Hi 0 Φ o SD Φ Hj rt ø 0 en rt SD rf Φ ) φ 3 o ø en rt ts cr μ- Si Hj ^ φ 3 Hi ø O Hi Φ SD SD Φ Si in if 3 Φ Hi en μ- 3 rt Ω Φ μ- rt φ Hj Si μ- 0 SD 0 0 tn rt ø Si 3 cr ø Φ φ Si μ- . — . ø Hi SD Ω o P. Hh μ- ϋ SD £ iQ ø Ω ts Hi rt Φ o rt O Φ rt LΠ P. Ω φ ED SD μ- ø Φ μh 0 0 ts rt μ- • en φ TJ μ- O 3 SD Hi Hi 3 Φ μ- cr o cr ED ø rt Hj Si ED Hi Hi 0 Hi s; ø Hi μ- SD rt μ- tn μ- ft ø rt SD Ω Pi μ- SD ED • 3 0 rt Si en if tn Ω ED Hi 3 O H. ED o ø if LO ø ø if iQ TJ f Φ Φ μ- SD rt 0 0 Hi μ- O Φ rt SD if 3 Φ ø H μ- <! TJ Hi - IQ ø IQ φ ϋ TJ Hi tn ø 0 if Hj Hi 3 Hi LΠ 0 ø Φ tn tn rt μ- μ- 0 Hi rt tn 3 ED μ- o en Si ø Φ O φ ø Φ LΠ Hi TJ en 0 Ω rt Ω ^ J 0 Φ ~< Pi rt O if ft rt Φ ft IQ Φ rt ø 0 O O • tn 0 Hi Hi cr ø Ω 0 O μ- 0 O μ- 1 en Φ 3 Φ if if Si SD φ Ω ED iQ rt 0 Hi μ- rt μ- μ- 1 ft rf if ft μ- j 3 H- 1 en ø to Φ SD Hj Pi cr Φ Φ cr 0 if tf Ω ø Si Hj Φ ø oo i μ- if Φ IQ ø Φ 0 0 ϋ 1 Ω φ μ- tt en Hi μ j φ SD h rt ø Φ ft Ω Φ ^ SD ED ø φ cr 3 O 3 9 μ- μ- 1 cr Ω tn $ rt if if Hi φ O Φ Hi 0 Hj SD rf if 0 Hi Ω Pi Si rt μ- ED μ- ø en 0 rt ø oo < Φ ø μ- in Φ O μ- X Hi - ED μ- O cr Φ φ Hi μ- O if φ Φ SD Hj ft rt rt ø - if iQ - en rt rt £ H Φ rt tn 3 rf < TJ ø Hi rt Hi μ- if tn μ- iQ μ- 1 0 ED rt en rt if Hi Hi ø en ,1 P-. S μ- 3 Φ μ- Φ en O Φ tn ED μ- φ iQ μ- rt Ω t tt 0 ft rt Φ if μ- Φ μ- rt TJ SD if O rt 3 Hj H Hi en rt Φ μ- ø 0 • Hj Hj SD Hi 0 O ED Φ rt ø Si ED Hl en rt μ- 0 if ϋ Φ ^ O SD if !Q Φ ft Si Φ Hi μ- rt μ- φ Ω O iQ SD 3 rt μ- 1 rt μ- SD Ω ED Φ μ- rt rt rt Φ ø Hi t SD SD Si if iQ ED rt if en rt φ O μ- Hi if O en Hj en O φ if Φ cr SD ■ <: - — Ω 3 3 φ Φ ø Ω if £ rt μ- SD φ rt 3 •<; Hj Hh Hi φ ø 3 tn Φ tn 0 Φ O Φ ø Hj Φ if Φ Ω ι μ- if ø rt ø φ μ- Φ rt s; Hj Ω 0 ft ED rt -' Hi rt Pi μ- • rt Φ O rt Φ Hi if rt 3 ø ft Hj en μ- 82 rt rt IQ TJ en en O μ- o Hi if Φ 0 0 μ- 0 ^ Φ ø H Ω rt Hi Φ ø 4 ED en iQ Hj SD Φ 3 μ- 1 O TJ $, μ- 1 rt SD ED φ Hh 3 Hi t Hh Hh ø 0 0 if tn if 0 TJ μ- 1 μ- 0 iQ φ < rt μ- μ- μ- o 3 Hi μ- 0 0 SD μ- μ- rt 3 3 Φ Φ 3 en rt TJ 0 tn Φ en ø if ø ø rt rt 3 s: φ φ ø μ- en Ω Φ Hh Si ϋ cr ø ED Ω Φ μ- μ- rt < Φ cr cr Si Φ iQ iQ Ω SD o μ- o Φ H> ø rt if en O φ ; Φ ts 0 Z SD Ω 3 ø o SD SD ø Φ 0 Φ Hi if en TJ 0 rt ts Hi en ( ι TJ Hj Hi ø Hi Ω TJ 0 Hi 0 O Φ iQ o rt ft rt Hi en Φ Hi rt μ- Ω ts rt if SD ø ED Hh rt rt O SD Pi μ- ø Hi φ μ- ϋ Hh μ- O Hi SD ø if μ- TJ IQ - ED ^ -~ rt rt μ- if Φ μ- Ω o 3 H tt Si tn rt 3 μ- en ED μ- Φ iQ Hi ED cr iQ φ ø ø Hj φ ED Φ φ Φ ED Hi 0 Hh TJ SD 0 μ- μ- SD φ SD ø μ j en Hj ø - 3 H Si iQ rt φ SD rt Hh Si μ- 1 Ω μ- 3 ϋ rf 0 ø ø O 0 cr SD TJ rt Ω en ED φ Φ μ- 0 Hh 0 0 μ- en Hj Si rt if φ TJ rt μ- ø rt iQ Ω ø rt μ- 1 Ω TJ rt if ED 0 • rt SD ø rt tn Φ Hi Si 3 O ED SD μ- en Hj μ- en en TJ O rt φ if μ- if 0 Si en Φ 0 SD Φ SD Hj Hi Φ 3 rt 0 3 O μ- 3 μ- - ø 0 3 TJ 0 ø Φ tn ϋ en H3 tn Si rt H cr cr 0 Φ en ft tn Φ Hi Φ 0 SD en Φ rt Hi ø Hh μ- ø S 0 iQ Φ Hi φ if 0 φ o μ- μ- 1 rt 0 φ ø 4 en Ω LJl rt ø μ- iQ rt ø rt μ- 0 cr φ Si 0 rt rt rt ø Φ - Ω rt φ if en cr LΠ rt tn TJ ø en μ- rt SD iQ Φ rt rt 0 μ- tn if if Si en if - Φ O Φ 0 SD if μ- 1 ø μ- iQ μ- 1 SD 3 μ- 0 rt SD TJ SD Hi ø en r Φ Φ Φ Ω rt μ- rt Hi rt 3 Hi Φ O ft ø O φ 3 cr μ- Ω ø cr Hi rt Φ Φ Hh SD rt if rt • ft if μ- SD Hi μ- rt J 0 rt ø Φ μ- μ- 3 if Ω rt μ- 1 Φ 0 tn μ- 1 0 SD o μ- 0 if Φ if φ O SD φ rt rt Φ ø en rt 0 ø en 0 tn Si rt Φ O Φ Hj o 0 en 0 ø 0 Φ Φ • rt ø" μ- Hi Φ μ- rt φ 3 μ- 1 en 1 Hi 0 Hi en Hi rt s; en fi ¬ Φ φ Hj ϋ Φ Ω — Hj Ω 3 μ- 0 μ- 1 Φ n Hi rf Hi • ED O - s Si rt en Hi μ- cr ^ O t s: en Hi ED - μ- O φ ø φ rt o ED ED SD ø Ω ø rt μ- μ- 1 o iQ μ- Φ iQ ø Hi rt O 3 μ- 3 1 μ- ED μ- ft if μ- 3 O Hi en 0 0 μ- 1 * Si rt φ ø φ en 1 Φ ø Φ rt Hi h K data for the third output time slot will be fetched from the 3988 :th time slot of each frame of the second input bitstream, and so on. A frame page selection mechanism to be used at each input and output port will now be described with reference to Figs. 4, 5a, and 5b. The input of time slot data to the frame buffers, as well as the selective reading of output time slot data using the slot mapping tables, are each controlled by separate and independent frame synch- ronization signals, derived from or defined for the respective bitstreams, which together make the switch consist of N (number of inputs) plus M (number of outputs) clocking domains. The frame synchronization signals are used to advance respective writing or reading pointers that select frame pages in the respective frame buffers. For each bitstream, i.e. one for each input and one for each output, a respective pointer block 100, schematically illustrated in Fig. 4, clocked by the respective frame synchronization signal Frame_Synch, is used to control which frame page, of the respective frame buffer, that is addressed for frame writing or selective reading. In each pointer block 100, a free running counter 102 increments the selected frame page address, in a modulo-3 fashion on every reception of the respective frame synch- ronization signal, thus sequentially providing the frame page pointer addresses 0, 1, 2, 0, 1, 2, ..., and so on. Each pointer block 100 also receives a page offset signal (for example as given by the values provided in the fourth column 18 of the slot mapping table in Fig. 3) having a value which is added (also in modulo-3 fashion) to the value of the free running counter in a modulO-3 adder 104 to provide a resulting frame page select signal, as will be discussed further below with reference to Figs. 5a and 5b. The sequential designation of frame pages of a frame buffer for the writing of frames of the respective bit- stream there into is accompanied by a corresponding sequential designation of frame pages of the frame buffers for the selective reading of time slot data therefrom. For each frame buffer there will be provided one write pointer (associated with the writing of the respec- tive input bitstream) and M read pointers (each associated with the selective reading for the respective output bitstream, M being the number of output bitstreams) . It is important that the designation of frame pages for writing and the designation of frame pages for selec- tive reading are performed so that buffer consistency is maintained to avoid reading time slot data of a frame before the writing thereof is completed. Such consistency is achieved by the use of three frame pages storage for each bitstream frame buffer, thus making it possible to always keep a minimum distance of half a frame between the writing and reading of each time slot data, as will be discussed further with reference to Figs. 5a and 5b. In the pointer block 100 of Fig. 4, when used at an output port for the selective reading of frames, the free running counter frame page address is optionally modified by the provision of a page offset signal received from the slot mapping table, as mentioned above with reference to Fig. 3. The frame page offset signal is derived from the frame page offset column (18 in Fig. 3) of the slot mapping table and modifies the address of the pointer block by the adding of an offset thereto, also in modulo- 3 fashion, to form an offset page address. Hence, the frame page offset signal is specified on a per slot basis depending on frame synchronization phase skew (i.e. the phase difference between the frames of the input and output bitstream), and access restriction criteria. Access restrictions are restrictions imposed on the time switching to reduce the latency through the switch at the cost of limiting the possible time re-mapping. The frame synchronization phase skew is in the range -1 < skew < 1, expressed as a part of a total frame. Fig. 5a shows the assignment of page offsets during en Hj ϋ μ- Ω Hi TJ Hi 0 φ rt SD ED O μ- cr 0 $ <~r rt cr 0 rt 0 ft Φ Hi Hi μ- Hj cr r 0 3 ft en Φ μ- ED ø 0 Hi 0 φ Φ 0 if ϋ Hj Hi ø μ- TJ Hj if if o h μ- Φ if μ- Hj H ø Φ 0 μ- Hh O μ- 0 Si IQ rt ø ED μ- SD S en Φ ϋ Hj Hi TJ rt Φ μ- φ φ rt o iQ φ rf 0 ED TJ Ω Hi rt Hh ϋ 0 SD ED rt 3 ø Si ø μ- 0 tn 0 tn Hi rt rt rt ø SD if 3 3 ø Φ Hi en en Φ ø Ω ED μ- Φ ft *< TJ H 3 ø £ Φ rt rt SD μ- 0 en 0 if rt Hh Φ φ rt TJ Φ rt Φ • tn SD cr U) 0 tn Hj ø Φ ED Φ ii iQ rt H rt ø φ Φ 3 Φ en μ- Hi H rt ft Hj Hi rt 0 . Hi 0 μ- ø ts Hi cr iQ μ- μ- cr Φ μ- iQ X μ j 1 μ- < SD if TJ cr μ- Φ H SD < iQ Φ ED Φ Φ ft rt O ø μ- μ- SD ø rt φ μ- IQ Φ 3 o Φ SD μ- o Hh SD 0 0 tf Φ Φ rt Ω • Pi IQ * » if μ- ø en rt 3 iQ TJ Ω Φ 3 0 Φ IQ rt ø Hi 3 Hi TJ Si en if ED Φ H- Ω SD 0 Φ Hj en O Hh rt Hi TJ SD TJ O Hh Φ en SD - Hj H- 1 s: φ LΠ ft μ- 1 o rt rt IQ μ- en rt Hi ED μ- H μ- rt 0 μ^ if en Hj Hi rt o 3 rt μ- ^ Hi μ- μ- H cr 0 ft μ-> 3 tf Hi | Q Φ Hj rf ø SD < rt ED •< SD o Hi Hh Φ fi if IQ 0 rt en Hi Φ if ts Φ s: ED Hi • rt Φ SD rt 3 φ SD o en ø μ- 1 3 Φ φ φ if 0 Si tn rt SD ø μ- 1 if 0 82 ED 3 SD Φ Φ cr Hi φ Ω Φ . — . SD rt TJ tn s: 0 0 if if rt 0 Φ s: Φ Si 3 LΠ rf 3 φ Hj Hi rt μ- if SD 11 3 if SD μ- ts LΠ if Hi ø Hj r O Φ rt rt Hi ø φ SD 0 TJ ts Φ Φ rt rt en H en cr t Φ IQ | Q o SD μ- Hi φ Si rt s: μ- Φ μ- ft ' — ' Hi en 0 ED SD H tn if o 0 + Φ 0 μ- Ω Φ Hh Φ if τ in ø en * Pi rt rt if ts • H-» H *< en SD iQ Si 0 ti ¬ Φ Φ ø TJ Hh μ- 1 rt 0 ~ SD ø if 1 φ Hi SD Φ ϋ Φ if Φ SD ED ø μ- ft Φ μ- ED ns SI μ- SD Hh f Φ rt rt μ- 3 Hi in Ω en rt X r ED Φ iQ > . — . 3 Ω rt Φ ø rt Φ o tsi Q Φ μ- Φ X μ- μ- Φ rt μ- ED Φ rt 0 en if rt Φ TJ H ø Hj φ en rt Φ if μ- Hj SD ( Q μ- ED 0 ED Φ Hi ø rt en ø Hj en TJ 0 O Φ μ- rf ts Hi Φ if Hi < 0 < 3 rt 3 rt s; iQ μ- TJ Ω 0 0 3 Hi ø ED Si Φ ED μ- Φ tn 0 Φ 3 Si ξ Φ TJ Φ μ- 0 3 3 Hj Hh tn cr en SD μ- Φ Pi 3 O SD H iQ Hi ED ED ED Si 0 en ø o μ- ø SD O Hi SD 0 μ- Hi Φ rt H- 1 ø ø Si tn SD 0 rt Si μ- 0 cr ø μ- TJ < 3 tf rt rt 0 ø Hh *< Pi rr ED rt if 0 SD en IQ rf Φ in 3 Hi 0 en μ- ø φ 0 0 Ω N if μ- μ- μ- 1 0 if μ- in ø μ- 3 Φ Ω tn O O μ- - μ- Φ Φ 0 0 ø Hh iQ ø rt if SD ED ø μ- Φ cr ø J Φ rt μ- 1 ø φ rt in ø 00 iQ SD Si iQ Hi • Hi Si rt Hj rt tn iQ ED ø μ- IQ if rt if o IQ o en ø Ω μ- Hj H TJ Si 3 SD H φ O o μ- Φ μ- 1 rt TJ rt SD φ 1 en Φ Hi 3 ED . μ- tt 0 if 3 SD ED φ 0 3 ED Hj 3 ø O μ- 0 s; Φ ED en rt en ED 0 ) s: ^ t ώ O Φ Φ - iQ 4 Hi μ- φ IQ cr 0 SD Hi φ 3 tn 1 μ- ø en ø o SD Hi IQ rt if Φ — μ- ø - ø Hj Pi . φ Ω 0 Φ Φ Q. 0 en φ rt Hj N tf rt r * Φ Hj ED rf SD . Ω Φ φ rf if rt . Hi tn ft TJ O — 0 μ- SD tn Φ 0 en SD Φ rt en Φ Ω if 3 0 ft rt Si <_π ø if 0 Ω if SD - O Q rt μ- = > cr Hi O SD W Hj Ω H Hi Φ rt if if if SD 0 φ 3 O Hi ED rt φ iQ cr Pi if μ- | Q - ED φ if Hj Hh 3 rt Φ 0 Φ if en 0 SD μ- Φ ED SD Φ Hj ED Hi Φ rt if Φ rt 0 rt O ø ED 0 Hh if s; ED en Φ if 0 ø ED rt ø 3 en ■ ■ < Ω £D Hi if Hi ø SD μ- ø Ω < s; en ED Φ rt in μ- μ- μ- —> s: en rf SD Hi rt if rt Hj TJ Φ Hi rt SD μ- • φ SD Φ Φ TJ μ- en Hi N ø Hi ft rt ø if 0 cr Hj if SD O en Φ if I- 1 en φ s: 0 μ- rt TJ Hi S < 3 Φ rt ED iQ tn μ- if ED 0 Φ rt Φ SD Φ 0 rt 3 μ- Φ H μ- rf μ- SD • IQ rt 0 Φ li if Φ Φ rt Φ rt φ ø 3 3 TJ if φ ø en Φ iQ Hi Hi if μ- μ- ED ED φ tn n 3 Φ rt H- rt μ- 1 μ- Si SD en 0 3 SD Φ Hi Φ rt SD 3 Hj ø H s; Hj rt 3 Hj c Hi 3 0 O Ω O o if φ ø Hh SD Ω s; Si ED Ω φ cr T Φ en SD Ω 0 ED μ- if ED Φ μ- tn Φ Si i rt ø SD o IQ Hi Hj Ω μ- Φ TJ rt J SD ~< ø ED Hi en Hj O SD < Φ 3 0 iQ en O Φ ^ μ- SD rt rt SD Si Φ rt - ts 0 ED Si TJ iQ μ- IQ Hj rt - Φ ø φ TJ rt • Φ cr en TJ ts < Ω en μ- 0 3 tn Ω μ- SD IQ Φ Si φ SD iQ μ- Hi μ- en 0 rt Φ φ Φ ED Φ rf μ- SD 0 Hi φ O en if ED ø rt Φ TJ ø ED ø ø φ < rt rt TJ cr LΠ Hh ø Hj 0 Hi ø iQ Hh ø Hi en ( Q Φ o rt rt £ < 3 en φ if (D if SD ^ LJ. SD rt 0 Ω ED Si φ Hi SD ø rt ED TJ Hi SD ϋ 0 μ- Φ Φ μ- ED Φ cr TJ Φ Hi Φ ( Q 0 - — 0 Hj if rt μ- SD Φ ED Φ o 0 ED ø Φ μ- 1 ϋ rt Hi ø Hj 0 ø φ 0 TJ ft φ rt 3 • Φ HJ μ- ø en SD Hj Q O en μ- i μ- ED cr Hi rt μ- £ Ω rt ft ø o J φ o • if TJ σ o ø iQ Si cr μ- Φ H| rt O en cr tn Φ ø H Φ : > Pi μ- ED Hi 0 Φ H rt ø Q 0 μ- 0 o rt Hi ø 3 H s o μ- 1 Φ Hi iQ μ- ED Hj Φ en ø iQ rt SI rt ø" — ^ if μ- O en ø Hi Hi if Hj TJ SD μ- en ø Φ rt rt rt μ- 1 rt ø Φ rt Φ ft TJ if 0 0 rt SD N ED 0 μ- ( Q Hi Φ ED ø Ω en ø" en if rt μ- 1 0 μ- 1 0 rt Φ if ø Φ en if rt SD rt ø Φ rt 3 rt 1 1 μ- Φ ED if ø Φ 0 Hi Φ rf 0 Φ 1 Q Hj if φ ø tn Φ ( Q ED en SD φ full re-mapping of data from first incoming slot to last outgoing slot and vice versa, but that requires buffering not only a write page and a read page but also one extra frame (the third page) to guarantee consistency, which hence introduces propagation latency through the switch. In the bypass mode, the latency through the switch may be reduced by one frame for one or more time slots of the frame at the cost of restrictions in the time re-mapping, as is discussed below. Hence, in the bypass mode shown in Fig. 5b, the normal mode page offset of Fig. 5a is temporarily incremented by one (1) for individual one or more time slots of a frame, which consequently allows the write and the selective readers to temporarily use the same page, as is illustrated in Fig. 5b by the shifting of the alternative read pointer arrows one step to the right as compared to Fig. 5a. Of course, this bypass mode may only be allowed under the restriction that the selective reader does not read ahead of the sequential writer, which is ensured if no outgoing time slot, of an output bitstream, receives data from an incoming time slot, of an input bitstream, having a higher time slot sequence number. Thus, outgoing slot #9 may use the bypass mode to reduce latency through the switch when reading data from an incoming slot #3, but outgoing slot #3 may not use the bypass mode to read data from an incoming slot #9. In fact, this requirement for bypass may be relaxed when taking the actual skew into account. For simplicity, it is now assumed that the skew is expressed in time slots. When the skew is positive, i.e. when the frame synchronization signal of the input bitstream appears before that of the output bitstream, (the writing synch is ahead of the selective reading synch) , the skew may be used to allow reading of time slot data for output time slots from input time slots with higher sequence numbers, as long as the switch does not references ahead further than the skew. With negative skew, i.e. when the frame synchronization signal of the output bitstream appears before that of the input bitstream (the writing is ahead of the selective reading) , the normal mode have already added a margin of one frame, which means that if the skew is almost zero but negative, almost full bypass remapping is allowed. In the other hand, when the skew is almost minus one frame, no bypass reference ahead is allowed. This is concluded in the Table I below. Table I As is understood, the frame synchronization and page select mechanisms described with reference to Figs. 4, 5a, and 5b are preferably used in the embodiment of Fig 2, although such element are not explicitly shown therein, and is also incorporated in the embodiment described below with reference to Fig. 6. Another embodiment of a switch according to the present invention, incorporating the features described with reference to Figs. 2, 3, 4, 5a, and 5b above, will now be described with reference to Fig. 6, wherein a switch apparatus Sw is arranged to switch time slot data between N input bitstreams and M output bitstreams. For ease of description, since the switching from one of the N input bitstreams to the M output bitstreams shows the same configuration as the switching of the other input bitstreams, and since the selective reading from the N input bitstream frame buffers to each one of the M output bitstreams show the same configuration, as illustrated in Fig. 2, only elements primarily associated with one input bitstream and one output bitstream is shown in Fig. 6, and the description of the switch apparatus in Fig. 6 is thus limited accordingly. In Fig. 6, an input bitstream is received at an input port 210 of the switch Sw and is provided to an input demultiplexer 220. A frame synchronization unit of the input port derives the frame synchronization signal from the input bitstream and, based thereupon, synchronizes the operation of a write slot counter 240 and a write page selecting unit 250. Also, a clock unit of the input port 210 is arranged to provide a signal occurring at the time slot frequency to the write slot counter 240. The write frame page selecting unit 250 is arranged to control the demultiplexer 220, at the rate of the frame synchronization signal, to have each frame of the input bitstream sequentially passed on to one of three frame pages (or "memory areas") 300a, 300b, and 300c of a frame buffer 300 for said input bitstream in a modulo-3 fashion. While the write page selecting unit 250 and the input demultiplexer 220 control which page of the frame buffer that a specific frame of the input bitstream is being written into, the write slot counter will control which entry of the page that time slot data from each specific time slot of a frame is written into. As is understood, this described set of components will be found at each input bitstream port of the switch Sw. The output part of the switch, as shown on the lower part of Fig. 6, comprises, for each output bitstream, a first set of M output multiplexors 310, a second output multiplexor 320, an output port 330, an output slot counter 350, a slot mapping table 370, a frame page selecting unit 380, and an idle slot pattern generator 390. The output port 330 derives a frame synchronization signal, either from the outgoing bitstream (if a synchronization already exists on said bitstream, said bitstream then originating from a node located upstream with respect to the switch) , or by the internal generation of a frame synchronization signal (if the switch is the starting point of the outgoing bitstream) . The frame synchronization signal is provided to synchronize the operation of the output slot counter 350 and the frame page selecting unit 380. The output port also derives a clock signal occurring at the time slot frequency to the output slot counter 350. The output slot counter 350 sequentially addresses the entries of the slot mapping table 370, stepping through the slot mapping table once for each frame. Thus for a specific output time slot of the output bitstream, the output slot counter will point at a respective entry of the slot mapping table 370. The slot mapping table will then provide three signals based upon the readouts form this entry, as has been discussed above, one designating the input bitstream from which time slot data for the time slot is to be collected, which signal is sent to the second output multiplexor 320, one designating which time slot in the recurring sequence of time slots within a frame of the input bitstream that the time slot data is to be collected, which signal is sent to all N frame buffers, and one signal designating which page offset is to be used, which signal is sent to the frame page selecting unit 380, as have been discussed above with reference to Figs. 3, 4, 5a, and 5b. First, the selected input time slot number for the presently processed output time slot, for example input slot number i, is provided from the slot mapping table 370 to each one of the N frame buffers (only one is shown in Fig. 6) in random access, thus causing the readout of the i : th entry from each one of the three pages of each one of the N frame buffers (thus giving a total readout from 3 x N data fields) . The three readouts of each frame buffer is then sent to said first set of output multiplexors 310, each multiplexor 310 receiving time slot data from three pages of the associated frame buffer. The frame page select unit 380 is then arranged to control said first set of output multiplexors 310, at the rate of the frame synchronization signal, to decide which time slot data, corresponding to respective pages, that at any given time is to be passed on by the multiplexors 310, taking into account the presence of any frame page offset or bypass instruction as received from the slot mapping table. Hence, each of the first output multiplexors 310 will provide time slot data from one field of the respective frame buffer, giving a total of N readouts of time slot data being passed on to the second output multiplexor 320. In the second multiplexor, it is decided which one of said N readouts, i.e. from which bitstream, that is to be passed on to the output bitstream, as designated by the bitstream selection signal from the slot mapping table 370. Thus, the slot mapping table 370 and the frame page selection unit 380 uses said first and second multiplexors 310, 320 to retrieve a specific selected time slot data field from a selected one of the frame buffers. Also, as is shown in Fig. 6, an idle slot pattern and a cascade input are provided to the second output multiplexor. Accordingly, the slot mapping table 370 may instruct, for any specific time slot of the outgoing bitstream, the second output multiplexor 320 to transmit an idle slot pattern from the idle slot pattern generator 390 to the output bitstream, for example for the second, unallocated slot of the slot mapping table of Fig. 3. Note, however, that the fact that a time slot is unallocated does not necessarily mean that an idle pattern should be sent, as the slot may very well be allocated to be used by other nodes attached to the output bitstream. In order to accommodate the possibility of connecting several switches of this kind into a larger switch, the cascade input may be used. Then, an output bitstream from another switch is connected to the cascade input of the second multiplexor, thus making it possible to switch data from said another switch to the output bitstream of the switch Sw, still as controlled by the slot mapping table 370. The cascading possibility allows implementation of larger clustered switches using a number of smaller ones, e.g. the use of four 4x4 switches to implement one full 8x8 switch. A configuration signal from a node controller controlling the updating of the slot mapping table is provided thereto, as illustrated by the arrow denoted Config in Fig. 6 and as will be described below with reference to Figs. 7, 8a, and 8b. As is understood, this described set of output components 310-390 will be found at each one of the M output bitstream ports of the switch, thus for example giving a total of NXM first output multiplexors and a total of M second multiplexors . As has been described above, at the output from each one of the frame buffers, a first level multiplexor is used for selecting data from the three frame pages thereof. The results are then fed to a second level multiplexor to select from a specific bitstream (input port) . This scheme serves the purpose of a) illustrating that data is transferred on lines private to each output, thus avoiding the need for sharing a common medium, and b) the distinct parameters that control the selection. However, considering the hardware cost for routing many wide buses, other building blocks than multiplexors may be considered. Therefore, in an alternative embodiment, a tri-state or a pre-charged bus is used instead of the multiplexors to serve the same purpose as the multiplexors but with a much better area utilization. When using standard random access memory (RAM) modules to implement the frame buffers, tri-state outputs are usually already included. It should be noted that such an embodi- ment does not require any additional means for mutual exclusion. At each instant, the source that is allowed to drive the bus is uniquely specified. In such an embodiment, a signal for enabling a driver is generated from a decoder block which has the input port (as read form the slot mapping table) and the frame page pointer (0, 1, 2) as input . Similarly, instead of the input demultiplexers providing frames of the input bitstream to the respective frame page of the frame buffer may also be replaced by one bus feeding all three pages, wherein a write enable signal selects which one is written. A procedure for updating the slot mapping tables of a switch according to the invention will now be described with reference to Figs. 7, 8a, and 8b. As the channels or time slots to be switched between the different bit- streams change due to reallocation of resources, the slot mapping tables of the switch is updated either using a central unit within the switch or through an external interface by a computer controlling the switch, such a central unit or computer often being referred to as a node controller (NC) . In the case of an externally provided computer, the external interface is separated from the ports of the switch, and the bandwidth for slot mapping table updates is generally considerably lower than the bandwidth of the switch ports . A problem when updating slot mapping tables on several outputs with different frame phases is to maintain consistency, which for example is required when realloca- ting a multicast channel. One advantageous way of solving this problem, which of course is not limited to the updating of multicast channels on multiple output ports, is shown in Figs. 7, 8a, and 8b, wherein Fig. 7 shows three updating tables addressed by the node controller, Fig. 8a shows a flow chart of the updating operation of the node controller, called global update, and Fig 8b shows a flow chart of the updating operation of each one of the slot mapping tables, called local update. When starting an updating procedure, step S10 in Fig. 8a, the node controller will address updating tables 410, 420, and 430 shown in Fig. 7, which for example may be provided within the node controller or within the switch in communication with the node controller. First, in step S20, the node controller will provide tables 430 (one table 430 for each slot mapping table) with a set of entries designating which output time slots in the sequ- ence of output time slots that is to be updated in the respective slot mapping table and which corresponding data that is to substitute the old data at the respective entries of said slot mapping table. Having preset all subject updates for all subject slot mapping tables in this manner, as is decided in a step S30, the node controller will instruct the slot mapping tables to update their content by setting a set of flags, one for each slot mapping table, to one (1) in a table 410 (the table 410 in Fig. 7 representing indications to four slot mapping tables) . It also provides a frame select table 420 with information designating at which selected frame, in the modulo-3 order of frames, that the slot mapping tables shall update their content. In correspondence, at the start of each frame, which is indicated by the reception of a frame synchronization signal in step B10, each slot mapping table will investigate its flag in table 410, in step B20, to se whether or not its slot mapping table shall be updated. If not, i.e. if the flag belonging to the slot mapping table is set to zero (0) , the slot mapping table will proceed to instruct the selective readout of time slot data from the input frame buffers in steps B30, B40, and B50, in the general manner described above. However, if the flag indicates that updating is requested, i.e. if the flag belonging to the slot mapping table is set to one (1) , the slot mapping table will check the frame select table 420 in step B60 to see whether or not the slot mapping table shall be updated at the start of the current frame or at the start of a later frame. If the updating shall not take place until a later frame, the slot mapping table will proceed to instruct the selective readout of time slot data from the input frame buffers in the general manner described above. However, if the frame select table 420 indicates that updating is to take place during the present frame, the slot mapping table will start processing time slots as usual, but for each time slot entry check, in step B70, its updating table 430 to see whether or not the entry of the subject time slot is to be updated, and if so, update the entry with the information provided in the updating table 430 before executing the selective readout. When having stepped through the entire frame in this manner, the slot mapping table will reset its updating flag in table 410, thus informing the node controller that its updating is complete. Correspondingly, the node controller will repeatedly check the updating table 410, in step S50, to see whether or not all slot mapping tables have reset their flags. Having decided so, i.e. when all the flags of table 410 have been reset to zero (0) , the updating procedure is completed in step S60. This updating procedure is designed to reduce the number of resynchronized signals, i.e. signals from other clock domains synchronized with one. The selected synchronization can be based upon one set-reset flip/ flop for each output. Each reset is then controlled by the local slot mapping table update procedure. In an alternative embodiment, instead of updating single time slots of the updating table, the node controller may provide data for an entire new frame, thus simply instructing the slot mapping tables to switch the entire frame of data. However, the mere amount of time slots of a frame may prove this embodiment to be far to time consuming as compared to only updating a subset of time slots. Even though the invention has been described above with reference to exemplifying detailed embodiments thereof, different modifications, alterations and combinations of the features disclosed herein may be made, as is understood by those skilled in the art, within the scope of the invention, which is defined by the accompanying claims.

Claims: CLAIMS 1. A method for switching data between a set of input bitstreams and a set of output bitstreams in a circuit switched time division multiplexed network, each of said bitstreams being divided into recurring frames and each of said frames being divided into time slots, said method comprising the steps of: receiving each one of said input bitstreams; temporarily storing frames of time slot data from said input bitstreams, wherein frames from different input bitstreams are stored in respective memory means of a set of memory means; selectively reading, for each output frame of each one of said output bitstreams and sequentially in accordance with the order that said time slot data are to be transmitted in the respective output frame, time slot data from the frames temporarily stored in said set of memory means ; and transmitting said time slot data, as selectively read from said temporarily stored frames, into allocated time slots of said output bitstreams. 2. A method as claimed in claim 1, wherein said selectively reading of time slot data for a bitstream of said output bitstreams is performed independently of the selectively reading of time slot data for other bit- streams of said output bitstreams . 3. A method as claimed in claim 1 or 2 , wherein said step of temporarily storing comprises temporarily storing time slot data from respective recurring time slot positions in the sequences of time slots of said input bitstreams in respective time slot data entries of said memory means . 4. A method as claimed in claim 1, 2, or 3 , wherein said step of selectively reading comprises the steps of: reading, for sequential time slots of a frame of a bitstream of said output bitstreams, respective provided identifications of time slot data entries of said set of memory means, said time slot data entries providing time slot data for said time slots; and selectively reading, for said time slots of said frame, time slot data from said time slot data entries based upon said identifications. 5. A method as claimed in any one of the preceding claims, comprising the steps of receiving an additional bitstream and reading, for a time slot of a frame of at least one bitstream of said output bitstreams, said time slot being allocated to receive time slot data from said additional bitstream, time slot data from said additional bitstream based upon an identification indicating that said time slot is arranged to receive time slot data from said additional bitstream. 6. A method as claimed in any one of the preceding claims, comprising the step of providing each time slot of a frame of each one of said output bitstreams with an identification designating whether or not the respective time slot of said output bitstreams is to receive time slot data from any one of said input bitstreams and, if so, from which time slot data entry of said memory means that said time slot data is to be collected. 7. A method as claimed in claim 6, comprising the step of providing a set of identification updates and associated timing information relating to when said identifications are to be updated using said identification updates, and updating said identifications with said set of identification updates at the timing designated by said associated timing information. 8. A method as claimed in any one of the preceding claims, comprising the steps of, for each one of said input bitstreams, detecting a frame synchronization signal and, based thereupon, synchronizing said temporary storing of frames into the respective memory means of said set of memory means . 9. A method as claimed in any one of the preceding claims, comprising the steps of, for each one of said output bitstreams, determining a frame synchronization and, based thereupon, synchronizing said selective reading of time slot data and the transmitting thereof into the respective output bitstream. 10. A method as claimed in any one of the preceding claims, wherein said step of temporarily storing comprises temporarily storing three sequential frames of each one of said input bitstreams . 11. A method as claimed in claim 10, comprising the step of indicating, at each given point in time, which ones of the temporarily stored three sequential frames of each one of said input bitstreams that are currently being written into storage. 12. A method as claimed in claims 10 or 11, comprising the step of indicating, at each given point in time, which ones of the temporarily stored three sequential frames of each one of said input bitstreams, that are currently used for the selective reading of time slot data for said output bitstreams. 13. A method as claimed in any one of the preceding claims, wherein channels on said bitstreams are defined by a respective set of time slots in each frame of the respective bitstream, said time slots being dynamically allocated based upon dynamically changing capacity requirements of the nodes of the network. 14. An apparatus for switching data between a set of input bitstreams and a set of output bitstreams in a circuit switched time division multiplexed network, each of said bitstreams being divided into recurring frames and each of said frames being divided into time slots, said apparatus comprising: input means (21-24; 210) for receiving each one of said input bitstreams; a set of memory means (31-34; 300), each memory means being arranged for temporarily storing frames of a respective bitstream of said input bitstreams; means (45-48, 55-58; 310, 320, 370, 380) for selectively reading, for each output frame of each one of said output bitstreams and sequentially with respect to the order that said time slot data are to be transmitted in the respective output frame, time slot data from frames temporarily stored in said set of memory means; and output means (5-8; 330) for transmitting said time slot data, as selectively read by said means for selectively reading, into allocated time slots of said output bitstreams . 15. An apparatus as claimed in claim 14, wherein said means for selectively reading is provided to perform reading of time slot data for a bitstream of said output bitstreams independent of the selective reading of time slot data for other bitstreams of said output bitstreams. 16. An apparatus as claimed in claim 14 or 15, wherein said means for selectively reading comprises a set of reading means, each reading means being arranged to read time slot data for a respective bitstream of said output bitstreams. 17. An apparatus as claimed in claim 14, 15, or 16, wherein each memory means of said set of memory means comprises a plurality of time slot data entries and wherein each time slot data entry of a memory means of said set of memory means is arranged to store time slot data from a respective recurring time slot position in the sequence of time slots of the input bitstream that is associated with said memory means. 18. An apparatus as claimed in claim 14, 15, 16, or 17, wherein said means for selectively reading comprises means (10; 55-58; 370) for providing, for each one of said output bitstreams, and for those time slots thereof that are allocated to receive time slot data from said input bitstreams, respective identifications of time slot data entries of said set of memory means, wherein said means for selectively reading are arranged to read time slot data for said time slots from said time slot data entries in accordance with said identifications. 19. An apparatus as claimed in any one of claims 14 to 18, comprising means (320) for receiving an additional bitstream and means (10; 55-58; 370) for providing a time slot of a frame of at least one bitstream of said output bitstreams, said time slot being allocated to receive time slot data from said additional bitstream, with an identification related to said additional bitstream for the provision of time slot data therefrom, wherein said means for selectively reading is arranged to read time slot data for said time slot from said additional bitstream based upon said identification. 20. An apparatus as claimed in claim 18 or 19, wherein said means for providing identifications is arranged to provide each time slot of a frame of each one of said output bitstreams with an identification designating whether or not the said time slot is to receive time slot data from any one of said input bitstreams and, if so, from which time slot data entry, of said set of memory means, that said time slot data is to be read. 21. An apparatus as claimed in claim 18, 19, or 20, comprising: means (430) for storing a set of identification updates and for storing associated timing information (420) as to when said identifications are to be updated using said identification updates; and means (410) for updating said identifications using said set of identification updates at the timing designated by said associated timing information. 22. Apparatus as claimed in any one of claims 14-21, comprising input frame synchronization means (210) for detecting frame synchronization signals for each respective one of said input bitstreams and for synchronizing, based upon said frame synchronization signals, said temporary storing of frames into respective memory means of said set of memory means. 23. An apparatus as claimed in any one of claims 14- 22, comprising output frame synchronization means (330) for determining frame synchronization for each respective one of said output bitstreams and for synchronizing, based thereupon, the selective reading of time slot data from said set of memory means and the transmitting thereof into the respective output bitstream. 24. An apparatus as claimed in any one of claims 14- 23, wherein each one of said memory means comprises three frame storage areas (31a-31c, 32a-32c, 33a-33c, 34a-34c; 300a-300c) for sequentially and temporarily storing three sequential frames of the respective input bitstream. 25. An apparatus as claimed in claim 24, comprising write pointer means (100; 250) designating, at each given point in time, which frame storage areas, of said set of memory means, that are used for storing the frames that are presently being written from said input bitstreams into said set of memory means. 26. An apparatus as claimed in claim 24 or 25, comprising read pointer means (100; 380) designating, at each given point in time, which frame storage areas, of said set of memory means, that are currently used for the selective reading of time slot data for said output bit- streams . 27. An apparatus as claimed in any one of claims 14- 26, comprising means (18; 104) for momentarily offsetting the designation provided by said read pointer means for a time slots of said output bitstreams in order to read time slot data for said time slot from another frame storage area than the one designated by default by said read pointer means . 28. An apparatus as claimed in any one of claims 14- 27, wherein said memory means comprises a random access memory with multiple read ports .

Inventors: BOHM CHRISTER, GAUFFIN LARS, HOLM LUKAS, ROOS JOACHIM, BOHM, CHRISTER, GAUFFIN, LARS, HOLM, LUKAS, ROOS, JOACHIM
Applicants: BOHM CHRISTER, GAUFFIN LARS, HOLM LUKAS, NET INSIGHT AB, ROOS JOACHIM, BOHM, CHRISTER, GAUFFIN, LARS, HOLM, LUKAS, ROOS, JOACHIM
Application year: 1998
Main classification: H04L12
IPC codes: H04J3, H04L12, H04Q11