Patent Description:
In some systems, processing elements may exchange signals with each other to communication results, outputs or other information. For instance, operations performed by a particular processing element of a system may be output to another processing element. In some cases, the other processing element may be at another physical location of the system, such as on a different processor board. Communication between elements in such scenarios may be challenging due to any number of factors. As an example, the number of processing elements in the system may be high or may increase and the number of required exchanges is even higher, increasing as the square of the number of processing elements. As another example, delays in communication of information between processing elements may affect system performance. Accordingly, there is a general need for systems and methods to enable rapid signal switching between large numbers of processing elements in these and other scenarios.

<CIT> discloses a network of optical links interconnecting nodes with switching elements that are controlled by electrical control signals. Data transmission is along the optical links and an optical pathway is determined by the electrical control signals which are launched ahead of optical signal.

<CIT> discloses a low-latency switch using optical and electrical proximity communication, in which switching elements are configured to selectively couple the input ports to the output ports via optical signal paths based on the flow-control information.

<CIT> discloses a method for routing optical data comprising transmitting optical addressing data to a first network element having routing capabilities, assigning an appropriate optical link connecting the first network element with a second network element where the assignment is based on the optical addressing data, and transmitting the optical data via the assigned optical link.

In one aspect there is provided in the following optical data switching circuitry, comprising: a processing element configured to generate a plurality of optical signals; and an optical switch, configured to: transmit the optical signals to a fiber optic router for relay to different destinations; switch between transmission locations for transmission of the optical signals over different optical connections for the destinations, the optical connections between the optical switch and different receiving ports of the fiber optic router, receive a plurality of inbound optical signals from the fiber optic router for relay to the processing element; and switch between receive directions for the reception of the inbound optical signals over different inbound optical connections between the optical switch and different transmitting ports of the fiber optic router, wherein: the transmission locations are switched sequentially in accordance with a predetermined mapping between the receiving ports and the destinations to achieve sequential transmission of the optical signals in non-overlapping time periods between the receiving ports and the destinations, the receive directions are switched sequentially in accordance with a predetermined mapping between the transmitting ports and a group of sources of the inbound optical signals to achieve sequential transmission of the optical signals in non-overlapping time periods between the transmitting ports (<NUM>) and a group of sources of the inbound optical signals, and the inbound optical signals are received over the inbound optical connections in accordance with a free space optical coupling between the transmitting ports and the optical switch.

The following description and the drawings sufficiently illustrate specific embodiments to enable those skilled in the art to practice them. Other embodiments may incorporate structural, logical, electrical, process, and other changes. Portions and features of some embodiments may be included in, or substituted for, those of other embodiments. Embodiments set forth in the claims encompass all available equivalents of those claims.

<FIG> illustrates an example of a computing device in accordance with some embodiments. It should be noted that embodiments are not limited to the example computing device <NUM> shown in <FIG>, in terms of number, type and/or arrangement of components. Some embodiments may not necessarily include all components shown in the example computing device <NUM>. Some embodiments may include additional components not shown in the example computing device <NUM>. In some embodiments, one or more components may be used in place of one or more components shown in the example computing device <NUM> and may provide same or similar functionality to components shown in the example computing device <NUM>.

The example computing device <NUM> may include any number of modules, such as the first module <NUM> and the second module <NUM>. It should be noted that embodiments are not limited to two modules <NUM>, <NUM>, as any suitable number of modules may be included in the computing device <NUM>. The first module <NUM> may include an optical switch <NUM> and one or more processing elements <NUM>-<NUM>, which may be connected through interface circuitry (such as <NUM>) which may include optical circuitry, waveguides, wires and/or a combination thereof. It should be noted that embodiments are not limited to the examples of connectivity shown between processing elements <NUM>-<NUM> or between the optical switch <NUM> and the processing elements <NUM>-<NUM>. The first module <NUM> may also include additional components. In accordance with some embodiments, the optical switch <NUM> may exchange optical signals with the fiber optic router <NUM>. These embodiments will be described in more detail below.

The second module <NUM> may include an optical switch <NUM>, one or more processing elements (such as <NUM>, <NUM> and/or others) and/or other components. In some embodiments, the optical switch <NUM> may exchange optical signals with the fiber optic router <NUM>, as will be described herein. The fiber optic router <NUM> may also exchange optical signals with any suitable number of other modules and/or components, in some embodiments.

