A WIDEBAND DIGITAL SWITCHING NETWORK

Abstract: A wide bandwidth self-routing switch. One-to-one, one-to-many and many-to-many modes of communications are achieved with time multiplexed signal packets of multi-service users with a system having a bank of demultiplexers (20) which demultiplex incoming signals and supply them to a broadcast network (40). The broadcast network includes a concentrator (11), a "sort on source" sorting network (41) and a copy network (42). The concentrator (11) permits a reduction in subsequent processing by segregating the incoming lines which carry active signals. The "sort on source" sorting network (41) places all blank copy packets (which are destined to users that wish to tune to a broadcaster) adjacent to the broadcaster's signal packets. The copy network (42) copies the information in the broadcaster's signal packets into the packets destined to the users. The blank copy packets are continually generated by the users wishing to receive broadcasts or, alternatively, by a blank packet generator. Signal packets exiting the broadcast network (40) enter a wide bandwidth switch (10) which includes a "sort on destination" sorting network (12) and an expander (13). The "sort on destination" sorting network (12) arranges the packets in the order of their destination addresses and the expander (13) routes the sorted packets to the desired destinations. The output signals of the expander are time multiplexed (30) and the multiplexed packets are sent to the users.

Description: A WIDEBAND. DIGITAL SWITCHING NETWORK This invention relates to a non-blocking wide bandwidth system for connecting a plurality of incoming signal lines to a plurality of outgoing signal lines, each of the incoming lines carrying signals and each of the signals having a destination address accompanying its data. Background of the Invention With the burgeoning of electronic technologies, the demand for a wider variety of communications services has been steadily rising. New technologies have been continually developing to meet these demands including lasers, fiber optics, microprocessors, and very large scale integrated circuits. While many alternative approaches for realizing the new communications services are available, digital data transmission seems to be the one best equipped for future progress and, accordingly, it is presently receiving the most attention. In terms of the services to be offered, it is expected that, in addition to standard telephone services, a great number of low, medium and wide bandwidth services would be introduced. This would include electronic mail, facsimile, high-fidelity audio, computerized data base searches (e„g., want ads, encyclopedia, travel arrangements, etc.), remote shopping, electronic banking and home computer networks. Business users would also use electronic blackboards, teleconference facilities, word processors, and large computer communication networks. To realize a communications system that can efficiently support such a full list of services one must consider the nature of the signals flowing through the system and the demands that these signals place thereon. It is clear, for example, that at least for some of the services wide bandwidth capability is required of the transmission medium and of the switching equipment. It is also clear that the signals of such services are of diverse nature. For example, some of the services are characterized by bursty signals (e.g., computer data streams) while others are characterized by continuous signals (e.g_>, video). Whereas delays or interruptions in bursty signals are often acceptable, substantial delays of continuous signals are unacceptable and interruptions are very difficult to patch. Accordingly, different hardware capabilities are suitable for bursty and continuous signals. Different signal interactions between users also call for different hardware capabilities. Conventional telephone conversations are one-to-one communications, requiring low bandwidth and two way transmission. Services that provide information, such as time and weather, are one-to-many communications, requiring broadcast capability but only one way transmission. A third mode of communications, many-to-many, results when a user subscribes to a number of services and simultaneously employs those services to communicate with several other users (such as listening on the telephone while receiving electronic mail) . These different modes of communication require different capabilities from a communications system. Closely tied to the above considerations is the per user capacity that is made available. The effects of per user capacity considerations manifest themselves both in the switch and the transmission channels interactions. With respect to the switch, since some of the new services will require a wide bandwidth, the switch will have to possess wide bandwidth capabilities. However, most switches that offer wide bandwidth capability underutilize this bandwidth when signals of low bandwidth are transmitted. That represents a wasted resource. To minimize waste with the myriad of services that are expected to be offered, the switch employed has to inherently be capable of wide bandwidth switching, and yet offer to the users only the bandwidth they need (or wish to pay for) so that bandwidth unused by one user can be offered to another user. As for the transmission channel interactions, one of the more economical methods of connecting the switch to customers who send and receive a number of services (many- to-many) is via single cables having the several signals multiplexed thereon. One of the main problems with this approach, however, is the difficulty in coordinating the transmissions between two or more sources and a common receiver. Conventionally, the receiver's capacity is partitioned into time slots which can be allocated among the transmitters but, unfortunately, this situation is blocking. A transmitter might not be able to communicate with a particular receiver because it might have previously committed to another receiver the time slots which this particular receiver has available. So, while the receiver and the transmitter might have the necessary bandwidth, communication would not be possible. In summary, it is desirable to have a switch that is capable of switching signals in a wide range of bandwidths, of economically utilizing its wideband resources to switch lower bandwidth signals, handling bursty as well as continuous signals, and of efficiently establishing one-to-one, one-to-many, and many-to-many modes of communication without blocking. Description of the Prior Art Wideband telecommunication applications are mostly found in connection with digital data transmission between computers. While this data requires wide bandwidth, it is bursty in nature, requiring a very short time interval for transmission of the desired information. Because of its bursty format, the nature of this communication is not similar to conventional voice communication in the telephone network. Consequently, most networks that interconnect computers are not designed to be suitable for continuous communication. The systems described below, which are -suitable to both voice and data communications are representative of the art that is relevant to this invention. ϋ. S. Patent 4,251,880 describes a system for handling both bursty and continuous data. This system employs a single digital loop with data interσhangers which transfer the data to and from the loop. A central controller is serially interposed in the digital loop and serves to assign time slots for the information exchange between various programmable data interchangers. The controller, in cooperation with the data interchangers, varies the size of the field of each frame so that the portion of the field associated with continuous communication expands and contracts as traffic flow changes, thereby increasing or decreasing the number of time slots available for bursty data. This system is fairly robust but, being a loop system, it is inherently limited in the number of users and per-user bandwidth it can handle. H. J. Matt et al published an article in the IEEE Transactions on Communications, Volume COM-29, Number β, June 1961, pp. 868-885, entitled "Integrated Broad Bandwidth Communication Using Optical Network — Results of an Experimental Study". This article describes a fairly comprehensive system for broad bandwidth communication, using 560M bits/sec transmission facilities. Basically, it is a duplex TDM system where local loops are attached to trunks and a number of users are connected to each loop. To a limited extent, the users within each loop can communicate with each other and protocol is described for connecting to users on other local loops through the trunks. The problems of this system, like the problems of the aforementioned patent, stem from the fact that it is basically a loop system. The problems are solved in accordance with this invention in a non-blocking wide bandwidth system in which the signals comprise signal packets having a header field _ OMPI and a data field, the header field, having a source address subfield, a broadcast packet being a signal packet with an indication that the data field is available to be copied, a broadcast network connected between the incoming lines and the outgoing lines is arranged to copy the data field of broadcast packets into the data field of blank packets having the same source address. Summary of the Invention This and other objects and advantages are ' attained, in accordance with the principles of this invention, with a wide bandwidth self-routing switch arrangement which handles signal packets that have accompanying address information. In an embodiment which realizes one-to-one, one- to-many, and many-to-many modes of communications, signal packets destined to multi-service users are time multiplexed onto wide bandwidth transmission channels and similarly demultiplexed at the switch. The demultiplexed signal packets are applied to a broadcast network which includes a concentrator, a "sort on source" sorting network, a copy network and, optionally, a blank copy packet generator. The concentrator permits a reduction in subsequent processing by segregating from the set of incoming lines and the set of lines from the copy packet source those lines which do not carry active signals or are unused. The users who wish copies of a broadcast transmit self-addressed (addresses) blank copy packets with the source address subfield holding the address of the intended broadcaster. Alternatively, the blank copy packet generator generates the blank packets at the receiver's or broadcaster's command. The "sort on source" sorting network places all blank copy packets (which are addressed to the users that wish to receive a broadcaster) adjacent to the broadcaster's signal packets. The copy network copies the information in the data field of the broadcaster's signal packets into the data field at the copy packets addressed to the users. -gT RE Al/ OMPI _ Signal packets exiting the broadcast network enter a wide bandwidth switch which includes a "sort on destination" sorting network and an expander. The "sort on destination" sorting network arranges the packets in the order of their destination addresses and the expander routes the sorted packets to the desired destinations. The output signals of the expander are time multiplexed, as stated above, and the multiplexed packets are sent to the users. Brief Description of the Drawing FIG. 1 depicts a block diagram of a switching system adapted for one-to-one, and many-to-many modes of communication where the information is transmitted in packets whose headers contain the information required to route the packets. FIG. 2 illustrates the format of signal packets, as employed in this disclosure; FIG. 3 presents an illustrative embodiment of concentrator 11; FIG. 4 presents an illustrative embodiment of routing network 16 within concentrator 11; FIG. 5 illustrates one embodiment of expander 13; FIG. 6 depicts a block diagram of a switching system adapted for one-to-one, many-to-many and one-to-many modes of communications; FIG. 7 details one realization of copy network 42; FIG. 8 presents the structure of copy- elements 420; FIG. 9 illustrates the signal flow within copy network 42 in response to specific input signals; FIG. 10 depicts a modified broadcast network 40 with a blank packet generator 43; FIG. 11 details the structure of an illustrative embodiment blank packet generator 43 which employs a general purpose microprocessor 432; OMPI FIG. 12 is a flow chart of the computational process within processor 432; and FIG. 13 presents one realization for an individual blank packet generator 44 responsive to line 102. Detailed Description Many-to-Many Communications - Overview FIG. 1 depicts a wideband switching system that is capable of handling one-to-one and many-to-many modes of communications, without blocking, fo.r any signal transmission approach which has a destination address accompanying the data. A one-to-one mode of communication occurs when a single terminal is communicating with another single terminal, and a many-to-many mode of communication occurs when many terminals (from one or many users) are communicating with a user having many terminals. The need of an accompanying destination address is a requirement of the FIG. 1 system that is simply satisfied since even conventional telephone signals can be thought of as comprising a destination address and an accompanying (very long) burst of data. For purposes of this disclosure, the system of FIG. 1 is described in the context of the familiar packet switching arrangement where data flows between users in relatively small packets of information. The format of packets depicted in FIG. 2, which is suitable for the system of FIG. 1 and for the system of FIG. 6, described infra, contains a data field and header which includes an activity bit and an address field. The activity bit, when it is a "0", indicates that the packet carries data. The address field contains a destination address subfield, a source address subfield, and possibly additional subfields. Each subfield carries its information with the most significant bits first. The data field, of course, contains the information to be communicated. As stated earlier, in the many-to-many mode of communications each user has several input and output channels. These channels are traditionally established via time slots on a time division multiplexed transmission line connected to each user; and each time slot, repeating at a predetermined rate, is dedicated to a particular service subscribed to by the customer. The difficulty with this method of communicating with a multi-service customer, as mentioned earlier, is that a sender's available time slots might not coincide with a receiver r s available time slot. As a result it might not be possible to directly connect the output channel of one customer to the input channel of another customer. • This problem can be partially resolved by using a time slot interchanger to rearrange the time slots and by applying the rearranged signals to a non-blocking space division switch, such as a crossbar. Unfortunately, this approach can still be blocking. The blocking problem can be avoided by mapping the time switching process, which is followed by the spatial switching process, into a single larger spatial switching process. This is accomplished by demultiplexing the incoming time division multiplexed signal into separate signals or channels and by simultaneously applying. In parallel, the signals of all time slots (i.e., signal channels) to a non-blocking spatial switch. This approach initially seems impractical since many buffers would be needed to store the time slots, and the spatial switch would need to be considerably larger (more input ports) . However, the need for input time slot buffers can be avoided by bitwise interweaving of the time slot data, and the size of the spatial switch can be reduced by employing concentration stages and by exploiting various hardware tradeoffs that allow a high speed small network to simulate the function of a slower, larger one. The question remained as to what is the optimum bandwidth of the signal channels. Since users can change the services to which they subscribe and the different service-providing terminals require different bandwidths. OM one approach would require the switch to be capable of handling the widest bandwidth of any service-providing terminal. This is wasteful of switch capabilities for most of the user terminals. Also, it is limiting on the availability of future services. The solution that is employed in connection with this invention is to divide all signals of the service- providing terminals into channels of a "convenient" bandwidth, and to simultaneously apply the convenient bandwidth signals to a non-blocking space division switch that introduces uniform delay to all applied signals. Channels are addressed independently, are routed independently, and are combined, as necessary, to reform the original signals. This approach permits the channel bandwidth to be chosen small enough to not unreasonably waste bandwidth on low data rate signals, but wide enough to not divide high data rate signals into too many channels. Also, this approach permits the customer to specify the total bandwidth that he wishes to have and pay for and provides the owner of the switch with a switching fabric that can grow modularly with increasing demand. Many-to-Many Communications - FIG. 1 The principles of this invention are realized with a system as shown in FIG. 1, wherein lines 100 are the incoming signal lines, carrying signals from users, and lines 110 are the outgoing signal lines, carrying signals to users. The number of lines 100 and 110 is not necessarily the same. Lines 100 and 110 are wide bandwidth transmission lines which are capable of carrying time multiplexed signal packets to and from each user. At the user's end, the time multiplexed signal packets interact with a plurality of service-providing equipment. The time multiplexed signals of each line 100 are demultiplexed into channels of preselected bandwidth within demultiplexer, block 20 by demultiplexers 101, and the demultiplexed signals are applied to wideband packet switch 10 via lines 102. Switch 10 routes the applied packets to appropriate switch output lines 103 and the routed signal packets on lines 103 are multiplexed within multiplexer block 30 by multiplexers 104 and applied to outgoing signal lines 110. Elements 10, 20 and 30 are controlled by block 50. Demultiplexer 101 - Multiplexer 104 The operation of both demultiplexer 101 and multiplexer 104 is dictated by the interweaving of the signal bits of the packets flowing in lines 100 and 110. Each demultiplexer 101 may be realized with a shift register 116 to serially accept the high rate data stream of its input line 100 and a register 117 to buffer the parallel output of register 116. Conversely, each multiplexer 104 may be realized with register 117 to buffer the signals of its lines 103 and a shift register 118 for shifting the buffered signals onto its line 110. Wideband Switch 10 Switch 10 of FIG. 1 comprises a concentrator 11 responsive to input signals on lines 102, a "sort on destination" sorting network 12 responsive to concentrator 11, and an expander network 13 responsive to sorting network 12. The following describes switch 10 in sufficient detail to enable a person in the art to understand, make and use switch 10. Concentrator 11 groups the lines that carry active signal packets, in order to reduce the number of lines that must be considered by the remaining elements of switch 10. That is, concentrator 11 permits the number of lines 107 to be considerably smaller than the number of lines 102 without incurring an appreciable likelihood that a signal on some line 102 will find all lines 107 occupied. Of course, concentrator 11 may be dispensed with when cost and switch usage considerations reduce the economic advantage gained In using the concentrator. Concentration is realized by identifying the presence of active packets on lines 102, with the required information for the identification obtained from the OMPI activity bits. Having identified the active packets, concentrator 11 routes the active packets to its output lines 107, starting with the left-most line 107 in FIG. 1, to close the gaps in the sequence of lines that carry active packets. All active packets are thus placed adjacent to each other at lines 107 starting with the left-most line 107, and all inactive packets (if any) are placed adjacent to each other starting, in effect, with the right-most line 107. It is important for concentrator 11 to implement the routing of packets simultaneously so that a minimum of delay is introduced. One specific embodiment of concentrator 11, whose ' block diagram is shown in FIG. 3, includes an adder network 14 and a delay network 15, both connected to lines 102, and a routing network 16 connected to both adder network 14 and delay network 15. Adder network 14 is constructed from a row of flip-flops 141 that capture the activity bits and an array of adder circuits 142 that are interconnected to provide an "idle lines sum" signal for each input line 102. Each "idle lines sum" signal indicates the number of idle lines 102 (lines with inactive packets) between that corresponding line 102 and a selected first line 102 (e. g., the left-most line 102 in FIG. 3). Network 15 delays the signal packets of lines 102 with registers 151 by an amount equal to the delay within adder network 14, thereby allowing the "idle lines sum" signals of adder network 14 to enter routing network 16 in synchronism with the signal packets entering routing network 16 from delay network 15. Routing network 16, shown in greater detail in FIG. 4, is a shift network. It comprises an array of switching elements 160 which route the signal packets supplied by delay network 15 to output lines 107, under control of the "idle line sum" signals supplied by adder network 14.' Under control of a strobe signal, each element 160 captures the appropriate control bit off the line OMPI WIPO emanating from adder network 14 and, based on the captured control bit, switches its input signal to one or the other of its two output terminals. For example, when a particular signal line has an associated "idle line sum" equal to 10, represented by the binary number 1010, the first row captures the least significant control bit (0) and transfers the signal unshifted, the second row captures the next control bit (1) and shifts the signal 2 positions to the left, the third row captures the following control bit (0) and transfers the signal unshifted, and the fourth row captures the last control bit (1) and shifts the signal 8 positions to the left. What is achieved is a shift to the left of 10 positions, as required. To complete the 2 l -1 shifting process, following the M fc " row of elements 160, OR gate 152 places the shifted signals at the proper output line 107. Of course, as indicated above, the structure of network 16 is completely iterative and gate 152 can be replaced with another row of elements 160. "Sort on destination" sorting network 12 (FIG. 1), as the name implies, sorts the incoming signal packets of lines 107 based on the destination of those packets and delivers a sorted set of packets to lines 108. The sorting process arranges the signals so that at lines 108 all signal packets situated to one side of any selected signal packet have a higher or equal destination address, and all signal packets situated to the other side of the selected signal packet have a lower or equal destination address. Sorting network 12 can be implemented with a conventional network as described by U. S. patent 3,428,946 and in a paper entitled "Sorting Networks and their Applications",- published in the 1968 Spring Joint Computer Conference Proceedings,- pp. 307-314. Another implementation of sorting network 12 is described in detail in aforementioned Canadian Patent application OMPI ■X x Expander 13 routes the sorted set of packets at lines 108 to the actual destination addresses of the packets. A number of implementations are available for realizing the function of expander 13 in accord with the principles of this invention. One such implementation, shown in FIG. 5, comprises a trap network 131, a separation network 132 and a routing network 133. Trap network 131 detects the presence of packets that seek a common destination and deactivates all but one of them. In uses where at any one time only one packet can seek connection to a particular destination, networks 131 and 132 are not needed for the proper operation of the expander. For each incoming line 108, network 131 includes a comparator 134, a delay register 135 and a selector 136. Comparator 134 compares the destination address of the signal at its associated input line 108 to the destination address of the signal at line 108 to its immediate left. Delay register 135 provides a delay to account for the delay in comparator 134. In the implementation shown, selector 136 transfers a continuous "1" to its output (in place of the delayed signal from delay register 135) whenever the comparator 134 indicates to selector 136 that the destination address on the incoming line is equal to the destination address on the line on the left. In another implementation, selector 136 can set a "trap" flag in the header to indicate that the packet is a "repeat". Separation network 132 segregates the inactive packets (streams of continuous l"s) generated by comparison network 131. By using the initial "1" in the stream of "l"s as the activity bit, network 132 can be implemented with a concentrator 11 network. A network like sorting network 12 can also be employed as a separation network. In the alternate implementation mentioned above, the trap flag has the function of the activity bit. Routing network 133 comprises two-input (A and B) and two-output (C and D) switch elements 130 that are OMPI interconnected in an array of rows i and columns j, followed by a row of AND gates 137. The B inputs of the top row of elements 130 are connected to the outputs of the separator network. The A inputs of these elements are connected to logical zero. The interconnection of the remaining switch elements 130 follows the pattern B i,j = C i+l,j and A i,j = D i+l,j-k where k = 2 1 ; the rows i, where i = 1,2,3, ..., are counted from the lowest row of elements 130 upwards; and the columns, j, where j = 1,2,3, ..., are counted from left to right (in FIG. 5). The equations define connections as long as the subscripts are greater than zero, i_<M and j<_N, where M Is the number of rows and N is the number of columns. Connection to signal ports that are not defined . by the above equations are connections to zero. Gates 137 are two input AND gates that are connected to the bottom row of elements 130. A gate in column m is connected to output D of element 130 in column m-1 and to output C of element 130 in column m. In proper expander operation only one input, A or B, should be active in the same packet time, and each switch element 130 accepts the active packet. If both inputs are inactive, both outputs are set to "1" (Inactive) for that packet time. The destination address of the accepted packet is compared to a fixed threshold address and, based on the comparison results, the packet is routed to either output C or output D. The fixed threshold address of each switch element 130 is related to its position within the array, and it is equal to 2 I ~- I -+j-l. Whenever the destination address is equal to or smaller than the fixed address, the accepted packet is transferred to output C. Otherwise, it is transferred to output D. Implementation of switch elements 130 can follow conventional design approaches with the use of read only memories to store the fixed threshold address, gates and flip-flops to do the comparing, a flip-flop to store the OMPI switching selection and additional gates to do the switching. One-to-Many Communications - Overview The basic principle of this invention for realizing one-to-many communications, which we call broadcasting, is one of data copying. In order to broadcast to many users, packets must be generated that are addressed to the users wishing to receive the broadcast, and those packets must contain the broadcasted information. With "intelligent" broadcasters, that is relatively straight forward. Either on its own initiative or in response to a single packet of information from the user, the broadcaster can generate packets with the requested destination addresses and place copies of its information in the data fields of the generated packets. One advantage of such broadcaster controlled copying is the ease with which billing for broadcast receptions can be achieved. The disadvantage is the difficulty in dynamically allocating the ports of switch 10 among the various broadcasters." With broadcasters that are not "intelligent", the problem of copying is more complex because the receivers rather than the broadcasters must maintain control over the generation of packets, addressed to themselves, which carry the desired broadcaster's information. Port allocation to broadcasters, however, is not a problem. One-to-Many Communications - FIG. 6 FIG. 6 depicts a wideband switching system that is adapted to one-to-one, many-to-many, and one-to-many (receiver controlled) modes of communications. Like the FIG. 1 system, it includes a demultiplexer block 20, a wideband switch 10 and a multiplexer block 30 connected to the output signals of switch 10. Blocks 10, 20 and 30 handle the one-to-one and many-to-many modes of operation, as described earlier. The system of FIG.' 6 differs from the FIG. 1 system in that switch 10 does not include a concentrator 11, and a broadcast network 40 is interposed between multiplexer block 20 and switch 10. Also, the system of FIG. 6 requires a source address subfield in the address field of each signal packet. That address subfield is shown in FIG. 2 to follow the destination address subfield. In general terms, the system of FIG. 6 operates in the following manner. A receiver that wishes to receive a particular broadcaster causes "blank packets" to be sent to switch 10 which have the receiver's own address in the destination subfield and the broadcaster's address in the source subfield. These packets can be likened to self- addressed empty envelopes. At the same time, a broadcaster sends packets which have the broadcaster's own address in the source subfield and the destination address of the first user to request the program or to itself (e.g., to monitor its performance) in the destination address subfield. The packets are sorted by source, to place the blank packets adjacent to the broadcaster's packet, the data field of the broadcaster's packet is copied into the data field of the blank packets thus becoming enhanced blank packets. The enhanced packets are then forwarded to their destinations. This operation can be likened to stuffing of the empty self addressed envelopes and mailing them to their * destinations. Copying of the broadcaster packets information into the blank copy packets is achieved with the aid of a broadcast bit which is included in all packets. The broadcast bit ("1" for blank, "0" for original) follows the least significant bit in the source address subfield and forms a part of the source address subfield. Many refinements can be incorporated into the basic broadcasting scheme and, generally, they can easily be accommodated by including additional information in the address field. By way of example, incorporated in the system described below is the ability for users to withhold permission for others to copy their signal packets. This -is achieved by introducing a copy permission bit following the broadcast bit which permits (0) or prohibits (1) copying. As shown by the table below, the broadcast bit and the copy permission bit combine to specify all input conditions, including the condition of a blank packet which seeks to copy an original packet that wishes not to be copied. As will be shown in connection with FIG. 9, in some implementations such a blank packet must not only be stopped from copying the packet it seeks to copy but must also be stopped from copying other packets. broadcast copy permission condition bi_t bi_t 0 0 copyable packet 0 1 non-copyable packet 1 0 blank packet 1 1 blank packet that tried to copy a non-copyable packet Of course, user privacy can be achieved in other ways, such as including in the broadcaster's source field a code unknown to the user. To copy and receive the material, the user would have to "call" the broadcaster and get the code. Broadcast Network 40 To perform the tasks involved in creating packets with copies of the broadcaster's data, network 40 in FIG. 6 includes a concentrator 11 connected to lines 102, a "header exchange" memory 44 responsive to concentrator 11, a "sort on source" sorting network 41 responsive to memory 44, a header exchange memory 45 connected to sorting network 41, and copy network 42 responsive to memory 45. Concentrator 11 is the same concentrator 11 that was described in connection with the FIG. 1 system. In the FIG. 6 system, the output of concentrator 11 is a -gU $ ,h ALTT OMPI collection of lines carrying private user packets, lines carrying broadcaster packets, lines carrying blank copy packets, and lines carrying inactive packets. Since network 41 sorts on the source address it is beneficial to have the source address subfield (including the broadcast bit and the copy permission bit) immediately follow the activity bit rather than follow the destination address subfield. Header exchange memory 44 accomplishes this task with a circuit associated with each line which includes a shift register memory and a two input selector connected to the register's input and output. Normally, the selector chooses the signal path through the memory. When the destination address subfield is in the shift register, the selector chooses the path not through the memory, passes the source address subfield to its output and reverts back to the path through the memory. This reverses the relative positions of the source address and the destination address subfields. Sorting network 41 sorts on the source address subfield and consequently places all blank copy packets that seek to copy a certain source adjacent to that source's packet. When the broadcast bit is used as part of the source address (e.g., as the least significant bit of the source address) , the -sorting by network 41 places the broadcaster packet to the left of all the packets that wish to copy it. This is useful in reducing the computational burden on copy network 42. Sorting network 41, like sorting network 12 in FIG. 1, can be implemented as taught by Batcher in the aforementioned publications. Header exchange memory 45, like memory 44, reverses the relative positions of the source address and the destination address subfields. Memory 45, in effect, nullifies the actions of memory 44. Network 42 places the information in the data field of broadcast packets into the data fields of all adjacent blank copy packets that seek to copy that OMPI •information and sends the enhanced blank packets to switch 10. Like concentrator 13, network 42 can be realized in a number of ways. The illustrative implementation shown in FIG. 7 comprises an array (rows and columns) of switchable copy elements 420, with input ports A and B of each copy element 420 being connected to receive signals from different output ports C in the immediately preceding row of copy elements 420. When the designations i and j (where l<i_<M, l_<j_<N) are applied to rows and columns, respectively, the interconnection of copy elements 420 within the array of FIG. 7 is defined by the equations B i,j ' C i-l,j and A i,j = C i-l,j-k where k = 2 1 and connections of ports A to undefined ports C are zero (e.g., C^ _ is outside the subscript limits and, therefore, A2 j _=0) . In the above definition with reference to FIG. 7, i is counted from the top and j is counted from the left. When copy element 420 receives signal packets at its A and B inputs, it takes one of the following three actions: 1) when the A input packet is a broadcaster (condition 00) and the B input packet is a blank packet (condition 10) — element 420 copies the data field of the A input packet into the data field of the B input packet, converts the enhanced blank packet to a broadcaster packet, and transfers the altered packet to its output, C. 2) when the A input packet is a private original (condition 01) or a blank packet that has been denied permission to copy (condition 11) , and the B input packet is a blank packet (condition 10) — element 420 converts the blank B input packet to a blank packet that has been denied permission to copy and transfers the altered packet to its output, C; and 3) for all other input conditions element 420 transfers the B input packet, unaltered, to its output C. OMPI FIG. 8 depicts one embodiment of switchable copy element 420. Flip-flop 421 is connected to input A directly and flip-flop 422 is connected to input B through OR gate 431. Flip-flops 421 and 422 allow for simultaneous evaluation of the copy permission bits and the broadcast bits of signal packets at inputs A and B. Inverter 423 connected to input A and inverter 433 connected to input B apply their signals to AND gate 424. AND gate 424 is also responsive to the Q " output of flip-flop 421 and to the Q output of flip-flop 422. The output of gate 424, which is high only when A has condition 00 and B has condition 01, is connected to NAND gate 426 and to flip-flop 425. Both flip-flop 425 and gate 426 are activated with a strobe 5 control signal which is high when the broadcast bits are in flip-flops 421 and 422 and the output of gate 424 is valid. Gate 426 is connected to AND gate 427 which is also connected to the Q output of flip-flop 422. The action of gates 426 and 427 converts B input packets, when conditions are right, to broadcast packets. To "copy" the information, flip-flop 425 is connected to AND gate 428, which is also connected to a strobe 6 control signal, and gate 428 is connected to the control input of selector 429. The input signals of selector 429 are derived from the Q output of flip-flop 421 (the A input signal) and from gate 427 (the B input signal) . Strobe 6 control signal, which is high when the data fields are at the selector's inputs, combines with the state of flip-flop 425 to place, when conditions are right, the A input data field information into the B input data field. To modify the condition of blank packets that are being denied permission to copy, AND gate 430 is connected to strobe 5 control signal, to the Q output of flip-flop 422, to gate 433, and to the signal of port A. The output signal of gate 430 is applied to OR gate 431 where it modifies the copy permission bit of the B input copy signal packets when conditions so require. OMPI FIG. 9 illustrates the operation of the FIG. 7 copy network by way of a specific example. The upper number associated with each signal line is the identification bit, and the lower number is the copy permission bit. The heavy lines trace the path of the data field to each output of network 40. It may be observed in FIG. 9 that outputs 1, 2 and 3 (j = 1,2 and 3) of network 42 receive their data from input 1 of network 42; outputs 4, 5, 6 and 7 receive their data from input 4; and outputs 8 through 12 receive their data from their respective inputs even though inputs 9, 11 and 12 are blank copy packets that wish to copy inputs 8 and 10, respectively. Not only is copying denied in the first row because both input 8 and input 10 do not wish to be copied (possess a "1" copy permission bit) , but copying (of a distant broadcaster) is denied in subsequent rows because the copy permission bit of the blank copy packet has been changed to a "1". One of the advantages of the FIG. 6 system is the simplicity with which broadcasting is accomplished. One disadvantage is the need for users who receive broadcasts to continually transmit blank copy packets. This disadvantage is overcome, and additional advantages accrue, when broadcast network 40 is modified as shown in FIG. 10. The modified broadcast network has a separate blank copy packet generator 43 which in response to command signals on lines 102 or on a specified line 103 generates appropriately addressed blank copy packets and feeds them to concentrator 11 via lines 120. Blank packet generator 43, when it is responsive to line 103, may be viewed as an end user of the system of FIG. 6. The task of this end user is to generate blank copy packets. With such an arrangement, users that wish to affect the generation of blank copy packets each send a signal packet to this end user and the information in the data fields of those packets instructs the blank copy packet generator. Since the requests can come from hopeful receivers of broadcasts. from broadcasters, or even from third parties, this approach offers great flexibility in implementing, keeping track of, and charging for broadcasts. One disadvantage in using a line 103 to instruct the blank copy packet generator is the possible bottleneck that might result in applications where many users wish to communicate with generator 43 simultaneously. This disadvantage disappears when lines 102 are connected to generator 43 directly, permitting full access to generator 43 by all users. The exact embodiment of blank copy packet generator 43 depends on the sophistication which one wishes it to possess. In its most general form when designed to respond to signals on a line 103, generator 43 is programmable and may be realized with a microprocessor as described below. When designed to respond to lines 102, generator 43 is a collection of individual blank copy packet generators 44; each responsive to a line 102 and delivering blank copy packets on a line 120 to header swap memory 44. FIG. 11 depicts a blank packet generator 430 responsive to a line 103 which feeds register 431. Processor 432 reads the signals in register 431, processes the information contained in the signals and develops blank copy packet templates which are accepted by register 433 and shifted, serially, to registers 434. The blank packet templates within registers 433 and 434 are repeatedly copied into registers 435 and shifted onto lines 120 through AND gates 436. Gates 436 disable the output signals during the data field portion of the packets to insure a blank data field and to permit loading of registers 435 with new information without affecting the signals at lines 120. The number of registers 435 (and lines 120) is a design choice but, obviously, it should not be greater than the number of user channels that can possibly request broadcasts. The basic task of processor 432 is to maintain an updated list of the requests for blank copy packets. To maintain that list, processor 432 has an associated memory in which a table (size P, where P is the number of registers 435) of the various requests for blank packets is stored. To add a request, processor 432 merely adds an entry to the table. To delete a request, processor 432 searches the table for the request and deletes that entry. FIG. 12 presents a flow chart which describes the table updating process. Processor 432 first initializes the necessary variables in section 500. It then waits in section 501 for a new request by monitoring the activity bit of register 431. When a new packet is discovered, processor 432 proceeds to section 502 in which it determines whether the request is an addition or a deletion. If the request is an addition, section 503 adds a new template to the table. If the request is a deletion, section 504 searches for the item in the table and section 505 deletes the item from the table. The algorithms for adding and deleting items from tables or queues are- covered in great detail in "The Art of Computer Programming," Vol. 1, "Fundamental Algorithms" by Donald Knuth (Addison-Wesley Publishing Co.). After the new request has been processed, section 506 uses the new table to update registers 433 and 434. When the registers have been updated, processor 432 returns to section 501 to wait for a new request packet to arrive. FIG. 13 depicts one embodiment of individual blank copy packet generator 44 which is responsive to signals on a line 102 and provides blank copy packets on a line 120. Register 437 stores each packet flowing through line 102 to switch 10 and detector 438 determines whether, the packet is a request to begin or end the generation of blank copy packets. The information for detector 438 may be in the data field of the packets or in the header. We feel that a good choice is to use the broadcast and copy permission bits in the header to indicate a request to OMPI begin generation of packets (e.g., with a condition 10) and a request to end generation of packets (e.g., with a condition 11) . Register 439 captures the information needed for generation of blank copy packets under control of detector 438 (e.g., source address and destination address) and register 440 correctly formats this information and repeatedly duplicates the information in register 439 and shifts it out onto line 120. Control Block 50 Because of the self routing architecture of the • systems described above, control block 50 needs to provide very few control signals. The needed control signals for each one of the networks can be generated in a separate circuit and the circuits can be activated in a pipe-line fashion, with each network "telling" the next network when a new packet begins. Each circuit is very conventional in design, including primarily a tapped shift register for propagating a one clock period pulse which marks the header's beginning. Most control signals, being one clock period long, are obtained by simply accessing the appropriate shift register taps. Each longer duration control signal is obtained with a flip-flop which is set with the signal at one tap of the shift register and reset with the signal at another tap of the shift register.

