Abstract:
An apparatus and method for transferring data messages between a sending station and a receiving station through a plurality of switches in each stage and has a plurality of inputs and outputs. Each output of each switch is connected to one of the inputs on each switch in the next succeeding stage of the interconnect device. The sending station or terminal selects a plurality of routing messages, one routing signal for each stage of the MIN, and also sends a data message or signal to a selected receiving terminal. Each routing message is sacrificial and thus ends at the stage of the MIN where it actually operates on a switch. After all routing messages are sent, one for each stage of the MIN, a path exists to the receiving station and the data message or signal is transferred.

Description:
This is a continuation-in-part of U.S. application Ser. No. 08/110,365 now U.S. Pat. No. 5,371,621, filed on Aug. 23, 1993. 
    
    
     CROSS REFERENCE TO CO-PENDING APPLICATIONS 
     U.S. patent Ser. No. 07/958,148, filed Oct. 7, 1992, for EXTENDED DISTANCE FIBER OPTIC INTERFACE in the name of N. Patel and, U.S. patent Ser. No. 07/912 972 now U.S. Pat. No. 5,313,323, filed Jul. 10, 1992, for FIBER OPTIC BUS AND TAG ADAPTER FOR BLOCK MULTIPLEXER CHANNEL in the name of N. Patel are assigned to the assignee of the present invention and are incorporated herein by reference. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention generally relates to transfers of data between data origination stations and data reception stations through a network such as a multistage interconnect network and more particularly relates to transfers of data which may utilize a fiber optic transmission medium. 
     2. Description of the Prior Art 
     It has been known for some time to transfer digital data messages between a data origination or sending station and any one of a plurality of message receiving terminals through a message routing device. Those of skill in the art will be familiar with a number of systems which use electrical modes of data transfer. U.S. Pat. Nos. 4,975,906 and 5,144,622, issued to Takiyasu et al. discuss a local area network (LAN) approach. Somewhat more recently, optical media have been employed for the transmission of digital information. 
     U.S. Pat. No. 3,710,348, issued to Craft, discusses the design and use of standardized interconnect modules. Each of the modules provides circuitry for the conversion of signals to and from external transmission lines and to and from internal logic levels. The modules utilize internal storage arrays for buffering of data and provide circuitry for handling control signals which are transmitted separately from the data signals. Additional circuits are used to provide parity generation and checking features. 
     The major problems associated with the Craft technique result in relatively slow communication between the sender and receiver even though the standardized interface may yield some system level advantages. U.S. Pat. No. 5,168,572, issued to Perkins, gives the promise of greater speed by employing a technique suitable for use with optical media. The buffering feature is eliminated with the general purpose switching elements providing optical paths for multiple levels of switching. However, separate paths are required for control of the switching elements. Similarly, U.S. Pat. No. 4,731,878, issued to Vaidya teaches the need for separate electrical control circuitry to route optical data streams. 
     An alternative approach is shown in U.S. Pat. No. 5,175,777, issued to Boettle. With this technique, the data signals are transmitted over shared pathways using wavelength division multiplexing. However, separate signal paths are required for control signals with the implication that these paths are electrical in nature, which is similar to the Vaidya approach. The control and data information are packed into the same packets in the electrical system of U.S. Pat. No. 4,771,419, issued to Graves et al. Unfortunately, by packing the control and data information together, the entire message must be buffered within each of the switch elements to permit the switch element to unpack the routing information. This introduces significant delays into the transmission process and necessitates substantially more hardware to implement. U.S. Pat. No. 4,701,913, issued to Nelson, similarly requires buffering of the message. 
     SUMMARY OF THE INVENTION 
     The present invention overcomes disadvantages found in the prior art by providing an improved optical multi-stage self-routing interconnect apparatus and method which provides for the use of a system of data transfer apparatus which can select a data path between a sending and receiving station through its transfer network without the use of separate paths for control signals or buffering of the data. 
     A key feature of the present invention is the transfer of the switching control signals over the same information paths as the data signals. Significant amounts of hardware are eliminated in this fashion, because each connection thus requires only a single interface for both data transmission and control. This advantage is particularly beneficial when considering that the prevalent means for transferring control signals in the prior art employs the electrical medium even though the data may be transmitted optically. When used in non-blocking, multi-stage interconnect network (MIN), as in the preferred mode, this automatically ensures coincidence of control and data signal paths. 
     To implement the preferred mode of the present invention, switching control signals for routing are packed as sacrificial routing messages. These routing messages are utilized by the initial, intermediate, and terminal switch elements for routing of the associated data signals, with one routing message being dedicated to each stage within the routing path. The routing messages are sacrificial in that each is absorbed by the switching element at the corresponding stage without providing it to the next succeeding stage or the system user. The result appears transparent. Even though there is a slight amount of transmission path band pass consumed through transmission of the sacrificial routing packets, system band pass is not reduced, because the time required to activate the switch at each stage is overlapped by the transmission of the corresponding routing message. 
     Because of this overlap, the data message on the single data path is in effect delayed by an amount of time needed to complete the switching function at each stage. As a result, no buffering of the data is needed at any of the intermediate stages of the switching network. In this way the switching process occurs in real time at each stage. Sacrificing of the routing message at each stage effectively shortens the total transmission time to each of the succeeding stages. 
     In an exemplary three-stage non-blocking embodiment of the present invention, the MIN has three stages of switch elements wherein each stage comprises four switch elements. Each switch element includes four inputs and four outputs. For the first stage, each of the four inputs is coupled to a corresponding one of the four sending stations. For the second stage, each of the four inputs is coupled to a corresponding one of the four outputs of a corresponding one Of the four switch elements in the first stage. Similarly, for the third stage, each of the four inputs is coupled to a corresponding one of the four outputs of a corresponding one of the four switch elements in the second stage. Finally, each of the four outputs of the switch elements in the third stage is coupled to a corresponding one of the four receiving stations. Each switch element, therefore, may receive four independent sequences of switching control signals from four independent sources. 
     To determine which one of the four switching control signals is granted priority, an exemplary switch element has four decoders, a multiplexer, and an arbitrator circuit. Each of the four decoders is coupled to a corresponding one of the four inputs of the corresponding switch element and receives one of the four switching control signals. Each decoder decodes the sacrificial messages to determine; (1) whether a valid request is available to configure the switch for a data message; and (2) what the destination address is for the following data message. Each of the four decoders then supplies the decoded request to an OR gate and further to an arbitration circuit. Further, each of the four decoders supplies the decoded address to a Multiplexer (MUX). The OR gate ensures that whenever one or more requests are available, an arbitration process begins. The arbitration circuit determines the order in which the requests are to be serviced. The arbitration circuit then controls the MUX thereby selecting one of the four decoded addresses. The selected address is provided to a switch configuration table which then controls a photonic 4×4 crossbar switch. Each of the four inputs to the switch element are coupled to a corresponding one of four inputs on the 4×4 crossbar switch. The switch configuration table may be programmed with various routing algorithms to ensure that the message is sent to an appropriate one of the switch elements in the next stage of the apparatus. 
     As implemented in the preferred mode, the individual crossbar switching elements are active in nature. Therefore, the number of stages within the switch is not limited by transmission losses. However, each additional stage does add a corresponding propagation delay. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Other objects of the present invention and many of the attendant advantages of the present invention will be readily appreciated as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, in which like reference numerals designate like parts throughout the figures thereof and wherein: 
     FIG. 1 is a block diagram showing the basic apparatus of this invention; 
     FIG. 2 is a block diagram showing a multi-stage interconnect network (MIN) for use in this invention; 
     FIG. 3 is a diagram of an individual switch element of the type to be used in the MIN of FIG. 2; 
     FIG. 4 is a diagram of a message sending station; 
     FIG. 5 is a diagram of a message receiving station; 
     FIG. 6 is a block diagram of a three stage MIN illustrating the operation of the method and apparatus of this invention; 
     FIG. 7 is a schematic diagram showing the relationship between sacrificial routing messages and the corresponding data message; 
     FIG. 8 is a schematic diagram showing the relationship of the messages of FIG. 7 as routed through the MIN; 
     FIG. 9 is a time line diagram showing the correlation between the exemplary data messages and the associated sacrificial routing messages as they are routed through the exemplary three-stage MIN; and, 
     FIG. 10 is a detailed schematic diagram of an exemplary embodiment of the switch controller of FIG. 3. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     FIG. 1 is a block diagram of the apparatus of this invention showing a photonic multi-stage interconnect network (MIN) 10. Min 10 is connected to receive input signals for both routing and information messages from any one of a plurality of sending stations or terminals such as terminals 20, 21 and 23. A first sending station is shown at 20, a second station is shown at 21, and an nth station is shown at 23. MIN 10 is also connected to provide output signals for information messages to a plurality of receiving stations or terminals 30, 31 and 33. A first receiving station is shown at 30, a second station is shown at 31, and an nth receiving station is shown at 33. 
     As will be more fully described below, the routing signals received by MIN 10 from any one of stations 20, 21 and 23 are sacrificial control signal packets. These control signal packets are utilized by MIN 10 to route the associated data signals within MIN 10 and are then destroyed (i.e. not propagated beyond MIN 10). Thus the only signals presented by MIN 10 to a selected one of stations 30, 31 and 33 are information message signals. 
     FIG. 2 shows MIN 10 in block diagram form. Min 10 includes a plurality of switching stages, wherein each stage contains a plurality of switch elements. A first stage 40 includes a first switch element 41, a second element 42 and an nth element 43. A second stage 50 of MIN 10 includes a first element 51, a second element 52 and an nth element 53. A third stage 60 of MIN 10 includes a first element 61, a second element 62 and an nth element 63. 
     Each of switch elements 41-43, 51-53 and 61-63 has a plurality of input and output connections, more specifically described below and shown in FIG. 3. For example, in FIG. 2, line 44 depicts a connection between an output of one of the plurality of sending stations such as station 20 in FIG. 1 and one of the plurality of inputs of element 41 of stage 40. Line 45 depicts the connection of one of the plurality of outputs of element 41 routed to, for example, input line 56 connected to one of the plurality of inputs on element 52 of stage 50. Line 57 depicts the connection of one of the plurality of outputs on element 52 to, for example, input line 68 connected to one of the plurality of inputs on element 63 of stage 60. Finally, line 69 depicts a connection between one of the plurality of outputs on switch 63 and one of the receiving stations such as station 33 (see also FIG. 1). 
     The pattern for routing information messages through MIN 10 broadly described above is repeated in specific detail below and is more completely shown in FIG. 6. 
     FIG. 3 shows a block diagram of a switch element such as element 41 of FIG. 2. Element 41 includes a four-by-four crossbar switch 70. Preferably switch 70 is a 4×4 Active Photonic Crossbar Switch available from McDonnell Douglas Electronic Systems Company--Lasers and Electronic Systems, MC 111-1221, Box 516, St. Louis, Mo. 63134-0516. However, similar devices are available from Photonic Integrated Research, Inc., Allied Signal, Inc., and other similar suppliers. 
     Switch 70 has a plurality of inputs 71, 72, 73 and 74. Element 70 also has a plurality of outputs 75, 76, 77 and 78. Input 71 is connected to a decoder 81. Input 72 is connected to a decoder 82. Input 73 is connected to a decoder 83. Input 74 is connected to a decoder 84. Each of decoders 81-84 is connected to the input of a switch controller 85 via interfaces 81A-84A, respectively. Controller 85 is connected to crossbar switch 70 via interface 85A. Decoders 81-84 covert the control signals of the sacrificial packets into electrical signals for use by switch controller 85. 
     When an operator of one of sending stations 20, 21 or 23 decides on a routing path, the routing signals appear on one of inputs 71-74 of switch 70, and thus at the corresponding one of decoders 81-84. The decoded output signal is presented to controller 85 as an electrical signal, which responds to the decode algorithm by controlling switch 70 and selecting the desired one or more outputs 75-78. The operator of the sending station will have also sent information message signals to the selected of inputs 71-74, and when switch 70 is turned on by controller 85 these message signals will pass through to the selected output(s) 75-78 to be directed to the corresponding input of one or more receiving stations 30, 31 or 33. The routing messages may involve the simple addition of a one of four address to the normal message initiation and termination codes associated with the particular protocol in use as suggested by the above cited prior art documents incorporated herein by reference. 
     FIG. 4 shows a block diagram of the internal structure of sending station 20. Station 20 includes a User&#39;s input station 65 which can be any one of several devices, such as a computer, with which the User can enter his information message and select a receiving station such as station 33. The User&#39;s input is sent by station 65 to a network interface unit 80 which comprises a route control device 86, a message queue device 87 and a message buffer 88. 
     If a path to the selected receiving station has already been established, the message from station 65 passes straight through message buffer 88 and MIN 10 to the selected receiving station. If the desired path does not currently exist, or if a path is established to an unselected receiving station, then the data message from station 65 is entered into the message queue device 87 and route control device 86 is activated to provide a path to the selected receiving station. The routing algorithm to be used is determined by switch controller 85. Such routing algorithms are readily known in the art for routing signals through non-blocking, multi-stage switching networks. The type of routing algorithm used is determined by the network application requirements. Control device 86 generates a number of sacrificial routing messages equal to the number of switching stages. FIG. 2 shows a three stage MIN and therefore three sacrificial routing messages would be used to establish a path from a sending station to a receiving station. These sacrificial routing messages are packed into a sacrificial routing packet immediately preceding the desired message. This combined message is then serially passed through output line 25 to a corresponding input of MIN 10. The passage of these messages through MIN 10 is described in detail in the discussion of FIG. 6, below. 
     FIG. 5 shows a typical receiving station 30 which includes a User&#39;s readout station 90, such as a computer, a message queue device 91, and a message buffer 92. When a message has completed a path through MIN 10, it will be sent on output line 35 to station 30. Note that only the data message arrives at line 35 because the apparatus of this invention uses sacrificial routing signals, as is more fully described in the discussion of FIG. 6, below. Yet only the data portion of the message is actually received by receiving station 30. The message on line 35 will be placed into buffer 92 where it can be read directly to User&#39;s station 90, or can be read to message queue device 91 for later viewing by the User. 
     FIG. 6 shows a three stage example of multi-stage interconnect network (MIN) 10. MIN 10 in this example has three stages with four switch elements in each stage. A first stage 100 includes switch elements 141,142, 143 and 144, a second stage 102 includes switch elements 151, 152, 153 and 154, and, a third stage 103 includes switch elements 161, 162, 163 and 164. Each individual switch element is fabricated and operates as was discussed for switch 70 (see also FIG. 3 and FIG. 10). 
     To illustrate how the apparatus of this invention functions to provide access through an interconnect device, such as MIN 10, from one of a plurality of input terminals or stations such as station 20 to any one of a plurality of receiving terminals or stations such as station 33, assume that an operator at station 20 desires to send a data message to station 33. First, station 20 sends the sacrificial routing packet to stage 100 via line 121 to MIN 10. This will result in switch element 141 making a connection through line 122 to switch element 152 in stage 102. In the process of making this connection, the first sacrificial routing message within the serial packet is absorbed by first stage 100 of the MIN. By allowing the absorption of this routing message, the switch elements (see also FIG. 3) are not required to buffer and forward messages for routing purposes. The specific intermediate connections are determined by the routing algorithm used (see also FIG. 3). 
     Once the first sacrificial routing message has established a connection to stage 102, the sacrificial routing packet from station 20 containing a second stage 102 routing message travels via line 122 to switch element 152, causing element 152 to make a connection through line 123 to switch element 164. The third routing message within the sacrificial routing packet from station 20 will then be present at third stage 103 on line 123. This last stage 103 routing message will result in switch element 164 making the final connection through line 125 to receiving station 33. When this final connection has been made, the data packet portion of the transmission travels from the user at station 20 directly to receiving station 33 along lines 121, 122, 123, and 125, which also conveyed the control information. 
     It should be noted that in the apparatus of this invention the number of routing messages (sometimes called switch configuration messages) required is equal to the number of stages in the multi-stage interconnect network (MIN). Each of the routing messages causes a connection through a single stage, and each routing message is sacrificial, thus transmission of a routing message ends at the stage of the MIN where it actually operates on a switch element. Further, there is no requirement for the queuing and retransmission of any routing message. 
     It should also be noted that though the above example of FIG. 6 operation utilized three stages in MIN 10, the same operational principles will apply to multi-stage interconnect networks having a different number of stages. For each stage of an MIN only one routing message or switch configuration message is required. Since each of these routing messages is sacrificial and they are used only to configure a path through the MIN, these messages will never appear at the receiving station. 
     FIG. 7 is a schematic diagram 170 showing the arrangement of data message 174 in relationship to routing messages 171, 172, and 173 for the three stage switching system of MIN 10 (see also FIG. 6). Each of routing messages 171,172, and 173 is a separate message containing a switch position definition as its only data element. 
     For the example shown in FIG. 6, the entire four message packet is serially presented to MIN 10 via line 121 (see also FIG. 6). Routing message 171 causes switch element 141 to choose line 122 for routing to switch element 152. Similarly, routing messages 172 and 173 cause switch elements 152 and 164 to select lines 123 and 125, respectively. As each routing message is sacrificed at the corresponding switch element, the result is that data message 174 is output from MIN 10 via line 125. 
     FIG. 8 is a schematic diagram similar to that of FIG. 7 showing what is actually switched on the various lines of MIN 10 (see also FIG. 6). The input to MIN 10 via line 121 contains data message 174, along with routing messages 171, 172, and 173. The output of MIN 10 via line 125 is only data message 174, as shown. 
     FIG. 9 is a time line diagram showing the correlation between the exemplary data messages and the associated sacrificial routing messages as they are routed through the exemplary three-stage MIN 10. The timing line diagram is generally shown at 198. A single data message 200 is generated by a sending station 20 (see FIG. 4) with a first sacrificial routing messages C1 206, a second sacrificial routing message C2 204, and a third sacrificial routing message C3 202 appended thereto forming a message stream. In the exemplary embodiment, the message stream enters the first stage of the three stage MIN 10 at input 121 of FIG. 6. Internal to switch element 141 (see FIG. 6), the C1 message 206 may be decoded via decoder 82, and routed into switch control 85 (see FIG. 3). Switch control 85 configures the 4×4 crossbar switch 70 via interface 85A in accordance with C1 message 206. 
     Referring back to FIG. 9, the crossbar switch configuration command is shown as S1 208. The timing for this configuration command may be such that the switch element 141 (see FIG. 6) may be configured with a path from 121 to 122, for example, before the second sacrificial message C2 204 is available on 121. That is, it is desirable to have the crossbar switch command S1 208 to be completed by time 228, before the second sacrificial message C2 204 is initiated. This allows C2 204, C3 202, and Data 200 to pass directly through switch element 141. In a preferred embodiment, switch element 141 comprises a crossbar switch which allows optical communication between input 121 and output 122 thereby increasing the transmission speed. 
     The Stage-2 message stream as shown at 216 comprises C2 204, C3 202, and Data 200. In an exemplary embodiment, this message steam enters the second stage of the three stage MIN at input 122 of FIG. 6. The second sacrificial message passes through switch element 141 to switch element 152. Internal to switch element 152, C2 message 204 is decoded via decoder 81, and routed into switch control 85 (see FIG. 3). Switch control 85 configures the 4×4 crossbar switch 70 via interface 85A in accordance with the second sacrificial message C2 204. 
     Referring back to FIG. 9, the crossbar switch configuration command is shown as S2 210. The timing for this configuration command may be such that switch element 152 (see FIG. 6) may be configured with a path from 122 to 123, for example, before the third sacrificial message C3 202 is available on 122. That is, it is desirable to have the crossbar switch command S2 210 to be completed by time 232, before the third sacrificial message C3 202 is initiated. This allows C3 202, and Data 200 to pass directly through switch element 152. 
     The Stage-3 message stream as shown at 218 comprises C3 202, and Data 200. In an exemplary embodiment, this message steam enters the third stage of the three stage MIN at input 123 of FIG. 6. The third sacrificial message passes through switch element 141, switch element 152, and to switch element 164. Internal to switch element 164, C3 message 202 is decoded via decoder 81, and routed into switch control 85 (see FIG. 3). Switch control 85 configures the 4×4 crossbar switch 70 via interface 85A in accordance with the third sacrificial message C2 204. 
     Referring back to FIG. 9, the crossbar switch configuration command is shown as S3 212. The timing for this configuration command may be such that switch element 164 (see FIG. 6) may be configured with a path from 123 to 125, for example, before Data 200 is available on 123. That is, it is desirable to have the crossbar switch command S3 212 to be completed by time 236, before Data 200 is initiated. This allows Data 200 to pass directly through switch elements 141, 152, and 164. 
     FIG. 10 is a detailed schematic diagram of an exemplary embodiment of switch controller 85 of FIG. 3. Referring to FIG. 3, decoders 81-84 of switch 41 decode sacrificial messages on inputs 71-74, respectively, to determine; (1) whether a valid request is available on the corresponding input to configure the switch for a data message, and (2) what is the destination address of the following data message. The outputs from decoders 81-84 are coupled to switch controller 85 via interfaces 81A-84A, respectively. 
     Referring to FIG. 10, each of the decoders 81-84 provide an address and a request signal to switch controller 85. That is, decoder 81 provides an address 250 and a corresponding request 252 via interface 81A. Decoder 82 provides an address 254 and a corresponding request 256 via interface 82A. Decoder 83 provides an address 258 and a corresponding request 260 via interface 83A. Finally, decoder 84 provides an address 262 and a corresponding request 264 via interface 84A. 
     Requests 252,256, 260, and 264 are coupled to an OR gate 268. Further, requests 252, 256, 260, and 264 are coupled to an arbitrator circuit 266. OR gate 268 is coupled to arbitrator circuit 266 such that when any one or more of the request signals is active, OR gate 268 elicits arbitrator circuit 266 to begin an arbitration process. Arbitrator circuit 266 determines which input is given priority to crossbar switch 70 (see FIG. 3). The arbitration scheme used by arbitrator circuit 266 is application dependent and may be programmed as desired. 
     Once arbitrator circuit 266 has selected a requestor, an output is sent to an address Multiplexer 272. Address inputs 250, 254, 258, and 262 are coupled to address Multiplexer 272. Arbitrator circuit 266 controls address Multiplexer 272 such that the address that corresponds to the selected request is selected by address Multiplexer 272 and provided to switch configuration table 276. Switch configuration table 276 uses the selected address to and a predetermined routing algorithm to determine how to configure crossbar switch 70 in order to correctly route the corresponding message to the next stage of MIN 10. Switch configuration table 276 provides a command via interface 85A to crossbar switch 70 thereby providing a communication path from the selected input (71, 72, 73, or 74) to the appropriate output (75, 76, 77, or 78). The routing algorithm used in switch configuration table 276 are readily known in the art for routing signals through non-blocking, multi-stage switching networks. The type of routing algorithm used is determined by the network application requirements. As stated in the discussion of FIG. 9, it is preferred that the time to perform the switching operation is such that the switch is configured before the next sacrificial message or data message is transmitted. Because the this, the switch elements 41 of the present invention do not need to buffer the sacrificial messages or data messages therein. 
     The present invention increases the speed of the switch matrix because the transmission of the data message is only subject to the delay associated with passing through the switch elements themselves. In prior art systems that require the buffering of data, the transmission of the data message through the switch matrix is subject to additional memory delays. In addition, because no buffering is required in the present invention, the amount and complexity of the hardware required is also minimized. 
     Having thus described the preferred methods and embodiments of the present invention, those of skill in the art will readily appreciate the other useful embodiments within the scope of the claims hereto attached.