As used herein, the term "circuitry" may refer to, be part of, or include optical components, an optical circuit, an Application Specific Integrated Circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group), and/or memory (shared, dedicated, or group) that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable hardware components that provide the described functionality. Embodiments described herein may be implemented into a system using any suitably configured hardware and/or software.

<FIG> illustrates an example of optical data switching circuitry in accordance with some embodiments. The optical data switching circuitry <NUM> may include one or more processing elements <NUM> and one or more optical switches <NUM>, in some embodiments. Referring to <FIG>, the optical switch <NUM> and the processing elements <NUM>-<NUM> may be included as part of the optical data switching circuitry <NUM> included in the first module <NUM>, in some cases. Similarly, the optical switch <NUM> and the processing elements <NUM> and <NUM> may be included as part of an optical data switching circuitry included in the second module <NUM>, in some cases. The optical data switching circuitry <NUM> may also include memory <NUM> in some embodiments, which may be used by the optical data switching circuitry <NUM> as part of the performance of some of the operations described herein. The optical data switching circuitry <NUM> may also include one or more interfaces <NUM> in some embodiments, which may enable communication between components of the optical data switching circuitry <NUM>. In some embodiments, the interfaces <NUM> may enable communication between one or more components of the optical data switching circuitry <NUM><NUM><NUM> and one or more external components. The interfaces <NUM> may include wired interfaces, optical interfaces, waveguides or a combination thereof, in some embodiments.

<FIG> illustrates a block diagram of an example machine in accordance with some embodiments. Any one or more of the techniques (e.g., methodologies) discussed herein may be performed on such a machine <NUM>, in some embodiments. In some embodiments, the machine <NUM> may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile device, a base station, an access point (AP) arranged to operate in accordance with an IEEE <NUM> protocol and/or a wireless local area network (WLAN) protocol, a station (STA) arranged to operate in accordance with an IEEE <NUM> protocol and/or a wireless local area network (WLAN) protocol, a User Equipment (UE) arranged to operate in accordance with a Third Generation Partnership Project (3GPP) protocol (including Long Term Evolution (LTE) protocols), an Evolved Node-B (eNB) arranged to operate in accordance with a 3GPP protocol (including LTE protocols), a mobile telephone, a smart phone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine.

As a non-limiting example, a module may include a group of components connected to (permanently, temporarily and/or semi-permanently) a circuit board, processor board and/or other medium.

Machine (e.g., computer system) <NUM> may include a hardware processor <NUM> (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), a main memory <NUM> and a static memory <NUM>, some or all of which may communicate with each other via an interconnect (e.g., bus) <NUM>. In some embodiments, components of the machine <NUM> may communicate with each other via optical interfaces, waveguides and/or other circuitry configured to exchange optical signals. In some embodiments, the interconnect <NUM> may be configured to communicate optical signals and/or other signals between components of the machine <NUM>.

The machine <NUM> may include an output controller <NUM>, such as a serial (e.g., universal serial bus (USB), parallel, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection to communicate or control one or more peripheral devices (e.g., a printer, card reader, etc.).

The term "machine readable medium" may include any medium that is capable of storing, encoding, or carrying instructions for execution by the machine <NUM> and that cause the machine <NUM> to perform any one or more of the techniques of the present disclosure, or that is capable of storing, encoding or carrying data structures used by or associated with such instructions. Non-limiting machine readable medium examples may include solid-state memories, and optical and magnetic media. Specific examples of machine readable media may include: non-volatile memory, such as semiconductor memory devices (e.g., Electrically Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM)) and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; Random Access Memory (RAM); and CD-ROM and DVD-ROM disks. In some examples, machine readable media may include non-transitory machine readable media. In some examples, machine readable media may include machine readable media that is not a transitory propagating signal.

The instructions <NUM> may further be transmitted or received over a communications network <NUM> using a transmission medium via the network interface device <NUM> utilizing any one of a number of transfer protocols (e.g., frame relay, internet protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), etc.). Example communication networks may include a local area network (LAN), a wide area network (WAN), a packet data network (e.g., the Internet), mobile telephone networks (e.g., cellular networks), Plain Old Telephone (POTS) networks, and wireless data networks (e.g., Institute of Electrical and Electronics Engineers (IEEE) <NUM> family of standards known as Wi-Fi®, IEEE <NUM> family of standards known as WiMax®), IEEE <NUM>. <NUM> family of standards, a Long Term Evolution (LTE) family of standards, a Universal Mobile Telecommunications System (UMTS) family of standards, peer-to-peer (P2P) networks, among others. In an example, the network interface device <NUM> may include one or more physical jacks (e.g., Ethernet, coaxial, or phone jacks) or one or more antennas to connect to the communications network <NUM>. In an example, the network interface device <NUM> may include a plurality of antennas to wirelessly communicate using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) techniques. In some examples, the network interface device <NUM> may wirelessly communicate using Multiple User MIMO techniques. The term "transmission medium" shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine <NUM>, and includes digital or analog communications signals or other intangible medium to facilitate communication of such software.