Claims: Claims 1. A non-blocking wide bandwidth system for connecting a plurality of incoming signal lines (100) to a plurality of outgoing signal lines (110), each of the incoming lines carrying signals and each of the signals having a destination address accompanying its data, CHARACTERIZED IN THAT the signals comprise signal packets having a header field and a data field, the header field having a source address subfield; a broadcast packet being a signal packet with an indication that the data field is available to be copied; a broadcast network (40) connected between the incoming lines and the outgoing lines is arranged to copy- the data field of broadcast packets into the data field of blank packets having the same source address. 2. The system in accordance with claim 1 CHARACTERIZED IN THAT the broadcast network comprises: a sorting network (41) responsive to input signals applied to the broadcast network for sorting the applied input signals based on the source addresses; and a copy network (42) for copying the information in the data fields of broadcast packets into the data field of blank packets having the same source address. 3. The system in accordance with claim 1 CHARACTERIZED IN THAT the broadcast network comprises: a concentrator (11) responsive to the signal channels for simultaneously steering those signals which are active to adjacent output ports of the concentrator; a first memory (44) responsive to the outputs of the concentrator for modifying the format of each of the signal packets by placing the source address subfield before the destination address subfield; OMPI a sorting network (41) connected to the first memory for sorting the signals applied to the sorting network based on the source addresses; a second memory (45) , responsive to the sorting network, for reversing the actions of the first memory; and the copy network (42) , responsive to the second memory, for copying the information in the data fields of broadcast packets into the data field of blank packets having the same source address. 4. The.system in accordance with claim 3 CHARACTERIZED IN THAT the broadcast network (40) further comprising: a blank packet generator (43) for generating blank packets and applying the blank packets to the concentrator. 5. The system in accordance with claim 3 CHARACTERIZED IN THAT the broadcast network (40) further comprising: a blank packet generator (43) responsive to a selected outgoing line of the system for generating blank packets and applying the blank packets to the concentrato . 6. The system in accordance with claim 1 CHARACTERIZED IN THAT the system further comprises: a demultiplexer (101) connected between the incoming lines and the broadcast network for demultiplexing time multiplexed signals on the incoming lines to form an alterable plurality of signal channels; and a plurality of multiplexers (104) connected between the output lines and the broadcast network for multiplexing the signals of a chosen number of the broadcast network output ports to form a time multiplexed signals onto the outgoing signal lines. 7. The system in accordance with claim 1 CHARACTERIZED IN THAT the system further comprises: a non-blocking space division switch (10) connected between the broadcast network and outgoing signal lines and having input ports and output ports is responsive to signals from the broadcast network (40) for simultaneously switching each of the signals to a switch output port (outgoing signal line) which is related to the destination address accompanying the data of the signals. 8. The. system in accordance with claim 7 . CHARACTERIZED IN THAT the non-blocking space division switch (10) comprises: a sorting network (12) responsive to the signals from the broadcast network (40) for switching each of the signals to adjacent output lines of the sorting network (12) ; and an expander interconnected between the sorting network (12) and the switch output ports is responsive to the sorting network (12) for simultaneously steering the output signals of sorting network (12) to the switch (10) output ports based on the destination addresses of the signals. OMPI

Inventors: HUANG ALAN, KNAUER SCOTT CARROLL, HUANG, ALAN, KNAUER, SCOTT, CARROLL
Applicants: AMERICAN TELEPHONE & TELEGRAPH, AMERICAN TELEPHONE & TELEGRAPH COMPANY
Application year: 1984
Main classification: H04J3
IPC codes: H04J3, H04L12, H04Q11