The present disclosure generally relates to optical receivers and demultiplexers.
In optical communication systems, multiplexing techniques (such as polarization-division multiplexing (PDM)) can increase communication capacity and/or photon efficiency by multiplexing different signals over different channels (e.g., different polarization modes on the same carrier frequency) for simultaneous transmission through a single fiber. However, a challenge of using PDM is that the polarization modes tend to undergo random and unpredictable rotations and losses as they propagate through an optical communication system, for example due to stress in the glass fiber (bending and twisting), ambient temperature changes, or other non-idealities in the communication system. This results in the different signals in the polarization modes becoming mixed among each other when they are received. In such scenarios, the signals must be unmixed at the receiver through multiple-input—multiple-output (MIMO) demultiplexing.
Implementations of the present disclosure are generally directed to optical multiple-input-multiple-output (MIMO) demultiplexers that perform demultiplexing of optical signals based on measured Stokes parameters.
One general aspect includes an optical multiple-input-multiple-output (MIMO) receiver including: an input port configured to receive input light; a Stokes measurement apparatus configured to generate measurements of Stokes parameters; an optical MIMO demultiplexer configured to generate a plurality of demultiplexed output light signals based on (i) the input light and (ii) the measurements of the Stokes parameters generated by the Stokes measurement apparatus; and a plurality of output ports configured to output the plurality of demultiplexed output light signals generated by the optical MIMO demultiplexer. In particular, an analog bandwidth at which the Stokes measurement apparatus is configured to measure the Stokes parameters is smaller than an analog bandwidth of the demultiplexed output light signals.
Implementations may include one or more of the following features. The optical MIMO receiver where the Stokes measurement apparatus includes a plurality of balanced photodiode pairs. The optical MIMO receiver where the plurality of balanced photodiode pairs are configured with reception bandwidths that are smaller than an analog bandwidth of the demultiplexed output light signals. The optical MIMO receiver where the Stokes measurement apparatus is integrated on the same substrate as the optical MIMO demultiplexer. The optical MIMO receiver where the Stokes measurement apparatus and the optical MIMO demultiplexer share a polarization beam-splitter/rotator (PBSR). The optical MIMO receiver where the optical MIMO demultiplexer is configured to receive an electrical signal from the Stokes measurement apparatus. The optical MIMO receiver where a bandwidth of the electrical signal received from the Stokes measurement apparatus is smaller than an analog bandwidth of the demultiplexed output light signals. The optical MIMO receiver where the Stokes measurement apparatus is configured to measure the Stokes parameters from an optical input of the optical MIMO demultiplexer or from an optical output of the optical MIMO demultiplexer. The optical MIMO receiver where the Stokes measurement apparatus is configured to provide the measurements of the Stokes parameters to the optical MIMO demultiplexer in a feedforward structure or in a feedback structure. The optical MIMO receiver further including an electrical filter configured to detect the presence of a marker tone on the input light. Implementations of the described techniques may include hardware, a method or process, or computer software on a computer-accessible medium.
One general aspect includes an optical multiple-input-multiple-output (MIMO) receiver including: an input port configured to receive input light; a Stokes measurement apparatus configured to generate measurements of Stokes parameters; an optical MIMO demultiplexer configured to generate a plurality of demultiplexed output light signals based on (i) the input light and (ii) the measurements of the Stokes parameters generated by the Stokes measurement apparatus; and a plurality of output ports configured to output the plurality of demultiplexed output light signals generated by the optical MIMO demultiplexer. In particular, the Stokes measurement apparatus is connected to the optical MIMO demultiplexer in a parallel arrangement.
Implementations may include one or more of the following features. The optical MIMO receiver where the optical MIMO demultiplexer is further configured to receive the measurements of the Stokes parameters via an electrical signal from the Stokes measurement apparatus. The optical MIMO receiver where the Stokes measurement apparatus is connected to optical taps that are connected to inputs of the optical MIMO demultiplexer or to outputs of the optical MIMO demultiplexer. The optical MIMO receiver where the Stokes measurement apparatus includes: two optical inputs that are tapped from the inputs or the outputs of the optical MIMO demultiplexer and at least three electrical outputs configured to output the measurements of the Stokes parameters or a set of linear combinations of the Stokes parameters such that the Stokes parameters can be calculated from the set of parameters. The optical MIMO receiver where the at least three electrical outputs of the Stokes measurement apparatus are connected to a processing apparatus configured to control the optical MIMO demultiplexer. The optical MIMO receiver where the Stokes measurement apparatus further includes two 1×2 optical couplers connected to a first balanced photodiode pair and to an optical hybrid, where the optical hybrid is further connected to a second balanced photodiode pair and to a third balanced photodiode pair, where the first balanced photodiode pair is configured to output a measurement of a first Stokes parameter through a first electrical output, where the second balanced photodiode pair is configured to output a measurement of a second Stokes parameter through a second electrical output, and where the third balanced photodiode pair is configured to output a measurement of a third Stokes parameter through a third electrical output. The optical MIMO receiver where the first balanced photodiode pair, the second balanced photodiode pair, and the third balanced photodiode pair are configured with reception analog bandwidths that are smaller than a signal bandwidth that is demultiplexed by the optical MIMO demultiplexer. The optical MIMO receiver where each 1×2 optical coupler is a tap coupler with the tap ratio between 0.1% and 25%. Implementations of the described techniques may include hardware, a method or process, or computer software on a computer-accessible medium. It is noted that a 2×2 coupler with one input port unused is one possible embodiment of a 1×2 coupler.
One general aspect includes a method of performing optical multiple-input-multiple-output (MIMO) demultiplexing, the method including: receiving input light through an input port; generating measurements of Stokes parameters; performing adaptive optical MIMO demultiplexing on the input light to generate a plurality of demultiplexed output light signals, where the adaptive optical MIMO demultiplexing is controlled based on the measurements of the Stokes parameters; and outputting the plurality of demultiplexed output light signals through output ports. In particular, a first analog bandwidth at which the Stokes parameters are measured is smaller than a second analog bandwidth of the demultiplexed optical signals.
Implementations may include one or more of the following features. The method where the adaptive optical MIMO demultiplexing is performed based on the measurements of the Stokes parameters that are provided as feedforward control or as feedback control. The method further including splitting the input light into a first input light and a second input light of different polarizations, and where the adaptive optical MIMO demultiplexing includes performing a plurality of stages of optical phase-shifting to apply relative phase shifts between the first input light and the second input light, based on the measurements of the Stokes parameters. The method where the plurality of stages of optical phase-shifting consists of exactly 3 stages of optical phase-shifting including a first optical phase shifting stage, followed by a second optical phase shifting stage, followed by a third optical phase shifting stage, and where the second optical phase shifting stage and the third optical phase shifting stage apply relative phase shifts that depend on the measurements of the Stokes parameters. The method where performing the adaptive optical MIMO demultiplexing includes: determining analytical solutions for amounts of the optical phase shifts that are applied by the second optical phase shifting stage and the third optical phase shifting stage, based on the measurements of the Stokes parameters. The method where the adaptive optical MIMO demultiplexing is performed using non-iterative control based on the measurements of the Stokes parameters. The method further including splitting the input light into first input light and second input light of different polarizations, and where performing the adaptive optical MIMO demultiplexing further includes applying a relative attenuation between the first input light and the second input light, where an amount of the relative attenuation is controlled using a progressive search algorithm based on the measurements of the Stokes parameters. The method where the input light includes a first input light and a second input light, and where performing the adaptive optical MIMO demultiplexing includes: detecting a first marker signal from the first input light, where the first marker signal was placed on a first data stream at a transmitter; detecting a second marker signal from the second input light, where the second marker signal corresponds to a second data stream; and determining that the first input light and the second input light carry the first data stream and the second data stream, respectively, based on detecting the first marker signal and the second marker signal. The method where performing the adaptive optical MIMO demultiplexing includes: determining an average value S3 of Stokes parameter S3=2Im(eX·eY*), where eX and eY denote optical fields on the polarizations of the first input light and second input light; determining whether S3=±1; and based on a determination that S3=±1, re-determining an analytical solution for the amount of the optical phase shift that is applied by the second optical phase shifting stage to avoid S3=±1. The method where the measurements of the Stokes parameters are generated based on light from optical taps that are connected to inputs of the optical MIMO demultiplexer or to outputs of the optical MIMO demultiplexer. Implementations of the described techniques may include hardware, a method or process, or computer software on a computer-accessible medium.
One general aspect includes an optical multiple-input-multiple-output (MIMO) receiver including: a polarization splitter/rotator; a series of couplers and phase shifters connected to outputs of the polarization splitter/rotator; a first optical tap connected to a first output of the series of couplers and phase shifters; a second optical tap connected to a second output of the series of couplers and phase shifters; a first photodiode connected to the first output, after the first optical tap; a second photodiode connected to the second output, after the second optical tap; a first 1×2 coupler connected to the first optical tap; a second 1×2 coupler connected to the second optical tap; a first balanced photodiode connected to both a first output of the first 1×2 coupler and to a first output of the second 1×2 coupler; an optical hybrid connected to both a second output of the first 1×2 coupler and to a second output of the second 1×2 coupler, where the optical hybrid is a 20-degree to 160-degree optical hybrid; and a second balanced photodiode and a third balanced photodiode connected to outputs of the optical hybrid. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.
One general aspect includes an optical multiple-input-multiple-output (MIMO) receiver including: a polarization splitter/rotator; a first optical tap connected to a first output of the polarization splitter/rotator; a second optical tap connected to a second output of the polarization splitter/rotator; a series of couplers and phase shifters connected to both the first output and to the second output of the polarization splitter/rotator, after the first optical tap and the second optical tap; a first 1×2 coupler connected to the first optical tap; a second 1×2 coupler connected to the second optical tap; a first balanced photodiode connected to both a first output of the first 1×2 coupler and to a first output of the second 1×2 coupler; an optical hybrid connected to both a second output of the first 1×2 coupler and to a second output of the second 1×2 coupler, wherein the optical hybrid is a 20-degree to 160-degree optical hybrid; and a second balanced photodiode and a third balanced photodiode connected to outputs of the optical hybrid. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.
The details of one or more implementations of the subject matter of this disclosure are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.
Implementations of the present disclosure are directed to an optical receiver that uses measured Stokes parameters as feedback or feedforward information to perform adaptive MIMO demultiplexing of optical signals. In some implementations, a Stokes parameter measurement apparatus and a MIMO demultiplexer are arranged in a configuration that can achieve various technical benefits. For example, in some scenarios, adaptive MIMO demultiplexing of optical signals can be performed using Stokes parameters which are measured with a lower bandwidth than that of the signals. In some scenarios, the MIMO demultiplexer can use control feedback in the form of Stokes parameter measurements which are provided with a bandwidth which is smaller than the signal bandwidth.
In some implementations, the optical receiver uses a structure in which a Stokes parameter measurement apparatus is arranged in parallel to a MIMO demultiplexer. The Stokes parameter measurement apparatus can be connected in parallel to either the inputs or outputs of the MIMO demultiplexer. An example of such a structure is shown in
Implementations of the present disclosure can be used in a variety of technical fields. For example, implementations can be used in fiber-optic communication systems, such as for both direct detection and coherent fiber transmission links. In some scenarios, implementations can be used to perform adaptive polarization demultiplexing in an optical receiver. For example, implementations of the present disclosure can be used in an optical polarization demultiplexer based on optical signal processing and optical to electrical conversion. In some implementations, Stokes parameters extracted from received optical waveforms can be used to derive demultiplexer settings, such as by progressive search algorithms or by direct calculation without relying on progressive search algorithms. In some other scenarios, implementations can be used to perform adaptive polarization controlling in an optical receiver. For example, implementations of the present disclosure can be used in a single polarization optical receiver to stabilize the incidence state of light. Also, pilot tones or other identifying waveforms may be added to the received optical waveforms at the transmitter to improve Stokes parameter measurement and/or remove signal ambiguity.
Fiber-optic communication system signaling generally fall into two categories, direct detection (DD) techniques and coherent detection techniques. Direct detection techniques are typically used for low complexity and short distance applications while coherent detection techniques prevalent in high capacity and long distance applications. Direct detection systems, such as an intensity modulation with direct detection (IM-DD) system, exploit only optical intensity to carry information which can lead to a lower spectral efficiency, but with the benefit of simpler transmitter and receiver design. Coherent detection systems can exploit the entire optical field to carry information and can double the data rate, but at the expense of complex multi-input multi-output (MIMO) digital signal processing (DSP) algorithms to perform reception and demultiplexing.
The discussion below will focus on MIMO systems that modulate information on multiple different polarizations of light, for example by utilizing each polarization as a separate data channel. However, the described features and concepts can be adapted for other types of MIMO systems, such as using multiple spatial modes in a multi-mode fiber as separate data channels.
It is advantageous to construct the polarization MIMO demultiplexer and Stokes measurement apparatus in integrated optics, such as silicon photonics. In general, such a structure requires splitting the incoming light into two polarization portions and adjusting the polarizations of the portions such that they are the same polarization in the integrated optical circuit so they can be interfered and/or photodetected.
The state of polarization (SOP) of an optical wave can be represented by the Stokes parameters, which are three real signed values, with units of optical power. The Stokes parameters can be represented in vector form by the Stokes vector Ŝ
where eX and eY denote the optical field (harmonic picture) in X and Y polarizations, Re(⋅) and Im(⋅) the real and imaginary part of a complex number, and (⋅)* the complex conjugate. For a normalized wave, there are only two independent Stokes parameter magnitudes, because the Stokes vector falls on a sphere, however all three Stokes parameters are required because of sign ambiguity to locate a point on the sphere.
A Stokes measurement apparatus is an apparatus that measures the Stokes parameters of an input optical signal.
In the example of
In some implementations, each 1×2 optical coupler 204 and 206 is a tap coupler with a tap ratio between 0.1% and 25%. In some scenarios, a 1×2 coupler can be implemented as a 2×2 coupler with an input port that is unused.
We define a Stokes measurement apparatus as a collection of elements that measures at least three photodetected signals and a math operation can be performed on these signals to extract the three Stokes parameters. This generally requires a polarization splitter and rotator (PBSR) that separates the incoming signal into two polarization portions and at least two interferences with different phases between two the portions.
In particular,
By mapping a data stream to a corresponding constellation in Stokes space, the data can be fully characterized by the Stokes parameter representation of the optical waveform. Moreover, the polarization evolvement of an optical waveform propagating through a medium (e.g., via fiber transmission) can be represented as a 3-dimensional rotation of the data constellation in Stokes space. Such a rotation can be mathematically expressed as a chain of Stokes space matrix transformations, as shown in Equation 2, below.
ŜRX=ΠiTRot,iTRet,iŜTX Eq. 2
where ŜRX denotes the received data constellation in Stokes space after transmission through a medium (e.g., fiber). The matrices TRot,i and TRet,i represent a rotator matrix and a retarder matrix, and are defined by:
where θi is the rotation angle in fiber stage i, and φi is the retard phase in fiber stage i. Thus, Equation 2 represents the evolvement of a data constellation as an optical waveform propagates through a medium (e.g., a fiber link). To demodulate such data upon reception, the receiver can use the inverse matrix of the rotator/retarder matrix chain, which can be expressed as Equation 3, below.
M=(ΠiTRot,iTRet,i)−1 Eq. 3
Equation 3 characterizes the operation of polarization demultiplexing and enables a MIMO receiver to recover data from an optical waveform which has undergone random rotations and retardations through a medium.
However, the serial configuration of
Compounding this challenge, in order to ensure high-speed data throughput, the demultiplexer 404 runs at the symbol rate to implement the demultiplexing operations (e.g., the matrix operations of Equation 3). As a result, the serial configuration of
Additionally, since Stokes reception is essentially a nonlinear operation of eX and eY (as shown by Equation 1, above), the Stokes measurement apparatus 402 and ADCs 406 usually require even larger analog electrical bandwidth to effectively extract sufficient Stokes information from the received optical waveform. Moreover, in the demultiplexer 404, the DSP performs calculations in Stokes space sample-by-sample and converts the Stokes space representations back to Jones space for demodulation, which also significant increase complexity as compared to a conventional linear receiver. Therefore, the numerous challenges described above for a serial configuration typically hinder the implementation of a Stokes-based demultiplexer in practical systems.
As such, because the serial configuration shown in
By contrast, a parallel configuration will be described with reference to
As mentioned, in typical links, the time scale of changes in polarization of optical signals that propagate through transmission channels is much slower than the date rate of the optical signals themselves. For example, in shorter-range communication such as in local-area networks (e.g., data centers), fluctuations in polarization occur much less frequently, e.g., on the order of kHz or MHz. For longer-range communication, such as long-haul fibers, the fluctuations in polarization may occur more frequently, but still lower than the GHz of bandwidth typically needed to transmit data. Therefore, implementations of this disclosure that are described with reference to
The parallel structure of
Thus, the output of Stokes measurement apparatus 502 can be a signal with significantly lower bandwidth than the data stream that is demultiplexed by linear receiver 504. For example, the output of Stokes measurement apparatus 502 can include just enough information to sufficiently represent the dynamic variations in polarization of the received optical waveform, but without having to include the full information necessary to perform data demodulation. For example, in some scenarios, an approximately MHz-level analog bandwidth for the output of Stokes measurement apparatus 502 is typically sufficient to meet the needs of most practical applications in a cost-efficient manner. However, implementations of the present disclosure are not limited to a particular bandwidth for Stokes measurement apparatus 502.
As such, according to implementations of the present disclosure, optical demultiplexing of MIMO signals in received light can be performed in Jones space, while utilizing Stokes-space measurements of polarization changes in the received light. Since a Stokes space representation and Jones space representation of light are linked by Equation 1, above, the two can be converted to each other, for example using DSP. In implementations of the parallel structure disclosed herein, considering that Stokes space measurements of polarization changes are updated in a relatively slow manner as compared to the speed of demultiplexing, it is unnecessary to convert the Stokes-space measurements back to Jones space sample-by-sample. Instead, in some implementations, a slower block-by-block operation in Jones space can be performed with much less cost. This can be a useful feature, for example, especially in a feedforward structure to direct DSP operations more efficiently.
Upon extracting Stokes parameters from a received waveform (e.g., using Stokes measurement apparatus 502 of
The Stokes parameters (e.g., in (S1, S2, S3) format) can be extracted either from the input of the demultiplexer (in a feedforward configuration) or from the output of the demultiplexer (in a feedback configuration). Both configurations are described next.
In both scenarios of
In the example optical receiver 900 of
In the example of
In some implementations, the Stokes measurement apparatus 902 and the MIMO polarization demultiplexer 905 share a polarization beam-splitter rotator (PBSR) 909 which splits the input light into two transmission paths. In this example, the integrated MIMO polarization demultiplexer 905 implements a 3-stage optical polarization MIMO demultiplexing structure that adaptively performs 3-stage relative phase shifting of light in the two transmission paths. Details of the 3-stage optical polarization MIMO demultiplexing structure will be described further below with reference to
The three phase shifters of
As a solution of factor (1), the second phase shift ϕ2 is calculated so as to make the three vectors Ŝn, Ŝ, and Ŝ3 to be coplanar in Stokes space, as shown in the example of
Ŝ
n·(Ŝ×Ŝ3)=0 Eq. 4
where
Ŝ
n
=T′×Ŝ
n(0)
Ŝ
=T×
where Ŝn(0) and are the initial values of Ŝn and Ŝ. And rotation matrix T and T′ are denoted by
As a result of Equation 4, the desired second phase shift value, ϕ2,opt, is determined by:
f(sin(ϕ2,opt),cos(ϕ2,opt))=0 Eq. 5
where f(⋅) is a linear function with known parameters of S1(0), S2(0), S3(0), and ϕ3(0) In some implementations, the solution ϕ2,opt of Equation 5 can be implemented by a pre-calculated look-up table (LUT), or can be implemented using fast analytical approximation techniques.
Next, the third phase shift value ϕ3 is calculated to make S1=0, as shown in the example of
cos(ϕ3,opt)⋅S2(0)′−sin(ϕ3,opt)⋅S1(0)′=0 Eq. 6
where S1(0)′ and S2(0)′ are initial Stokes vector elements after the second phase shift ϕ2 adjustment.
Therefore, by solving Equation 5 and Equation 6, the demultiplexer output can meet the demultiplexing condition as was described with reference to
Due to the cyclical and periodic nature of phase, Equation 5 and Equation 6 have multiple solutions. For the second phase shift, the desired value ϕ2,opt has a solution period of 2π. For the third phase shift, the desired value ϕ3,opt has a solution period of π. Taking into account the factor of endless demultiplexing control (factor 2 discussed above), the desired value of the second phase shift, ϕ′2,opt, can be selected from the multiple solutions, being limited in a practical operation range of ['1 π,π]. The desired value of the third phase shift, ϕ′3,opt, can be selected from the multiple solutions, being limited in the operation range of [−π, 0] when the first phase shift value is ϕ1=π/2 and in the operation range of [0, π] when ϕ1=−π/2. Further details of endless demultiplexing control are discussed with reference to
In some implementations, the bandwidth of the Stokes measurement apparatus (e.g., Stokes measurement apparatus 902 in
In addition to polarization drift, other non-idealities in an optical communication system can degrade performance, such as polarization dependent loss (PDL), which amplifies or attenuates different polarization modes differently. PDL can be induced in a fiber transmission link, in a fiber coupling, or in components (e.g., a PBSR) of the receiver. In the presence of PDL, the rotator and retarder matrices TRot,i and TRet,i are no longer unitary, resulting in an asymmetric constellation plane. In this case, demultiplexing with phase shift controls alone may be insufficient to fully separate the signals which have been mixed in the two polarization modes of light. Instead, a combination of optical phase shifters and optical attenuators can be implemented in the demultiplexer, for example by using a variable optical attenuator (VOA). Additional details of PDL and using VOAs to counteract PDL are discussed with reference to
In example optical receiver 1100 of
In addition, demultiplexer 1105 also implements optical attenuation controls using VOAs 1121 and 1123 which apply optical attenuation values (a1, a2) to optical transmission paths at different parts of the demultiplexer 1105. Although the example of
In the example of
The attenuation values a1 and a2 of VOAs 1121 and 1123 can be controlled by controller 1106 using an optimization or pseudo-optimization process, designed to reduce or minimize measured error in feedback. In some implementations, a progressive searching algorithm can be used to find desired values of a1 and a2, either before or after the analytical solutions of the second-stage and third-stage phase shift values ϕ2 and ϕ3 discussed with reference to
In implementations where the demultiplexing operation uses the objective of S1=0 to control the third-stage phase shift value ϕ3, there is possibility that the demultiplexed signal may have polarity ambiguity and singularity. As shown in the example of
To mitigate such ambiguity, in some implementations, identifiers on two polarizations (e.g., on the two data streams carried by the two polarizations) can be used. For example, one possible identifier is to add a marker signal (e.g., a dither tone) on each data stream. For example, two different marker signals (e.g., frequency tones) can be applied in the transmitter to differentiate the two polarizations of light. Example implementations of using such frequency pilot tones are described with reference to
To mitigate singularity, in some implementations, an additional constraint can be added after optimization of the second-stage phase shift value ϕ2 to enable determination of whether Ŝ is at the north pole or at the south pole of the Poincare sphere. For example, this can be implemented by calculating S3. If it is determined that S3=±1, then the second-stage phase shift value ϕ2 is re-optimized to avoid this particular state. As such, singularity can be effectively eliminated.
In step 1302, input light is received through an input port (e.g., input port 908 of
In step 1304, the adaptive optical MIMO demultiplexing can be performed, for example, as described with reference to
In step 1308, the plurality of demultiplexed output light signals are output through output ports (e.g., output ports 912 and 914).
In the following, additional details are provided of adaptive optical polarization MIMO demultiplexers that can be used in implementations of the present disclosure. Such multiplexers can be used, for example, to implement MIMO demultiplexers described in the above implementations (e.g., in linear receiver 502 of
Furthermore, while examples of multi-stage optical polarization MIMO demultiplexers are described below for an IMDD system, in general, the Stokes-based demultiplexing techniques described with reference to
The multi-stage optical polarization MIMO demultiplexers described below can achieve significantly improved efficiency and speed with lower rates of data loss. This is accomplished by implementations which enable an “endless” property of adaptive demultiplexing without requiring any resets of interruptions of data reception. In some implementations, this is achieved by an adaptive three-stage phase-shifting demultiplexer structure in which the first stage phase-shifter is controlled to apply a binary value, and the second and third stages of phase-shifting are controlled to operate over finite ranges (e.g., continuous ranges) of phase shifting values. The control of the three stages of phase-shifting are coordinated to adapt to random and unpredictable rotations and losses in received polarization, without requiring any resets of the phase-shifting that would interrupt signal reception, a property referred to as an “endless” operation of the demultiplexer.
In general, multi-polarization detection is challenging, because polarization states tend to drift as an optical waveform travels through a communication system (e.g., due to randomly changing birefringence in fiber transmission lines). Over a long-distance system, these random drifts of polarization can accumulate progressively without limit. In an optical communication system which uses polarization division multiplexing (PDM) to transmit different signals over the two polarization modes of light, the random and unknown polarization drifting creates challenges for a receiver to accurately detect the proper orientation of the two polarization modes, resulting in the different signals becoming mixed at the receiver (sometimes referred to as “cross-talk”). Hence, even though a signal is transmitted in one polarization mode, the signal may actually be received in both polarization modes at the receiver. In addition to polarization drift, other non-idealities in an optical communication system may degrade performance, such as polarization dependent loss (PDL), which amplifies or attenuates different polarization modes differently.
To compensate for polarization drift and other non-idealities, a multi-polarization receiver must do constant, adaptive MIMO demultiplexing to separate and unmix the signals that are transmitted in the two polarization modes. Such MIMO multiplexing may be performed either in the optical domain using optical phase shifters or in the electronic domain by digital signal processing (DSP). Optical MIMO demultiplexing provides various advantages over DSP-based MIMO demultiplexing. For example, optical demultiplexing can reduce power consumption, complexity, and sensitivity to the symbol rate. By contrast, DSP-based demultiplexing typically requires higher power consumption, and can become prohibitively complex for high symbol-rate or large mode-number systems.
Furthermore, optical polarization demultiplexing can be used in conjunction with intensity modulation and direct detection (IMDD) transmission formats (in which information is transmitted only in the magnitude squared of the optical electric field), such as pulse amplitude modulation (PAM). This is because optical demultiplexing can be performed using optical elements that separate the two polarization modes of light, before photodetection is performed on the light. By contrast, DSP-based polarization demultiplexing cannot be used in conjunction with IMDD because the nonlinearity of optical direct detection in IMDD results in a loss of information, which cannot be recovered by DSP techniques alone. Instead, DSP-based demultiplexing typically requires coherent reception. In such systems, the two polarization modes of light are first separated by coherent detection, and then the full field of each polarization is detected, allowing the DSP to perform processing on the signals received in the two polarization modes. An example of this distinction is described with reference to
This dual-polarized (DP) optical waveform travels through a fiber link (1416 and 1466). As the DP waveform travels through the fiber, various unknown and varying birefringence and twists in the fiber can cause changes in the polarizations of the two waveforms. If the fiber link (1416 and 1466) does not have significant polarization-dependent loss (PDL), then the two polarizations remain orthogonal. For example, x (X) may evolve from a linear horizontal polarization to a right-hand circular polarization, which means that y (Y) evolves from a linear vertical polarization to a left-hand circular polarization. However, in the presence of PDL, the orthogonality of the polarizations in the DP optical waveform will degrade, which will complicate the demultiplexing of x (X) and y (Y).
At the receiver (1418 and 1468), the DP waveform enters a PBSR (1420 and 1470) which splits the DP waveform into two waveforms, h and v, which have orthogonal polarizations. Due to the non-idealities in the optical communication system, the outputs of the PBSR, h and v, are each a linear and orthogonal combination of x and y (more precisely, the received signals will be noisy versions of x and y due to additive noise in the system, but we will assume a noiseless scenario for the purposes of this discussion). In particular, h is a linear combination of x and y, and similarly v is a linear combination of x and y. For example, h=(x−y)/sqrt(2) and v=(x+y)/sqrt(2). The purpose of MIMO demultiplexing is to extract the original signals x and y from the received h and v. This can be done via DSP-based demultiplexing (e.g., using demultiplexer 1430 in
In the coherent case of
By contrast, in the example of IMDD reception in
For two orthogonal states of polarization, a PDM optical communication system can be represented as a 2×2 Multi-Input-Multi-Output (MIMO) channel. Thus, the optical transmission can be modeled as a 2×2 matrix, F. The matrix F is a transfer function describing polarization effects and chromatic dispersion of the communication from transmitter to receiver. For example, the matrix F can model the effects of the fiber that connects a transmitter and receiver, as well as the effects of the optical components in the transmitter and receiver themselves. For purposes of this disclosure, the matrix F will be referred to as a “channel matrix F” with the understanding that the “channel” can represent various effects of the optical communication system, such as the fiber transmission line and components of the transmitter and/or receiver.
To estimate the original signals x and y from the received signals h and v, an optical demultiplexer D is applied at the receiver, to generate estimates x′ and y′:
Then, as long as x′=ax and y′=bx (where “a” and “b” are complex constants), then the receiver will have successfully demultiplexed the polarizations.
Consider the simpler case of a lossless system (where the optical channel matrix F is unitary), which is approximately the case in most short fiber-optic links. In such scenarios, fiber loss is negligible, especially fiber polarization-dependent loss (PDL). The channel matrix F can then be characterized by four real numbers. Since the receiver only needs to achieve x′=ax and y′=bx for successful demultiplexing, the demultiplexing matrix D can be characterized by two real numbers. Thus, for a lossless scenario, the four real numbers of the channel matrix F can be expressed as only two, independently-controlled real parameters which should be compensated by the demultiplexing matrix D.
Thus, for a unitary system (lossless scenario), the optical demultiplexer (i.e., the matrix D above) requires a theoretical minimum of at least two phase control signals to reverse the effects of the channel matrix F and demultiplex. An example of a 2-stage demultiplexer is describe with reference to
With this structure, the demultiplexer 1500 can be represented as a matrix D (using the Mueller notation for polarization).
However, as mentioned above, a major issue with the configuration of demultiplexer 1500 in
To address this problem, a demultiplexer can implement more than two stages of phase shifters. However, a greater number of phase shifting stages (for the lossless scenario using a unitary demultiplexer) increases the algorithmic and control complexity and reduces the speed of controlling the numerous phase shifting variables. Furthermore, it can be difficult to guarantee that the phase-shifting control does not get “trapped” in a particular state during its operation (and being unable to exit the trapped state without a phase shifter exceeding its limits), for an arbitrary input. In addition, higher-complexity control systems may face increased risk of converging to a local state which is not a desirable (e.g., suboptimal) multiplexing operation. Because of this complexity and uncertainty, designing dual-polarized IMDD systems can be challenging.
Furthermore, if polarization dependent loss (PDL) is present, then this can compound the challenges. PDL refers to two orthogonal polarizations being attenuated differently, resulting in a non-unitary channel matrix F. Although PDL is sometimes negligible in fibers, PDL can be significant in discrete devices such as amplifiers and wavelength division multiplexers. Designing non-unitary optical demultiplexers is challenging. In general, a non-unitary demultiplexer can be characterized by four real numbers, with the theoretical minimum control set consisting of two optical phase shifters and two optical attenuators.
Implementations are disclosed herein that achieve an “endless” property of optical MIMO polarization demultiplexing using just three stages of finite-range phase shifting, for the lossless scenario of no PDL, an example of which is described with reference to
The demultiplexer 1600 includes three stages (1602, 1604, and 1606) of phase shifting. Each stage is controlled by a phase shift control signal. For example, the first stage 1602 is controlled by a first control signal 1608, the second stage 1604 is controlled by a second control signal 1610, and the third stage 1606 is controlled by a third control signal 1612. Each control signal controls the amount of phase shift that is implemented in the respective phase shifting stage.
In the example of
Although the example of
The phase shifters can be thermo-optic (thermo-optic phase shifter, TOPS), electro-optic (electro-optic phase shifter, EOPS), or other types. The TOPS generally have the slowest response time but can be sped up by covering with metal and/or shortening the distance to the heat sink. The power consumption of the TOPS can be reduced by having the optical transmission path pass through the heated region multiple times. The EOPS can operate on, for example, current injection, carrier depletion, or the Pockels effect. Each phase shifter could consist of multiple sections, such as a section with a phase shifter type that has a fast response time but more power consumption and a section with a phase shifter type that has a slow response time but reduced power consumption.
The 2×2 couplers can be, for example, implemented by directional couplers, multi-mode interference couplers, or adiabatic couplers.
As mentioned above, the three stages (1602, 1604, 1606) of demultiplexer 1600 are controlled within specific ranges or values of operations in a coordinated manner, so as to ensure that the demultiplexer 1600 can achieve an “endless” property of demultiplexing without requiring a reset of any of the phase shifters. In particular, in the example of
During operation of the demultiplexer 1600, light that has traveled through a fiber first enters the splitter, such as PBSR 1646, which splits the input light into the two optical transmission paths 1614 and 1616. The PBSR splits the input light into two polarizations and rotates one of the polarizations so that both outputs of the PBSR are in the same polarization. Thus, although path 1614 contains light that was in one polarization when it entered the PBSR and path 1616 contains light that was in the orthogonal polarization when it entered the PBSR, once in paths 1614 and 1616, the light in both paths 1614 and 1616 are in the same polarization. Although the example of
The split input light enters the two optical transmission paths 1614 and 1616 of the first stage 1602, and undergo relative phase shifts through phase shifting elements 1618 and 1620, such that light in one optical transmission path is phase-shifted by an amount φ1 relative to light in the other optical transmission path. The amount of this relative phase shift φ1 is controlled by the control signal 1608. The phase-shifted light in the two optical transmission paths then enter a 2×2 coupler 1622 which combines the relative phase-shifted light. This process repeats through the second stage 1604 and the third stage 1606, undergoing different phase shifts controlled by control signals φ2 (1610) and φ3 (1612).
A controller 1644 controls the amount of relative phase shift in the three stages 1602, 1604, and 1606 via the control signals 1608, 1610, and 1612. In scenarios of closed-loop feedback, this control can be based on feedback information 1648. For example, in implementations where the controller receives feedback from a Stokes measurement apparatus (as described with reference to
As discussed above, demultiplexer 1600 compensates for random birefringence changes which rotate the polarizations of light, caused by distortions introduced by the optical communication system. In addition to compensating for phase shifts, a demultiplexer can also be designed to compensate for other non-idealities, such as polarization dependent loss (PDL). While PDL may be negligible in most short fiber-optic links, as the length of the fiber increases, PDL can have a more substantial impact on proper reception of the optical signals.
In scenarios of polarization dependent loss (PDL), the amount of loss experienced in each of the two polarization modes of light may be different, e.g., the loss in the transverse magnetic (TM) mode may be greater/smaller than the loss in transverse electric (TE) mode. This results in a channel matrix F which is non-unitary. In this case, demultiplexing with phase shift controls alone may be insufficient to fully separate the signals which have been mixed in the two polarization modes of light. Instead, a combination of optical phase shifters and optical attenuators are implemented in the demultiplexer, as described with reference to
Demultiplexer 1700 includes three stages (1702, 1704, and 1706) of relative phase shift control and/or optical attenuation control. Each stage is controlled by one or more control signals. For example, the first stage 1702 is controlled by a first attenuation control signal 1708 and a first phase shift control signal 1710. The second stage 1704 is controlled by a second phase shift control signal 1712. The third stage 1706 is controlled by a second attenuation control signal 1714 and a third phase shift control signal 1716. Each control signal controls the amount of phase shift or optical attenuation that is implemented in the respective stage.
In the example of
Although the example of
Similarly, the relative phase difference between the two optical transmission paths is referred to simply as “φ,” regardless of whether the relative phase shift is implemented by a differential phase shifter (i.e., each phase shifting element in the differential pair designed to shift by +/−φ/2, as shown in the example of
As mentioned above, the three stages of demultiplexer 1700 are controlled within specific ranges or values of operations in a coordinated way, so as to ensure that the demultiplexer 1700 can achieve an “endless” property of demultiplexing without requiring a reset of any of the phase shifters. For the phase shift control, in the example of
During operation of the demultiplexer 1700, light that has traveled through a fiber first enters the splitter, such as PBSR 1758, which splits the input light into the two optical transmission paths 1718 and 1720. Although the example of
The relatively-attenuated light in the two optical transmission paths then undergo relative phase shifts through phase shifting elements 1726 and 1728 (forming a differential phase shifter), such that the phase of light in one optical transmission path is shifted relative to the phase of light in the other optical transmission path. The amount of this relative phase shift φ1 is controlled by the control signal 1710. The phase-shifted light in the two optical transmission paths then enter a 2×2 coupler 1730 which combine the relative phase-shifted light. This process continues through the second stage 1704 and the third stage 1706, so that the two polarizations of light undergo relative phase shifts and/or relative attenuations controlled by phase control signals 1712 and 1716 and the attenuation control signal 1714.
A controller 1756 controls the amount of relative attenuation and relative phase shift the different stages 1702, 1704, and 1706 via the control signals 1708, 1710, 1712, 1714, and 1716. By controlling both the relative attenuation and the relative phase shift between the two polarizations of light, demultiplexer 1700 is able to compensate for both random phase shifts as well as PDL (non-unitary channel matrix F). In scenarios of closed-loop feedback, this control can be based on feedback information 1760 which can be, for example, a measurement of an error in the received signal. For example, in implementations where the controller receives feedback from a Stokes measurement apparatus (as described with reference to
In general, the control (e.g., by controller 1644 in
To measure of the amount of crosstalk, in some implementations, the communication system may utilize reference signals (e.g., pilot tones or pilot signals) which are transmitted in addition to the signals carrying information. The reference signals have waveform properties which are known to both the transmitter and receiver, and allow the receiver to estimate and compensate for the random effects of the communication channel.
In the example of
Thus, in transmitters 1800 and 1820 of
Examples of receiver structures for detecting pilot tones and measuring error in received pilot tones are discussed with reference to
Although
In example of
To estimate the impact of this cross-mixing, the receiver can detect the power of each pilot tone (A and B) in each of the two polarization modes (H and V). For example, in
The controller 1910 then calculates an error signal based on these received pilot tone components, to estimate the amount of cross-talk between the two polarization modes that have been induced by non-idealities in the communication system. For example, in some implementations, the error can be calculated as:
However, other measures of error can be used to estimate the amount of cross-talk between the pilot tones (A and B) in the two polarization modes (H and V). In general, the measure of error should increase with increasing values of PHB and/or PVA. The measure of error provides an estimate of how well the controller 1906 is adapting the control signals (e.g., 1908, 1910, and 1912) to adjust the relative phase shift and/or relative attenuation between the two polarization modes H and V, to compensate for random polarization drifts and PDL. Thus, the controller 1906 can use this error measurement in a feedback control loop to dynamically adjust the control signals (e.g., 1908, 1910, and 1912) to further reduce the error. Details of example feedback algorithms are described with reference to
The pilot tones A and B can be detected from the received waveform at various points in the receiving process, examples of which are described with reference to
In both examples of
Next, examples of using error measurements in feedback control of relative phase shifts and/or relative attenuation are discussed with reference to
In step 2102, light is received through a pair of MIMO inputs into a first pair of optical transmission paths (e.g., 1614, 1616 of
In step 2106, the first pair of optical transmission paths (e.g., 1614, 1616 of
In step 2108, a second optical phase shifter (e.g., the differential phase shifter formed by 1628 and 1630 of
In step 2110, the second pair of optical transmission paths (e.g., 1624, 1626 of
In step 2112, a third optical phase shifter (e.g., the differential phase shifter formed by 1638 and 1640 of
In step 2114, the third pair of optical transmission paths (e.g., 1634, 1636 of
Although the example method 2100 in
The method 2200 is an iterative process that adapts the relative phase shift control signals 1608, 1610, and 1612 to gradually reduce the measured feedback error (e.g., feedback 1648 in
In step 2202, at the beginning of the iterations, the demultiplexer initializes the relative phase shift values of the three control signals 1608, 1610, and 1612. For example, in some implementations, the first control signal φ1 (1608) is a binary (digital) value, initially set to either −π/2 or +π/2. The second control signal φ2 (1610) is a continuous (analog) or discrete (digital) value, initially set to a value somewhere between −π and +π. The third control signal φ3 (1612) is also a continuous (analog) or discrete (digital) value, and is either set to a value somewhere between 0 and +π if the first control signal φ1 (1608) was set to −n/2, and otherwise the third control signal φ3 (1612) is set to a value somewhere between −π and 0 if the first control signal φ1 (1608) was set to +π/2. This relationship between the third control signal φ3 (1612) and the first control signal φ1 (1608) is maintained throughout the control process of method 2200.
In step 2204, the third control signal φ3 (1612) is adjusted (within its current range) to reduce the measured error in the feedback (e.g., feedback 1648 of
In step 2206, the second control signal φ2 (1610) is adjusted to reduce the measured error. The adjustment of the second control signal φ2 (1610) can be performed by an optimization or pseudo-optimization algorithm (e.g., a gradient descent algorithm) that seeks to minimize or reduce the measured error. For example, the adjustment of the second control signal φ2 (1610) can be performed by searching within a local neighborhood of the current value of second control signal φ2 (1610) to find a new value that reduces the measured error. As a specific example, a description will be given in which the second control signal φ2 (1610) is adjusted in steps of +/−Δφ2 to find a value that reduces measured error. The step size Δφ2 can be dynamically adjusted in each iteration. For example, in some implementations, the step size Δφ2 can be configured to increase as the value sin2(φ3) (of the third control signal 1612) becomes smaller. In the search process of step 2206, the second control signal φ2 (1610) is first increased by Δφ2 and the resulting error in feedback (1648) is measured. Then, the second control signal φ2 (1610) is decreased by 1Δφ2 (i.e., decreased by Δφ2 from the original value) and the resulting error in feedback (1648) is again measured. The value of the second control signal φ2 (1610) that resulted in the lower error is denoted as φ2′ (for purposes of this description).
In step 2208, the demultiplexer determines whether the value φ2′<−π (i.e., outside the lower limit). If so, then in step 2210, the new adjusted value of the second control signal φ2 (1610) is set to −2π−φ2′. Furthermore, in step 2212, the first control signal φ1 (1608) and the third control signal φ3 (1612) are flipped in values. Namely, if the value of the first control signal (1608) is φ1=−π/2 (meaning that the third control signal 1612 is within a range 0 and +π), then then a value of π is simultaneously added to the first control signal φ1 (1608) and subtracted from the third control signal φ3 (1612). Alternatively, if the value of the first control signal (1608) is φ1=+π/2 (meaning that the third control signal 1612 is within a range −π and 0), then a value of π is simultaneously subtracted from the first control signal φ1 (1608) and added to the third control signal φ3 (1612). The control loop should pause during this simultaneous addition and subtraction. In some implementations, the simultaneous addition and subtraction of π may be performed sequentially (e.g., adjusting the first control signal φ1 (1608) and then adjusting the third control signal φ3 (1612), or vice versa). Nonetheless, the procedure of adjusting the first control signal φ1 (1608) and the third control signal φ3 (1612) described above should be performed quickly to avoid long pauses and control lag in the control system.
If it is determined in step 2208 that φ2′ is not outside the lower limit, then in step 2214, the demultiplexer checks whether φ2′>+π (i.e., outside the upper limit). If so, then in step 2216, the new adjusted value of the second control signal φ2 (1610) is set to +2π−φ2′. Furthermore, in step 2212 (as described above), the values of the first control signal φ1 (1608) and the third control signal φ3 (1612) are flipped.
If it is determined in step 2214 that φ2′ is not outside the upper limit (meaning that φ2′ is within the range of −π to +π), then in step 2218, the new adjusted value of the second control signal φ2 (1610) is set to φ2′. In this case, the first control signal φ1 (1608) and the third control signal φ3 (1612) are not flipped. Then, the next iteration of adjusting the control signals is performed, returning back to step 2204.
The control process of method 2200 can achieve an “endless” operation of demultiplexing without requiring a reset or interruption of data reception. This property is enabled by the fact that when the second control signal φ2 (1610) reaches either of end points (+π or −π), then the second stage of phase shifting (1604 in
Although the example method 2200 in
Furthermore, the specific ranges of values described in step 2202 can be modified. For example, the possible values of the first control signal φ1 (1608) can have a fixed offset, so as to be a shifted binary value of (−π/2+c) or (+π/2+c). The possible values of the second control signal φ2 (1610) could be shifted by integer multiples of 2π, as long as the end points of the range enable the pass-through property discussed above. The possible values of the third control signal φ3 (1612) could also be shifted by integer multiples of 2π.
Although the example method 2300 illustrates control of both relative attenuation control signals a1 (1708) and a2 (1714), in some scenarios only one of the signals is implemented. For example, in some implementations, only the first control signal a1 is implemented. This may be appropriate, for example, in scenarios where the PDL levels are moderate (e.g., in scenarios where the only source of PDL is in the receiver, rather than in the fiber transmission line itself). Furthermore, if the PDL values are not expected to change significantly over time, then the control value a1 can be set once at the beginning of operation (e.g., in a factory), and left unchanged.
Alternatively, as shown in method 2300, both optical attenuation control signals a1 and a2 are can be adjusted (e.g., continuously), for example by using variable optical attenuators (VOAs). This may be appropriate, for example, in scenarios where PDL levels are more significant (e.g., in scenarios where PDL occurs in both the receiver and in the fiber transmission line).
In general, the relative attenuation signals a1 (1708) and a2 (1714) can be controlled using an optimization or pseudo-optimization process, designed to reduce or minimize the measured error in the feedback (e.g., feedback 1760 in
In step 2302, at the beginning of the iterations, the demultiplexer initializes the two VOA control signals a1 (1708) and a2 (1714) to initial values, for example to zero values.
In step 2304, the first VOA control signal a1 (1708) is adjusted (within its allowed range, such as −3 to +3) to reduce the measured error in the feedback. The adjustment of the first VOA control signal a1 (1708) can be performed by an optimization or pseudo-optimization algorithm (e.g., a gradient descent algorithm) that seeks to minimize or reduce the measured error. For example, the adjustment of the first VOA control signal a1 (1708) can be performed by searching within a local neighborhood of the current value of first VOA control signal a1 (1708) to find a new value that reduces the measured error. As a specific example, a description will be given in which the first VOA control signal a1 (1708) is adjusted in steps of +/−Δa1 to find a value that reduces measured error. The step size Δa1 can be dynamically adjusted in each iteration. The first VOA control signal a1 (1708) is first increased by Δa1 and the resulting error in feedback 1760 is measured. Then, the first VOA control signal a1 (1708) is decreased by 2Δa1 (i.e., decreased by Δa1 from the original value) and the resulting error in feedback 1760 is again measured. The value of the first VOA control signal a1 (1708) that resulted in the lower error is assigned as the new, adjusted value of the first VOA control signal a1 (1708).
In step 2306, the second VOA control signal a2 (1714) is adjusted (within its allowed range, such as −3 to +3) to reduce the measured error. The adjustment of the second VOA control signal a2 (1714) can be performed by an optimization or pseudo-optimization algorithm (e.g., a gradient descent algorithm) that seeks to minimize or reduce the measured error. For example, the adjustment of the second VOA control signal a2 (1714) can be performed by searching within a local neighborhood of the current value of second control signal a2 (1714) to find a new value that reduces the measured error. As a specific example, a description will be given in which the second VOA control signal a2 (1714) is adjusted in steps of +/−Δa2 to find a value that reduces measured error. The step size Δa2 can be dynamically adjusted in each iteration. For example, in some implementations, the step size Δa2 can be configured to increase as the value sin2(a1) (of the first VOA control signal 1708) becomes smaller (and vice versa). In the search process of step 2306, the second VOA control signal a2 (1714) is first increased by Δa2 and the resulting error in feedback 1760 is measured. Then, the second VOA control signal a2 (1714) is decreased by 2Δa2 (i.e., decreased by Δa2 from the original value) and the resulting error in feedback 1760 is again measured. The value of the second VOA control signal a2 (1714) that resulted in the lower error is assigned as the new, adjusted value of the second VOA control signal a2 (1714). Then, the next iteration of adjusting the control signals is performed, returning back to step 2304.
Although the example method 2300 in
In some implementations, the techniques described herein for optical MIMO polarization demultiplexing can be applied to general 2×2 optical MIMO demultiplexing. For example, in some implementations, the techniques described herein can be implemented separately from or without the PBSR.
Graph 2402 shows an example of an evolution of the three control signals φ1 (1608), φ2 (1610), and φ3 (1612) over time, as they are adjusted by the control algorithm. Graph 2400 shows an example of the resulting amount of crosstalk, namely the error “e” discussed above.
The computing system 2500 is intended to represent various systems that include digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. The components shown here, their connections and relationships, and their functions, are meant to be examples only, and are not meant to be limiting.
The computing system 2500 includes a processor 2502, a memory 2504, a storage device 2506, a high-speed interface 2508 connecting to the memory 2504 and multiple high-speed expansion ports 2510, and a low-speed interface 2512 connecting to a low-speed expansion port 2514 and the storage device 2506. Each of the processor 2502, the memory 2504, the storage device 2506, the high-speed interface 2508, the high-speed expansion ports 2510, and the low-speed interface 2512, are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate. The processor 2502 can process instructions for execution within the computing system 2500, including instructions stored in the memory 2504 or on the storage device 2506 to display graphical information for a GUI on an external input/output device, such as a display 2516 coupled to the high-speed interface 2508. In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. In addition, multiple computing devices may be connected, with each device providing portions of the operations (e.g., as a server bank, a group of blade servers, or a multi-processor system). In some implementations, the processor 2502 is a single-threaded processor. In some implementations, the processor 2502 is a multi-threaded processor. In some implementations, the processor 2502 is a quantum computer.
The memory 2504 stores information within the computing system 2500. In some implementations, the memory 2504 is a volatile memory unit or units. In some implementations, the memory 2504 is a non-volatile memory unit or units. The memory 2504 may also be another form of computer-readable medium, such as a magnetic or optical disk.
The storage device 2506 is capable of providing mass storage for the computing system 2500. In some implementations, the storage device 2506 may be or include a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid-state memory device, or an array of devices, including devices in a storage area network or other configurations. Instructions can be stored in an information carrier. The instructions, when executed by one or more processing devices (for example, processor 2502), perform one or more methods, such as those described above. The instructions can also be stored by one or more storage devices such as computer- or machine-readable mediums (for example, the memory 2504, the storage device 2506, or memory on the processor 2502).The high-speed interface 2508 manages bandwidth-intensive operations for the computing system 2500, while the low-speed interface 2512 manages lower bandwidth-intensive operations. Such allocation of functions is an example only. In some implementations, the high-speed interface 2508 is coupled to the memory 2504, the display 2516 (e.g., through a graphics processor or accelerator), and to the high-speed expansion ports 2510, which may accept various expansion cards (not shown). In the implementation, the low-speed interface 2512 is coupled to the storage device 2506 and the low-speed expansion port 2514. The low-speed expansion port 2514, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
The computing system 2500 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 2520, or multiple times in a group of such servers. In addition, it may be implemented in a personal computer such as a laptop computer 2522. It may also be implemented as part of a rack server system 2524.
The term “system” as used in this disclosure may encompass all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. A processing system can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A computer program (also known as a program, software, software application, script, executable logic, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile or volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks or magnetic tapes; magneto optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry. Sometimes a server is a general-purpose computer, and sometimes it is a custom-tailored special purpose electronic device, and sometimes it is a combination of these things.
Implementations can include a back end component, e.g., a data server, or a middleware component, e.g., an application server, or a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
The features described can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
While this disclosure contains many specific implementation details, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features that may be specific to particular implementations of particular inventions. Certain features that are described in this disclosure in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results.