It should be noted that in some embodiments, optical data switching circuitry may include some or all of the components shown in either <FIG> or <FIG> or both. It should also be noted that in some embodiments, a computing device may include some or all of the components shown in either <FIG> or <FIG> or both. In some embodiments, a device (such as the example devices described above and/or others) may include one or more components shown in <FIG> and/or <FIG> and/or <FIG>. For instance, in some embodiments, a mobile device may include some components of <FIG> and some components of the optical data switching circuitry <NUM>, which may be arranged in a manner similar to the arrangement shown in <FIG>.

Although the computing device <NUM>, the optical data switching circuitry <NUM>, and the machine <NUM> are illustrated as having several separate functional elements, one or more of the functional elements may be combined and may be implemented by combinations of software-configured elements, such as processing elements including digital signal processors (DSPs), and/or other hardware elements. For example, some elements may comprise one or more microprocessors, DSPs, field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), radio-frequency integrated circuits (RFICs) and combinations of various hardware and logic circuitry for performing at least the functions described herein. In some embodiments, the functional elements may refer to one or more processes operating on one or more processing elements. Embodiments may be implemented in one or a combination of hardware, firmware and software. Embodiments may also be implemented as instructions stored on a computer-readable storage device, which may be read and executed by at least one processor to perform the operations described herein. A computer-readable storage device may include any non-transitory mechanism for storing information in a form readable by a machine (e.g., a computer). For example, a computer-readable storage device may include read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, and other storage devices and media. Some embodiments may include one or more processors and may be configured with instructions stored on a computer-readable storage device.

It should be noted that in some embodiments, an apparatus used by optical data switching circuitry may include various components of the optical data switching circuitry <NUM> shown in <FIG> and/or the computing device shown in <FIG> and/or the example machine <NUM> shown in <FIG>. Accordingly, in some cases, techniques and operations described herein that refer to the optical data switching circuitry <NUM> may be applicable to an apparatus for optical data switching circuitry. In some embodiments, an apparatus for a computing device may include various components of the computing device <NUM> shown in <FIG> and/or optical data switching circuitry <NUM> shown in <FIG> and/or the example machine <NUM> shown in <FIG>. Accordingly, in some cases, techniques and operations described herein that refer to the computing device <NUM> may be applicable to an apparatus for a computing device.

In accordance with some embodiments, a processing element <NUM> of the optical data switching circuitry <NUM> may generate a plurality of optical data signals, and may send the optical data signals to an optical switch <NUM> of the optical data switching circuitry <NUM>. The optical switch <NUM> may transmit the optical signals to a fiber optic router <NUM> for relay to different destinations. The optical switch <NUM> may switch between transmission directions for transmission of the optical signals to different receiving ports of the fiber optic router <NUM>. The receiving ports of the fiber optic router <NUM> may be mapped to the different destinations, in some cases. These embodiments will be described in more detail below.

<FIG> illustrates the operation of a method of communication in accordance with some embodiments. In some embodiments, the method <NUM> may be performed by optical data switching circuitry such as <NUM>, although embodiments are not limited as such and the method <NUM> may be performed by other devices and/or components in some embodiments. In some embodiments, operations of the method <NUM> may be performed by components such as optical switches (such as <NUM>, <NUM>, <NUM> or other) and/or processing elements (such as <NUM>-<NUM>, <NUM>-<NUM>, <NUM> or other). Those components may be included in optical data switching circuitry (such as <NUM> or other) in some embodiments, although embodiments are not limited as such. In descriptions herein of techniques and/or operations, references may be made to components of either the first module <NUM> and/or second module <NUM>. Such references are not limiting, however, as the techniques and/or operations may be performed by other components (such as components shown in any of <FIG>), in some embodiments. In addition, references may be made herein to the fiber optic router <NUM>, but it is understood that these references are not limiting. Accordingly, some operations and/or techniques described herein may be performed using one or more fiber optic routers in a different arrangement than the arrangement shown in <FIG>, in some embodiments.

It is important to note that embodiments of the method <NUM> may include additional or even fewer operations or processes in comparison to what is illustrated in <FIG>. In addition, embodiments of the method <NUM> are not necessarily limited to the chronological order that is shown in <FIG>. In describing the method <NUM>, reference may be made to <FIG> and <FIG>, although it is understood that the method <NUM> may be practiced with any other suitable systems, interfaces and components.

It should also be noted that the method <NUM> may be applicable to an apparatus for optical data switching circuitry, an apparatus for an optical switch, an apparatus for a processing element, an apparatus for a liquid crystal waveguide, an apparatus for a fiber optic router and/or an apparatus for another component, in some embodiments. In some embodiments, the modules <NUM>, <NUM> (and/or components of those modules) and the fiber optic router <NUM> may operate as part of a system such as a computing device, computer, super-computer, exascale computer, switch, router, mobile device and/or other device. In some embodiments, the computing device <NUM> may be or may operate as part of a computer, super-computer, exascale computer, switch, router, mobile device and/or other device. Embodiments are not limited to these examples, however.

At operation <NUM> of the method <NUM>, a processing element <NUM> may generate one or more optical signals. At operation <NUM>, the optical switch <NUM> may determine transmission directions to be used for transmissions of optical signals, such as optical signals that may be received from the processing element <NUM> at operation <NUM>. In some embodiments, it may be necessary for operation <NUM> to be performed before operation <NUM>. The intended transmission direction(s) for the optical signals may need to be determined and/or known by the optical switch <NUM> before the optical signals arrive at the optical switch <NUM> due to the speed of light.

In some embodiments, the optical switch <NUM> may determine transmission locations to be used for the transmissions of the optical signals. For instance, locations of the fiber optic router <NUM> may be mapped to different destinations. Accordingly, references herein to transmission in accordance with different directions are not limiting. The optical switch <NUM> may switch between transmission locations to transmit the optical signals to the different receiving ports of the fiber optic router <NUM>, in some embodiments.

It should be noted that embodiments are not limited to usage of optical switches, as a liquid crystal waveguide, other waveguide and/or other components may be used in some embodiments. Accordingly, operations and/or techniques may be described herein with references to an optical switch (such as <NUM>, <NUM>, <NUM>), but it is understood that such references are not limiting, and the operations and/or techniques may also be performed using a liquid crystal waveguide, other waveguide and/or other components, in some embodiments.

In some embodiments, the optical signals may be sent by the processing element <NUM> to the optical switch <NUM> for relay to one or more destinations, such as other components that may or may not be included in the optical data switching circuitry <NUM>. As a non-limiting example, the destination may include another processing element <NUM> that may be included as part of a different optical data switching circuitry, in some cases. For instance, the processing element <NUM> that generates the optical signals may be part of the first module <NUM> (such as a processor board, circuit board or other) and the destination may be a processing element <NUM> that is part of a second module <NUM>.

It should be noted that embodiments are not limited to a single processing element <NUM>, as the optical switch <NUM> may receive one or more optical signals from multiple processing elements (such as <NUM>, <NUM> or other) included in the optical data switching circuitry <NUM>, in some embodiments. In addition, embodiments are also not limited to a single optical switch <NUM>, as the optical data switching circuitry <NUM> may include multiple optical switches <NUM>, in some embodiments.

<FIG> illustrates example flows of optical signals in accordance with some embodiments. The processing element <NUM> may generate a plurality of optical data signals (such as <NUM>, <NUM> and/or additional signals) and may send them to the optical switch <NUM> to be transmitted to the fiber optic router <NUM> for relay to different destinations. As indicated by <NUM>, at a first time, a first optical data signal <NUM> may be sent to the optical switch <NUM> and may be transmitted by the optical switch <NUM> to the fiber optic router <NUM> in accordance with a first transmission direction <NUM>. The fiber optic router <NUM> may relay the first optical data signal <NUM> to a first destination, as indicated by <NUM>. As indicated by <NUM>, at a second time, a second optical data signal <NUM> may be sent to the optical switch <NUM> and may be transmitted by the optical switch <NUM> to the fiber optic router <NUM> in accordance with a second transmission direction <NUM>. The fiber optic router <NUM> may relay the second optical data signal <NUM> to a second destination, as indicated by <NUM>. This example may be extended to any suitable number of optical data signals, times, transmission directions, and destinations. In some embodiments, the optical switch <NUM> may switch between the transmission directions (<NUM>, <NUM> and/or others) for transmission of the optical data signals (<NUM>, <NUM> and/or others) to different receiving ports of the fiber optic router <NUM>. The receiving ports of the fiber optic router <NUM> may be mapped to different destinations, in some cases.

In some embodiments, the optical signals may be based on one or more computed results, outputs or other information that are to be communicated to a destination. In some cases, the processing element <NUM> may perform one or more computations, may produce one or more outputs, may determine one or more values and/or may perform other operations to generate the optical signal. The optical signal may be based on such computations, outputs and/or values and may also include control information in some cases. The control information may be related to the destination of the optical signal, a route for the optical signal and/or other parameters related to the optical signal. Embodiments are not limited by these examples, however. In some cases, the processing element <NUM> may receive an optical signal from another component for forwarding and may or may not process the received optical signal before forwarding.

At operation <NUM>, the optical switch <NUM> may transmit, in accordance with the transmission directions, the optical signals to the fiber optic router <NUM>. The optical switch <NUM> may switch between the transmission directions to transmit the optical signals at operation <NUM>. In some embodiments, the optical signals may be transmitted to the fiber optic router <NUM> for relay to one or more destinations. In some embodiments, the optical switch <NUM> may switch between transmission locations to transmit the optical signals.

It should be noted that embodiments are not limited to usage of fiber optic routers. In some embodiments, another router and/or other component may be used. As an example, a system of mirrors and/or a router that includes one or more mirror components may be used. Accordingly, some operations and/or techniques may be described herein with references to a fiber optic router, but it is understood that such references are not limiting, and the operations and/or techniques may also be performed using other routers and/or components, in some embodiments.

In some embodiments, the transmission directions may be used to transmit the optical signals to different receiving ports of the fiber optic router <NUM>. In some embodiments, transmission directions between the optical switch <NUM><NUM> (such as a transmitting port of the optical switch <NUM>) and corresponding receiving ports of the fiber optic router <NUM> may be used by the optical switch <NUM> for directional transmissions. The receiving ports may be mapped to the destinations of each optical signal, in some cases. Accordingly, transmission to a particular destination may be performed by using a directional transmission to a particular receiving port that is allocated for and/or mapped to communication between the optical switch <NUM> and the particular destination. Different receiving ports may be allocated for and/or mapped to communication between the optical switch <NUM> and different destinations. The optical switch <NUM> may communicate with the different destinations by transmitting to the corresponding receiving ports for those different destinations, in some cases. In some embodiments, an optical connection between the optical switch <NUM> and the particular receiving port may be used for the communication between the optical switch <NUM> and the particular destination. Multiple optical connections for the different destinations may enable the optical switch <NUM> to communicate with the different destinations, in some cases.

For transmission of multiple optical signals to multiple destinations, the optical switch <NUM> may switch between transmission directions, in some embodiments. Accordingly, the transmission directions may be switched in accordance with a relationship (such as a predetermined mapping or other mapping) between the receiving ports and the destinations. The transmission directions may be switched to enable the optical switch <NUM> to transmit to different receiving ports and/or to aim the transmission at the different receiving ports. As a non-limiting example, the transmissions of the multiple optical signals to the multiple destinations may include sequential transmissions performed in non-overlapping time periods, in some cases.

In some embodiments, the optical switch <NUM> may be optically coupled to the fiber optic router <NUM>. As an example, a transmitting port of the optical switch <NUM> may be optically coupled to receiving ports of the fiber optic router <NUM>. Accordingly, multiple optical connections (which may be represented by <NUM> in <FIG>) between the transmitting port of the optical switch <NUM> and the receiving ports of the fiber optic router <NUM> may be used for communication. In addition, in some embodiments, a receiving port of the optical switch <NUM> may be optically coupled to transmitting ports of the fiber optic router <NUM>, and optical connections between the receiving port of the optical switch <NUM> and the transmitting ports of the fiber optic router <NUM> may be used for communication. The optical coupling may include free space optical coupling, in some embodiments.

In some embodiments, the optical switch <NUM> may steer transmitted optical signals and/or beams between the receiving ports of the fiber optic router <NUM>, in some embodiments. Accordingly, the optical switch <NUM> may steer transmitted optical signals and/or beams between different optical connections between the optical switch <NUM> and the receiving ports of the fiber optic router <NUM>, in some cases. In some embodiments, the optical switch <NUM> may switch between the transmission directions for the transmission of the optical signals over different optical connections between the optical switch <NUM> and different receiving ports of the fiber optic router <NUM>, in some embodiments. The optical signals may be steered and/or transmitted over the optical connections in accordance with a free space optical coupling between the receiving ports and the optical switch <NUM>, in some embodiments.

The optical switch <NUM> may steer transmitted optical signals and/or beams between the receiving ports, in some embodiments. The optical switch <NUM> may switch between the transmission directions for the transmission of the optical signals over different optical connections between the optical switch <NUM> and different receiving ports of the fiber optic router <NUM>, in some embodiments. The optical signals may be transmitted over the optical connections in accordance with a free space optical coupling between the receiving ports and the optical switch <NUM>, in some embodiments.

In some embodiments, the receiving ports may be mapped to different destinations. Such a mapping may be a predetermined mapping or a mapping done at the fiber optic router <NUM>, in some cases. As an example, a first receiving port of the fiber optic router <NUM> may be used by the fiber optic router <NUM> to receive a first optical signal from the optical switch <NUM> for relay to a first destination. The fiber optic router <NUM> may route the received first optical signal to a particular transmitting port of the fiber optic router <NUM> that is mapped as a transmitting port for transmission of optical signals to the first destination (or another optical switch that may relay the optical signals to the first destination). For instance, the first destination may be the processing element <NUM> of the second module <NUM>, and the fiber optic router <NUM> may transmit the first optical signal to the optical switch <NUM> for relay to the processing element <NUM>.

Continuing the previous example, a second receiving port of the fiber optic router <NUM> may be used in a similar manner by the fiber optic router <NUM> to transmit optical signals from the optical switch <NUM> to a second destination (or to another optical switch for relay to the second destination). Additional receiving ports may be allocated in a similar manner to enable communication of optical signals from the optical switch <NUM> to any suitable number of destinations.

As another example, other receiving ports of the fiber optic router <NUM> may be used in a similar manner to communicate optical signals from other optical signals to various destinations. As a non-limiting example, the fiber optic router <NUM> may be configured to relay optical signals between any combination of four modules, A-D, each of which may comprise an optical switch and one or more processing elements. The first module A (which may be the first module <NUM> in <FIG>) may communicate optical signals to B, C or D. Accordingly, the fiber optic router <NUM> may allocate a receiving port for communication from A to B (which may be the second module <NUM> in <FIG>), a receiving port for communication from A to C, and a receiving port for communication from A to D. Similarly, the fiber optic router <NUM> may allocate a receiving port for communication from B to A, a receiving port for communication from B to C, and a receiving port for communication from B to D. Additional receiving ports may be allocated for communication from C to modules A, B, and D, and for communication from D to A, B, and C. The fiber optic router <NUM> may allocate corresponding transmitting ports for each communication described above, and such routing may be performed internal to the fiber optic router <NUM>, in some embodiments.

In some embodiments, the optical switch <NUM> may be configured to transmit in accordance with a particular transmission direction based on one or more control voltages applied to the optical switch <NUM>. As an example, a control voltage level may indicate which transmission direction and/or which receiving port of the fiber optic router <NUM> is to be used for a transmission of a particular optical signal. Accordingly, a switch in the control voltage level may indicate, to the optical switch <NUM>, to switch between transmission directions. The transmission directions may be mapped to the control voltage levels in a predetermined manner, in some cases, although the scope of embodiments is not limited in this respect. It should also be noted that embodiments are not limited to usage of control voltages, as the optical switch <NUM> may determine a transmission direction or may determine that the transmission direction is to be switched based on other factors. For instance, the optical switch <NUM> may use control information in the optical signals to make such a determination, in some embodiments.

In some embodiments, the optical switch <NUM> may switch transmission directions and/or steer transmissions of optical signals in accordance with a high speed switching. A switching time for switching between two transmission directions, such as a maximum time, typical time and/or average time, may affect performance. In some embodiments, the transmission direction may be switched according to a particular increment, such as an increment of up/down angle, left/right angle and/or distance, within a particular time interval. The increment may be different for different combinations of first and second transmission directions, and a switching time may also vary accordingly. As an example, a first switching time may occur for a switch between transmission directions for two receiving ports located next to each other in a grid of the fiber optic router <NUM>. A second switching time may occur for a switch between transmission directions for two receiving ports located at opposite ends of the grid. The first switching time may be lower than the second switching time, in some cases. As a non-limiting example, for high speed switching, the first switching time may be less than one micro-second and the second switching time may be less than <NUM> micro-seconds. It should be noted that embodiments are not limited by these example numbers, as other suitable numbers may be used in some cases.

It should be noted that in some embodiments, the optical switch <NUM><NUM> may transmit optical signals received from multiple processing elements (like <NUM>-<NUM> in the example of <FIG>) and/or receive optical signals intended for multiple processing elements (like <NUM>-<NUM>). For instance, the first module may include the optical switch <NUM> and multiple processing elements <NUM>-<NUM>. Accordingly, embodiments are not limited to usage of a single processing element <NUM>. Although some operations may be described herein in terms of one processing element <NUM>, it is understood that those operations and/or similar operations may be performed for multiple processing elements (like <NUM>-<NUM>).

As an example, the optical switch <NUM> may receive a first group of optical signals from a first processing element <NUM> and may transmit the first group of optical signals to the fiber optic router <NUM> for relay to one or more destinations. The optical switch <NUM> may also receive a second group of optical signals from a second processing element <NUM> and may transmit the second group of optical signals to the fiber optic router <NUM> for relay to one or more destinations. In some cases, the optical switch <NUM> may transmit optical signals in the first group and optical signals in the second group during a same time period and in a sequential manner, although the scope of embodiments is not limited in this respect. For instance, the optical switch <NUM> may transmit one or more optical signals from the first group, followed by one or more optical signals from the second group, followed by one or more additional optical signals from the first group. That is, the optical switch <NUM> may alternate between the two groups of optical signals. It should be noted that some embodiments and/or examples may be extended to more than two processing elements.

Returning to the method <NUM>, the optical switch <NUM> may receive one or more inbound optical signals from the fiber optic router <NUM> for relay to the processing element <NUM> at operation <NUM>. The optical switch <NUM> may send the optical signals to the processing element <NUM> at operation <NUM>. In some cases, the optical switch <NUM> may operate as a relay to communicate the inbound optical signals from one or more sources to the processing element <NUM>. The sources may include processing elements of other modules (such as processing elements <NUM>-<NUM> of the second module <NUM>) and/or one or more destinations from previously described operations. It should be noted that embodiments are not limited to usage of a single processing element <NUM>. In some embodiments, the optical switch <NUM> may receive inbound optical signals for multiple processing elements of the module (such as <NUM>-<NUM> of the first module <NUM>), may send those inbound optical signals to the multiple processing elements (such as <NUM>-<NUM>) and/or may operate as a relay for communication of inbound signals from one or more sources to multiple processing elements (such as <NUM>-<NUM>).

In some embodiments, the inbound optical signals may be or may include acknowledgement signals. As an example, an acknowledgement signal may indicate information about whether or not packets of a previously transmitted optical signal are successfully received by a destination. As another example, an acknowledgement signal may indicate information about the path between the optical switch <NUM> and the destination. For instance, the transmission direction used to transmit to the fiber optic router <NUM> may be tuned, adjusted, optimized and/or improved by exchanging of signals between the optical switch <NUM> and the fiber optic router <NUM>. In addition, a mapping between transmission directions and the receiving ports may be determined using such techniques. Other mappings, such as mappings between transmission directions and destinations, may also be determined using such techniques.

<FIG> and <FIG> illustrate examples of optical connectivity between an optical switch and a fiber optic router in accordance with some embodiments. It should be noted that embodiments are not limited to the examples of connectivity <NUM> or <NUM> shown in <FIG> and <FIG>, in terms of number, type and/or arrangement of components. As an example, four modules <NUM>, <NUM>, <NUM>, and <NUM> (denoted as A-D) may be arranged in stack configuration and may communicate with each other through the fiber optic router <NUM>. Embodiments are not limited to the stack configuration and are also not limited to four modules. In the example connectivity shown in <FIG>, a top view <NUM>, side view <NUM>, and end view <NUM> are shown.

The module <NUM> may include an optical switch <NUM>. In some cases, the optical switch <NUM> may include one or more transmission ports <NUM> and one or more receiving ports <NUM>. The top view <NUM> and side view <NUM> show communication (denoted by <NUM>) between the optical switch <NUM> and the fiber optic router <NUM>. The other modules <NUM>, <NUM>, <NUM> may also include an optical switch (shown as <NUM>, <NUM>, and <NUM>) and may communicate with the fiber optic router as denoted by <NUM>, <NUM>, and <NUM>. Routing of the signals between the receiving ports <NUM> of the fiber optic router and the transmitting ports <NUM> of the fiber optic router are shown in the end view <NUM>.

<FIG> illustrates another example of optical connectivity between an optical switch and a fiber optic router in accordance with some embodiments. The transmit/receive (T/R) module <NUM> (labeled as A) and the modules <NUM>-<NUM> (labeled as B, C, and D) may be arranged in a stack configuration and connected to a fiber optic router <NUM>. As shown in the bottom portion of <FIG>, the fiber optic router may route received signals from modules <NUM>, <NUM>, and <NUM> (shown as <NUM>, <NUM>, and <NUM>) to a transmitting port <NUM> for transmission to module <NUM>. Similar connectivity for transmission to the other modules <NUM>, <NUM>, and <NUM> may also be implemented, in some cases.

In some embodiments, free space optical data coupling from each of multiple processor boards to a fiber optic router may be utilized. There may be one transmitter/receiver (T/R) module for each processor board, in some cases. In some embodiments, optical data from the transmitter module may be switched by an optical switch. As an example, a liquid crystal waveguide may be used in some cases. The liquid crystal waveguide may be or may include a Vescent Photonics liquid crystal waveguide (LCWG) in some in some cases. These examples are not limiting, as other types of optical switches are possible in some cases. The optical switch (such as the LCWG or other) may steer the transmitter laser beam to the port for the desired processor board receiver. There may be one receiver for each processor board that may receive, from the fiber optic router, data from other boards. Referring to the end view <NUM> of <FIG> as an example, fiber optic cables from processor boards A, B and C may be combined (for example, by splicing) in the fiber optic router <NUM> to route the data to the receiver for processor board D. Similar fiber optic cabling for the data going to each of the other processor boards in the stack may be used.

In some embodiments, high speed switching may be performed by the optical switch (such as the LCWG or other). As an example, the LCWG may switch from one spot to another in a few microseconds, and a maximum time may be about <NUM> microseconds. In some embodiments, scalability may be realized. As an example, the LCWG may steer the laser beams to <NUM> spots, in some cases. In some cases, the LCWG may utilize a relatively low power consumption and may require little cooling.

In some embodiments, free space optical coupling between the fiber optic router and the boards may be used. Accordingly, the optical connections may be made without a need for access to the back side of the board, in some cases. In some cases, optical data may be switched between many processors. In some cases, an order of magnitude more processors may be connected for parallel processing in comparison to other devices. In some cases, high speed data optical switching may be realized. In some cases, techniques described herein may be used as part of "big data" processing systems and/or data centers.

Claim 1:
Optical data switching circuitry, comprising:
a processing element (<NUM>-<NUM>) configured to generate a plurality of optical signals; and
an optical switch (<NUM>; <NUM>), configured to:
transmit the optical signals to a fiber optic router (<NUM>; <NUM>) for relay to different destinations (<NUM>);
switch between transmission locations for transmission of the optical signals over different optical connections for the destinations (<NUM>), the optical connections between the optical switch (<NUM>; <NUM>) and different receiving ports of the fiber optic router (<NUM>; <NUM>),
receive a plurality of inbound optical signals from the fiber optic router (<NUM>; <NUM>) for relay to the processing element (<NUM>-<NUM>); and
switch between receive directions for the reception of the inbound optical signals over different inbound optical connections between the optical switch (<NUM>; <NUM>) and different transmitting ports (<NUM>) of the fiber optic router (<NUM>; <NUM>),
wherein:
the transmission locations are switched sequentially in accordance with a predetermined mapping between the receiving ports (<NUM>) and the destinations (<NUM>) to achieve sequential transmission of the optical signals in non-overlapping time periods between the receiving ports (<NUM>) and the destinations (<NUM>),
the receive directions are switched sequentially in accordance with a predetermined mapping between the transmitting ports (<NUM>) and a group of sources of the inbound optical signals to achieve sequential transmission of the optical signals in non-overlapping time periods between the transmitting ports (<NUM>) and a group of sources of the inbound optical signals, and
the inbound optical signals are received over the inbound optical connections in accordance with a free space optical coupling between the transmitting ports (<NUM>) and the optical switch (<NUM>; <NUM>).