FIELD
The present Application for Patent relates to clock and data recovery, more particularly, to recovery of M-PHY and equivalent embedded clock transmission.
BACKGROUND
A signaling technique referred to as “non-return-to-zero” or “NRZ” signaling concatenates adjacent bits without inserting a “return-to-zero” (RZ) or other transition between the bits. In NRZ signaling transitions occur only when the data value changes, for example from a binary “0” to a binary “1.” Therefore, not having a transition with each bit for a sampling reference, the NRZ signal receiver must locally generate a sampling clock, and can only use data transitions for synchronization. NRZ signaling, however, requires for any given bit rate approximately one-half the bandwidth required by RZ signaling.
Conventional techniques exist for an NRZ receiver to locally generate a sampling clock synchronized in frequency and phase to the data in the NRZ signal. One such technique generates a sampling clock at a frequency equal to the bit rate of the NRZ signal, for example using a phase-lock-loop (PLL) fed by a local reference oscillator. In one such technique the NRZ signal is supplied to the signal input of a sampler that, in turn, is triggered by the locally generated sampling clock. However, since the locally generated sampling clock is at the NRZ signal bit rate, when the latter is increased to a high rate the former must be increased in turn. Generation of high frequency sampling clocks can incur costs in terms of power consumption and in circuit considerations such as signal path transmission line quality, requirements for noise isolation, in addition to reduced fabrication tolerance. Further, NRZ data can be communicated in a burst mode, requiring fast lock time, without benefit of a preamble.
Another conventional technique for recovering NRZ data entails generating a local clock having a frequency that is a fraction, i.e., 1/N (N generally being an integer) of the bit rate and, in combination, generating an N-phase sampling clock based on that 1/N rate clock. The N-phase sampling clock can trigger N samplers receiving the NRZ signal. However, conventional generation of N-phase sampling clocks generally requires a significant number of circuit blocks or cells, including voltage-controlled delay elements, multiplexers, and logic, with associated interconnects. Various ones of the circuit blocks or cells, in particular the voltage controlled delay elements, are connected in cascade, with tap-offs placed at various ones of the interconnects. N of the tap-off are, in turn, the N phases of the sampling clock. In this conventional generation of an N-phase sampling there are differences in configuration among the voltage controlled delay elements, as well in the loading at the outputs of different ones of the elements. However, since the relative delay among the voltage controlled delay elements establishes the different phases of the N-phase sampling clock, such differences in their configuration and output loading can result in non-uniform phase differences between the N clock phases. The non-uniform phase difference can, in turn, result in a timing offset between the ideal sampling instant of the NRZ signal and the actual sampling instant. Compensation circuitry can be included, but this can itself introduce complications in circuit structure. Also, since the compensation circuitry and the voltage controlled delay elements generally have different structure, process variances can produce non-uniform shifts in delay, which can result in the compensation circuitry introducing the very problem it was intended to correct.
The objective is to reduce power consumption further, and one way would be to increase the data rate by sampling four parallel data in a single clock cycle with multiple phases. This has been done before, but required significantly more than four multiplexers.
SUMMARY
The following presents a simplified summary of one or more aspects in order to provide a basic understanding of such aspects. This summary is not an extensive overview of all contemplated aspects, and is intended to neither identify key or critical elements of all aspects nor delineate the scope of any aspect. Its sole purpose is to present some concepts of one or more aspects in a simplified form as a prelude to the more detailed description that is presented later.
Various exemplary embodiments include, a gated voltage controlled oscillator clock data recovery circuit having a balanced load, four stage multiphase clock generator and sampler circuit providing, among other features and benefits, stable, accurate, reduced power, and reduced part count NRZ recovery. In one aspect, in addition to features such as stability, accuracy, reduced power and reduced part count NRZ recovery, exemplary embodiments can further provide, among other features and benefits, multi-mode recovery with common hardware of multi-rate NRZ and, in one aspect, of pulse width modulated data.
In one embodiment a ¼ rate gated voltage-controlled oscillator can include a first delay cell comprising a first input terminal coupled to a first phase shifted recovered clock, a second input terminal coupled to a second phase degree-shifted recovered clock and an output terminal outputting a third phase shifted recovered clock signal, in combination with a second delay cell comprising an output terminal outputting a fourth phase shifted recovered clock signal, a first input terminal coupled to the output terminal of the second delay cell, and a second input terminal coupled to the output terminal of the first delay cell, in combination with a third delay cell comprising an output terminal outputting the third phase shifted recovered clock signal, a first input terminal coupled to the output terminal of the first delay cell, and a second input terminal coupled to the output terminal of the second delay cell, further combined with a fourth delay cell comprising an output terminal outputting the second phase shifted recovered clock signal, a first input terminal coupled to the output terminal of the fourth delay cell, and a second input terminal coupled to the output of the third delay cell, wherein the output terminal of each of the first delay cell, second delay cell, third delay cell and fourth delay cell has the same loading.
In one aspect, one ¼ rate gated voltage controlled oscillator according to one exemplary embodiment each of the first, second, third and fourth delay cells can further include a select input configured to receive a select signal switchable between a first value and a second value, and each of the first, second, third and fourth delay cells can be configured to selectively switch between its first input terminal and its second input terminal in response to the switchable value of the select signal.
In another aspect, one ¼ rate gated voltage controlled oscillator according to one exemplary embodiment can include each of the first, second, third and fourth delay cells having a bias input terminal, and can configure each of the first, second, third and further delay cells to apply a delay, with respect to transmission from the selected one of its first and second input terminals to its output terminal, that depends at least in part on a bias voltage applied to the bias input terminal
In one exemplary embodiment a clock and data recovery apparatus can provide or include a frequency tracking phase-lock loop oscillator, having a voltage controlled oscillator with a bias input and that oscillates at a frequency (FS) based on a bias voltage at the bias input, and having a feedback error circuit configured to detect a difference between FS and a reference frequency (FRC) and, based on the difference, to generate the bias voltage in a manner driving FS toward FRC, and can include a replica voltage controlled oscillator having a first delay cell comprising a first input terminal, a second input terminal, an output terminal and a complementary output terminal, combined with a second delay cell comprising a first input terminal, an output terminal coupled to said first terminal, a second input terminal coupled to the output terminal of the first delay cell, and a complementary output terminal, combined with a third delay cell comprising a first input terminal coupled to the output terminal of the first delay cell, a second input terminal coupled to the output terminal of the second delay cell, an output terminal and a complementary output terminal coupled to the first input terminal of the first delay cell, and combined with a fourth delay cell comprising a first input terminal, an output terminal coupled to said first input terminal, a second input terminal coupled to the output terminal of the third delay cell, and a complementary output terminal coupled to the second input terminal of the first delay cell, and can include a load on the output terminal of each of the first delay cell, the second delay cell, the third delay cell and the fourth delay cell the respective loads being substantially equal.
In one aspect, one clock and data recovery apparatus according to one exemplary embodiment can further include or provide a multi-mode sampling clock generator selectively switchable between a non return to zero (NRZ) mode and a pulse width modulation (PWM) mode and, further to the one aspect, the multi-mode sampling clock generator can be configured to select in the NRZ mode a multi-phase NRZ sampling clock having a first phase NRZ sampling clock aligned with a first NRZ bit in the data signal and a second phase NRZ sampling clock aligned with a second NRZ bit in the data signal, the first phase NRZ sampling clock and the second phase NRZ sampling clock each being one of the output terminal and the complementary output of one of the first delay cell, the second delay cell, the third delay dell and the fourth delay cell and, further according to the one aspect, the multi-mode sampling clock generator can be configured to select in the PWM mode a PWM sampling clock aligned with a sampling point in a PWM bit corresponding to the select pulse, the PWM sampling clock being one of the output terminal and the complementary output of one of the first delay cell, the second delay cell, the third delay dell and the fourth delay cell.
In one further aspect of one or more exemplary embodiments, the multi-mode sampling clock generator can be configured to be selectable between a ½ rate NRZ mode and a ¼ rate NRZ mode, and in the ¼ rate sampling mode the multi-phase NRZ sampling clock can further include a third phase NRZ sampling clock aligned with a third NRZ bit in the data signal and a fourth phase NRZ sampling clock aligned with a fourth NRZ bit in the data signal.
One exemplary embodiment provides a gated voltage-controlled oscillator for generating a multi-phase sampling clock phase locked to input signal transitions, the multi-phase sampling clock having a first phase shifted recovered clock signal, a second phase shifted recovered clock signal, a third phase shifted recovered clock signal, a fourth phase shifted recovered clock signal, a fifth phase shifted recovered clock signal, a sixth phase shifted recovered clock signal, a seventh phase shifted recovered clock signal, and an eighth phase shifted recovered clock signal. In one aspect of the embodiment there can be first delay means for outputting the first phase shifted recovered clock signal and the fifth phase shifted recovered clock signal, the generating including selecting one of, and delaying the selected one of the seventh phase shifted recovered clock signal and the eighth phase shifted recovered clock signal, second delay means for outputting the second phase shifted recovered clock signal and the sixth phase shifted recovered clock signal, the outputting including selecting one of, and delaying the selected one of the first phase shifted recovered clock signal and the second phase shifted recovered clock signal, third delay means for outputting the third phase shifted recovered clock signal and the seventh phase shifted recovered clock signal, the outputting including selecting one of, and delaying the selected one of the first phase shifted recovered clock signal and the second phase shifted recovered clock signal, fourth delay means for outputting the fourth phase shifted recovered clock signal and the eighth phase shifted recovered clock signal, the outputting including selecting one of, and delaying the selected one of the third phase shifted recovered clock signal and the eighth phase shifted recovered clock signal. One embodiment can include means for loading the outputting of the first delay means, the second delay means, the third delay means and the fourth delay means with a substantially equal loading.
One exemplary embodiment provides a method for generating a multi-phase sampling clock phase having a first phase shifted recovered clock signal, a second phase shifted recovered clock signal, a third phase shifted recovered clock signal, a fourth phase shifted recovered clock signal, a fifth phase shifted recovered clock signal, a sixth phase shifted recovered clock signal, a seventh phase shifted recovered clock signal, and an eighth phase shifted recovered clock signal,
In one aspect, a method according to one embodiment can include outputting the first phase shifted recovered clock signal and the fifth phase shifted recovered clock signal by selecting one of, and delaying the selected one of the seventh phase shifted recovered clock signal and the eighth phase shifted recovered clock signal, outputting the second phase shifted recovered clock signal and the sixth phase shifted recovered clock signal, by selecting one of, and delaying the selected one of the first phase shifted recovered clock signal and the second phase shifted recovered clock signal, outputting the third phase shifted recovered clock signal and the seventh phase shifted recovered clock signal, by selecting one of, and delaying the selected one of the first phase shifted recovered clock signal and the second phase shifted recovered clock signal, and outputting the fourth phase shifted recovered clock signal and the eighth phase shifted recovered clock signal, by selecting one of, and delaying the selected one of the third phase shifted recovered clock signal and the eighth phase shifted recovered clock signal, and equally loading the outputting of the first phase shifted recovered clock signal and the fifth phase shifted recovered clock signal, the outputting of the second phase shifted recovered clock signal and the sixth phase shifted recovered clock signal, the outputting of the third phase shifted recovered clock signal and the seventh phase shifted recovered clock signal, and the outputting of the fourth phase shifted recovered clock signal and the eighth phase shifted recovered clock signal.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a high-level schematic diagram of a dual loop burst mode clock data recovery system.
FIG. 2 shows a schematic diagram of one example gated oscillator phase-tracking data recovery loop circuit according to one exemplary embodiment.
FIG. 3 shows a schematic diagram of one example data edge detector circuit.
FIG. 4A shows one example simulation result of one example periodic data stream input to a simulation model of one gated oscillator phase-tracking data recovery loop circuit according to one exemplary embodiment, operating in a ¼ rate recovery mode.
FIG. 4B shows one example simulation result of one example simulated random data stream input to the simulation model used in FIG. 4A, of one gated oscillator phase-tracking data recovery loop circuit according to one exemplary embodiment, operating in a ¼ rate recovery mode.
FIG. 5 shows one example simulation result of one example simulated ½ rate data stream input to the simulation model used in FIGS. 4A and 4B of one gated oscillator phase-tracking data recovery loop circuit according to one exemplary embodiment, operating in a ½ rate recovery mode.
FIG. 6 shows one example simulation result of one example simulated pulse-width modulated (PWM) data stream input to the simulation model used in FIGS. 4A and 4B of one gated oscillator phase-tracking data recovery loop circuit according to one exemplary embodiment, operating in a PWM recovery mode.
FIG. 7 shows a functional block diagram of a system having example devices according to one or more exemplary embodiments.
DETAILED DESCRIPTION
The detailed description set forth below in connection with the appended drawings is intended as a description of exemplary embodiments and is not intended to represent the only embodiments in which the present invention can be practiced. The word “exemplary” (and variants thereof) as used herein means serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the word “exemplary” is only intended to illustrate example applications of concepts using simplified concrete examples.
Various specific details are also described, to facilitate a person of ordinary skill in the art in readily obtaining, through this disclosure in its entirety, a sufficient understanding of relevant concepts to practice according to one or more of the various exemplary embodiments. Such persons, though, upon reading this entire disclosure may see that various embodiments and aspects of one or more embodiments may be practiced without, or with alternatives to one or more of these specific details. In other instances, certain well-known structures and devices are shown in block diagram form to avoid obscuring the various novelties of the exemplary embodiments.
Various aspects or features will be presented in terms of systems that may include a number of devices, components, modules, and the like. It is to be understood and appreciated that various systems may include additional devices, components, modules, and so forth, and/or may not include all devices, components, modules, and so on, discussed in connection with the figures. A combination of these approaches may also be used.
The terms “component”, “module”, “system” and the like, as used herein, are intended to refer to a functional entity, which may be embodied in hardware, firmware, a combination of hardware and software, software, or software in execution. A “component” may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a computing device and the computing device can be a component.
The term “includes,” as used in either the detailed description or the claims, is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim. The term “or” as used in either the detailed description or the claims, is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from the context, the phrase “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, the phrase “X employs A or B” is satisfied by any of the following instances: X employs A; X employs B; or X employs both A and B. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from the context to be directed to a singular form.
FIG. 1 shows a simplified block diagram one gated oscillator (GVCO) clock data recovery (CDR) circuit 100 for recovering bits from an NRZ base band signal received as DATA_IN using a locally generated reference clock RCLK to generate an R-phase sampling clock SCLK that triggers a sampler 102 to sample, at every cycle of SCLK, R samples of either DATA _IN or a delayed form of DATA_IN referenced herein as “DATA.” In the described example R is selected as four, such that SCLK is a 4-phase clock. It will be understood that four is only an example, though, and is not intended to limit the scope of any exemplary embodiment or any aspect therefore.
Referring still to FIG. 1, the GVCO CDR circuit 100 can include a main frequency tracking GVCO 104 that is configured to lock to the RCLK to generate a base sampling clock BCLK, and phase tracking GVCO CDR 106 that, based on BLCK, generates an R-phase SCLK, as described in greater detail at later sections. The BCLK can be at a frequency (FS) that is either equal to the frequency (FRC) of RCLK or that is a multiple of FRC. In an aspect, the main frequency tracking GVCO 104 can include a frequency divider (“1/N divider”) 108 in the feedback loop allowing FRC to be an integer (N) fraction of FS.
With continuing reference to FIG. 1, the main frequency tracking GVCO 104 can include a phase/frequency detector (PFD) 110 that generates an error signal (shown but not separately labeled) having information a difference between FRC and the feedback of 1/N of the generated BLCK. In an aspect, the PFD 110 can be in accordance with conventional technology feedback loop phase/frequency detectors and, therefore, further detailed description is omitted. The error signal from the PFD 110 can be input to a charge pump (CP) 112 that can generate a signal proportional to the error between FRC and the oscillating frequency of BCLK, that can be smoothed by a loop filter (LPF) 114 to generate a smoothed frequency control signal (shown but not separately numbered). The loop filter 114 can be according to conventional PLL feedback smoothing filter techniques, readily adapted by persons of ordinary skill in the art, having view of this disclosure, to practices according to the exemplary embodiments and, therefore, further detail description is omitted. The smoothed frequency control signal from the loop filter 114 can be input to a bias generator (or “Bias Gen”) 116 that generates a differential bias voltage VBp and VPn (collectively referenced as “the bias VB”) signal that, in an aspect, controls the frequency of the VCO 122.
Referring still to FIG. 1, in an aspect VB generated in the feedback operation of the main frequency tracking GVCO 104 also controls a replica gated VCO (RVCO) 124 shown within the phase tracking GVCO CDR 106. The objective of feeding VB to the RVCO 124 is to control the RVCO 124 to oscillate at the same frequency as the frequency tracking GVCO 104, without feedback from its generated R-phase sample clock SCLK. Further to this objective, it will be understood that the voltage versus frequency characteristic of the RVCO 124 should be substantially identical to the voltage versus frequency characteristic of the VCO 122. In an aspect, described in greater detail in reference to FIGS. 2 and 3, the RVCO 124 can include a gated synchronization aspect that, in response to a select (SEL) signal from an edge detector 126 synchronizes the SCLK to the SEL signal. As will also be described, the edge detector 126 can be configured to generate SEL in response to leading edge transitions in the DATA_IN signal, and the synchronization aspect of the RVCO 124 responds to the SEL to ensure that all bits of carried by DATA_IN, including the first bit following an interim of no data, are sampled.
With continuing reference to FIG. 1, in an example implementation of the RVCO 124,
SEL can be a differential signal received at, for example, differential inputs (not shown). It will be understood that, in one aspect, the VCO 122 does not require such synchronization because the main frequency tracking GVCO 104 tracks frequency according to the RCLK, without reference to the phase of the DATA_IN. In an aspect, though, the VCO 122 can still be structured identically to the RVCO 124, including having a structural replica of the RVCO 124 gated synchronization aspect, but set in the same logical state as the gated synchronization structure of the RVCO 124 is the absence of DATA_IN. The FIG. 1 VCO 122 shows one example implementation according to this aspect, which is to let its SEL input (or inputs if differential) float.
Continuing to refer to FIG. 1, with respect to the transfer characteristic of the bias generator 116, i.e., the voltage of VB with respect to the voltage (or current) received from the loop filter 114, it will be understood that this transfer characteristic depends on the voltage versus frequency transfer characteristic of the VCO 122 (and of the RVCO 124). In an aspect, described in greater detail at later sections, the VCO 122 and RVCO 124 can be implemented with voltage controlled delay (VCD) elements (not shown in FIG. 1). In practices according to this aspect, each of the VCD elements, in accordance with its name, has a transmission delay that varies according to a bias, which in the examples shown by the appended figures, is VB. Persons of ordinary skill in the art, having view of the present disclosure, can readily select the transfer characteristic of the bias generator 116, in combination with selecting the voltage versus delay characteristics of the VCD elements within the VCO 122 and RVCO 124. Further regarding the bias generator 116, in an aspect the VCD elements and the bias generator 116 can be configured such that the VB voltage nominally causing the VCO 122 and RVCO 124 to oscillate at FS is at an operating approximately in the middle of a range of VB voltages that the bias generator 116 can be capable of generating. With respect to structure of the bias generator 116, persons of ordinary skill in the art, having view of the present disclosure, can readily adapt conventional bias voltage generation design and structure techniques to implement this bias generator 116, with specifications, including transfer characteristics, to practice according to one or more exemplary embodiments and, therefore, further detailed description of that design and structure is omitted.
Referring still to FIG. 1, as previously described the phase tracking GVCO CDR 106 generates, based on BLCK, an R-phase SCLK and, in one aspect, the R-phase SCLK feeds an R-phase sampler 102. The R-phase sampler 102 can, in one aspect, have R sample-and-hold devices (not shown), each receiving the DATA signal, which can be a delay of the DATA_IN as described in greater detail at later sections. The example R-phase sampler 102 is a four-phase sampler, but four is only an example not intended to limit the scope of any embodiment. In an aspect, as described in greater detail at later sections, the R-phase sampler 102 can be configured to provide multi-rate sampling. For example, if R is four, according to the multi-rate aspect, the R-phase sampler 102 can be configured to have a ¼ rate sampling mode in which four of its four or more sample-and-hold devices are utilized, each receiving one of four phases SCLK. According to this aspect, each cycle of SCLK will obtain four samples of the DATA signal, each phase triggering a corresponding one of the four sample-and-hold devices. Further to this aspect, the R-phase sampler 102 can be configured to have a ½ rate sampler, in which only two of the sample-and-hold devices are clocked or triggers, for example a first by one phase of the SCLK and the second by another phase of the SCLK 180 degrees out of phase with the first phase. Examples of such clock generation are described in greater detail in reference to FIGS. 2 and 3. In still a further aspect, the R-phase sampler 102 can be configured to have a full rate sampling mode in which one of its sample-and-hold devices is clocked (for example by a selected phase of the SCLK) at the full sampling rate. In other words, each cycle of SCLK will obtain one sample of the DATA signal.
FIG. 2 shows a schematic diagram of one GVCO 200 according to one exemplary embodiment that can implement the FIG. 1 RVCO 124 and, with certain control voltages set as described below in greater detail, can in an aspect implement the VCO 122 of the main frequency tracking GVCO 104. To avoid repetition of description, details of operations and aspects of the GVCO 200 will be described in reference to operations in functioning as the RVCO 124 of the FIG. 1 phase tracking GVCO CDR 106. Examples of minor reconfiguration of the FIG. 2 GVCO 200 to implement the FIG. 1 frequency tracking GVCO 102 will also be described.
Referring to FIG. 2, in overview the GVCO 200 comprises a plurality of, for example, four, selector/voltage controlled delay (VCD) cells or elements, labeled 202A, 202B, 202C and 202D (collectively referenced as “selector/VCD element(s) 202”). In an aspect, all four selector/VCD elements 202 can have identical structure. In the FIG. 2 example GVCO 200, each of the selector/VCD elements 202 has a bias input BD to receive VB, and can be configured to impart a delay in accordance with the VB voltage. In an aspect providing a four-phase SCLK, for up to ¼ rate sampling, the nominal delay imparted by each selector/VCD element 202 can be 45 degrees (or Pi/4) relative a 360 degree (or 2Pi) cycle of the SCLK, at an SCLK oscillating frequency FS that is ¼ the bit rate of the DATA. The selector/VCD elements 202 can have an interconnection, such as the FIG. 2 example interconnection, that in combination with the Pi/4 delay that can be imparted by each selector/VCD element 202, in further combination with a generation of SEL in response to DATA_IN edge transitions and a switching by the selector/VCD elements 202 in response, as described in greater detail at later sections, results in the GVCO 200 generating a multi-phase recovered clock signal. In the FIG. 2 example GVCO 200 the generated multi-phase recovered clock signal can include an eight-phase recovered clock signal, for example CLKO, which is substantially aligned with the DATA_IN edge transition, or zero degrees phase shifted, CLK45 that is 45 degrees phase shifted, CLK90 that is 90 degrees phase shifted, CLK135 that is 135 degrees phase shifted, CLK180 that is 180 degrees phase shifted, CLK225 that is 225 degrees phase shifted, and CLK315 that is 315 degrees phase shifted.
For purpose of phase tracking to the DATA, each of the selector/VCD elements 202 has a “0” input, a “1” input, an “SL” input receiving the previously described SEL signal from, for example, the FIG. 1 edge detector 126, and a differential output formed of a PDL connection or port and a complementary NDL connection or port. Each of the selector/VCD elements 202 is configured to switch between its “0” and “1” input in response to the SEL values at its “S” input. Example operations are described assuming SEL has an active “0” and inactive “1” value. Persons of ordinary skill in the art will understand that this polarity is arbitrary, and can readily adapt the disclosed concepts to practice the exemplary embodiments using an opposite polarity logic for SEL.
With continuing reference to FIG. 2, one example interconnection of the selector/VCD elements 202 is shown. In the example interconnection, the PDL output of the first selector/VCD element 202A, carrying CLK0, couples to the “1” input of the selector/VCD element 202B and to the “0” input of the second selector/VCD element 202B. It will be understood from this description that some of the clocks, for example the CLK0, CLK90 and CLK270 in the FIG. 2 example, may only be used internally for feedback and synchronization purposes, and are not necessarily used as a sampling clock.
Continuing with description of the FIG. 2 example interconnects of the selector/VCD elements 202, in one aspect the DL output of the second selector/VCD element 202B can couple to the “1” input of the third selector/VCD element 202C, and be a feedback to the “0” input of the same selector/VCD element 202B. In one aspect the PDL output of the third selector/VCD element 202C, which is CLK90, is coupled to the “1” input of the fourth selector/VCD element 202D. The NDL output of the third selector/VCD element 202C, which is CLK270, is coupled to the “0” input of the first selector/VCD element 202A. The PDL output of the fourth selector/VCD element 202D, which is clock 135, is fed back to the “0” input of the same device, while the complementary output NDL of the fourth selector/VCD element 202D, which is the CLK315, is fed back to the “1” input of the first selector/VCD element 202A.
Referring still to FIG. 2, it will be understood that the FIG. 2 example interconnection of the selector/VCD elements 202 is in accordance with a balanced load aspect of the exemplary embodiments. According to the balanced load aspect, all of the selector/VCD elements 202 have the same load on their output. More particularly, in this FIG. 2 example, the PDL output of the first selector/VCD element 202A is coupled to two destinations or loads, one being the “1” input of the second selector NCD element 202B and the other being the “0” input of the third selector/VCD element 202C. The PDL output of the second selector/VCD element 202B is coupled to two destinations, one being its own “0” input and the other being the “1” input of the third selector/VCD element 202C. Further to the balanced load aspect, the PDL and NDL output of the third selector/VCD element 202C each couple to one destination, with PDL (CLK90) coupling to the “1” input of the fourth selector/VCD element 202D and NDL (CLK270) coupling to the “0” input of the first selector/VCD element 202A. Likewise, the PDL and NDL output of the fourth selector/VCD element 202D each couple to one destination, with PDL (CLK135) fed back to the “0” input of the fourth selector/VCD element 202D and NDL (CLK315) coupling to the “1” input of the first selector/VCD element 202A.
It will be appreciated that the balanced load aspect can provide, among other features and benefits, improved VB versus FS linearity.
The illustrated interconnection of the respective outputs of selector/VCD elements 202, with the 45 degree (relative to FS) delay results in a free-running oscillation—where “free-running” means in the absence of the SEL signal—with SCLK at the desired FS.
Example operations of the GVCO 200 will be described in reference to a free running mode, meaning in the absence of data on the DATA_IN line, and in reference to a burst of bits preceded by an interim of no bits, for an interim exceeding four bits in duration. For convenient reference to FIG. 2 in describing example operations, the selector/VCD elements 202 will be alternatively referenced according to the phase (in terms of a cycle of SCLCK) of their delayed clock output relative to the leading edge of bits in the DATA_IN. For example, the selector/VCD element 202A will be alternatively referenced as the “0/180 clock” element 202A, the selector/VCD element 202B will be alternatively referenced as the “45/225 clock” element 202B, the selector/VCD element 202C will be alternatively referenced as the “90/270 clock” element 202C, and the selector/VCD element 202D will be alternatively referenced as the “135/315 clock” element 202D. As previously described, the leading edge of an SEL active (which is a falling edge according to the example logic polarity) substantially coincides with the leading edge of the first data bit of DATA_IN. One example implementation of the edge detector 126 is described further below in reference to FIG. 3.
Referring again to FIG. 2, assuming zero delay through the RVCO 124, the example interconnection of the selector/VCD elements 202 will provide, in response to an SEL active signal, the 45/225 clock element 202B generating the triggering edge of its CLCK45 at a time 45 degrees (relative to a cycle of SCLK) after the leading edge of the DATA transition that caused the SEL. Since RVCO 124 cannot have zero delay, in an aspect its delays can be compensated by the FIG. 1 matching delay gates 128. Assuming use of the FIG. 1 matching delay gates 128, in an operation of the FIG. 2 selector/VCD 202 elements provided by their example interconnects, the leading (triggering) edge of CLK45 generated by the 45/225 clock element 202B immediately following SEL can be at the midpoint (in terms of bit interval) of the first bit. Simulation showing examples of such timing is described in reference to FIGS. 4A and 4B. The triggering edge of CLK135 output from the positive differential output DLP of the 135/315 clock element 202D will occur at a time instant 135 degrees after the leading edge of the first data bit corresponding to the SEL, which is at the midpoint of the second bit in the DATA_IN; the CLK225 from the DLN output of the 45/225 clock element 202B will be at the midpoint of the third bit following the bit that triggered the SEC, and the CLK315 from the DLN output of the 135/315 clock element 202D will be at the midpoint of the fourth bit. Further, according to the free-running mode of the FIG. 2 GVCO 200, in which it oscillates at FS, the GVCO 200 can, assuming FRC is an accurate sub-multiple of FS, continue to maintain the CLK45, CLK135, CLCK225 and CLK 315 sufficiently close to the midpoint of a stream of NRZ bits, even for a run length of “1” spanning multiples of four.
It also will be appreciated that in responses to DATA_IN bursts such as “101010” another SEL will be generated at each “0” to “1” transition. Therefore, in accordance with one or more exemplary embodiments, the phase tacking GVCO CDR 106 can re-synchronize several times during a burst of NRZ bits. It will be understood that such re-synchronization of the phrase tracking GVCO CDR 106 will, in the example of “101010,” not necessarily result in a full shift of the SCLK such that CLK45 samples the first bit after each transition. On the contrary, it will be understood that such re-synchronization may have an incompatibility with the R-phase sampling performed within the FIG. 1 R-phase sampler 102. Instead, repeated occurrences of SEL, such as can occur in response to the example “101010,” can effect a phase correction that aligns the triggering edges of the SCLK phases with the midpoints of the DATA bits.
FIG. 3 shows one example of an edge detector circuit 300 that can implement the edge detector 126 shown in the FIG. 1 example. In an aspect, the edge detect circuit 300 generates SEL to have a width equal to ½ the bit period of a full rate NRZ data on the DATA_IN line. This is 45 degrees relative to one cycle of the SCLK. It will be appreciated that the width of SEL is therefore equal to the delay of one of the FIG. 2 selector/VCD elements 202. In a further aspect, additional consistency and uniformity of circuit delay can be provided by implementing the 45 degree delay within the FIG. 1 edge detector 126 using a structure identical to one of the FIG. 2 selector/VCD element 202. Referring to FIG. 3, the edge detector circuit 300 shows one example according to this aspect, comprising a ½ bit delay element 302 formed of a FIG. 2 selector/VCD element 202, configured to receive DATA_IN at its “1” input port and to output a 45 degree delayed DATA_IN to one input of a first two-input exclusive NOR gate 304 and to one input of a second two-input exclusive NOR gate 306. The SEL input S of the ½ bit delay element can be left floating, or tied to a voltage rail (bit shown) to fix the ½ bit delay element in a state using the “1” input. In an aspect, the ½ bit delay element 102 can also receive the bias voltage VB that controls the delay in the selector/VCD elements 202 within the FIG. 2 GVCO 200 that, as previously described, can form the FIG. 1 RVCO 124 and the VCO 122.
With respect to the design and technology for implementing the first and second exclusive NOR gates 304 and 306, conventional exclusive NOR gate design and technology can be readily selected and adapted by persons of ordinary skill in the art having view of the present disclosure, for practices according to the exemplary embodiments and, therefore, further detailed description will be omitted.
Referring still to FIG. 3, in an aspect, the other of the two inputs of the first two-input exclusive NOR gate 304 can be floating or can be tied to a reference voltage (not shown), for example ground (GND) (not explicitly shown) or a voltage rail (not shown). The output of the first two-input exclusive NOR gate is therefore a delayed (by ½ of a bit period or approximately 45 degrees of SCLK) version of DATA_IN, referenced hereinafter as DATA. As will be appreciated, tying the other (meaning the input not tied to the delayed DATA_IN) to one of GND or a voltage reference can change the polarity of the DATA output of the first two-input exclusive NOR gate 304.
Continuing to refer to FIG. 3, as previously described one input of the second two-input exclusive NOR gate 306 receives the 45 degree delayed DATA_IN from the ½ bit delay element 302 and the other of its two input receives the DATA_IN signal. Therefore, as readily understood by persons of ordinary skill in the art, if the DATA_IN signal is unchanged for more than ½ of a bit duration (i.e., unchanged for longer than the delay through the 12 bit delay element 302) the SEL output from the second two-input exclusive NOR gate 306 is logical “1.” Referring to FIGS. 1 and 2, in an aspect implementing the FIG. 1 RVCO 124 with the FIG. 2 GVCO 200, all of the selector/VCD elements 202 will be in the “1” input mode, and the GVCO will therefore freely oscillate in accordance with the VB received from the FIG. 1 bias generator 116. Referring to FIG. 3, upon any transition in the DATA_IN signal, though, because of the 45 degree or ½ bit delay through the ½ bit delay element 302, SEL will, as shown by the FIG. 3 timing depiction 350, switch to a logical “0,” beginning at an edge 3502 coinciding with the DATA_IN transition and ending at 3504, which is ½ bit duration or width (BTW) in time. Referring to FIGS. 1 and 2, in an aspect implementing the FIG. 1 RVCO 124 with the FIG. 2 GVCO 200, in response to SEL switching to a logical “0,” all of the selector/VCD elements 202 switch to the “0” input which, as previously described, re-synchronizes the SCLK to generate the triggering edge of CLK45 at the midpoint of the bit immediately following the transition that triggered SEL.
FIG. 4A shows one example simulation result of one example periodic data stream input to a simulation model of one gated oscillator phase-tracking data recovery loop circuit according to one exemplary embodiment, operating in a ¼ rate recovery mode. It may be assumed that DATA_IN is an NRZ signal at a bit rate equal to four times the FS rate of SCLK, SEL is generated by the FIG. 3 example edge detector circuit, and that the CLK45, CLK135, CLK225 and CLK 315 waveforms are generated by a FIG. 2 GVCO 200 implementing the RVCO 124 of the FIG. 1 GVCO CDR circuit 100. It may be assumed that prior to the leading transition 402L of the first NRZ data bit the SCLK is out of synchronization with the DATA_IN. As shown, in response to the SEL 410A generated by the FIG. 3 edge detector circuit 300 from the leading transition 402L, the FIG. 2 GVCO synchronizes CLK45 to arrive at 420A, which is at the midpoint 402M of the first NRZ bit. One bit duration after the leading transition 402L of the first NRZ bit, since the depicted NRZ second bit value is different than the NRZ first bit value, there is a second bit transition 404L. The FIG. 3 edge detector circuit 300 generates another SEL 410B in response, but since the FIG. 2 GVCO 200 is already synchronized, the SEL switching of the selector/VCD elements to their respective “0” inputs does not result in a shift in the synchronization of the SCLK. The triggering edge 430A of the CLK135 arrives at the midpoint 404M of the second NRZ bit. The process continues, with the triggering edge 440A of CLK225 arriving at the midpoint 406M of the third NRZ bit, and the triggering edge 450A of CLK 315 arriving at the midpoint 408M of the fourth NRZ bit.
FIG. 4B shows one example simulation result of one example simulated random data stream input to the simulation model used in FIG. 4A, of one gated oscillator phase-tracking data recovery loop circuit according to one exemplary embodiment, operating in a ¼ rate recovery mode. The assumptions are the same as described for the FIG. 4A simulation, the difference being that the example DATA_IN is an NRZ burst starting with a leading edge 460L of a first NRZ “1” bit, succeeded by two more “1” bits, then a “0” bit. In other words, the example DATA_IN is an NRZ bit sequence of “1110.” In response to the leading edge 460L of the first NRZ bit, the FIG. 3 edge detection circuit generates an SEL 470, resulting in the CLK45 having a triggering edge 480 at the midpoint 460M of the first NRZ bit. The midpoints of the second and third NRZ bits are labeled 462M and 464M, respectively. Although there is no leading transition for the second and third NRZ bits, and therefore no SEL, the synchronization effectuated by the SEL 470 maintains the triggering edge 482 of CLK135 at the midpoint 462M of the second NRZ bit, and the triggering edge 484 of CLK225 at the midpoint 464M of the third NRZ bit. The fourth NRZ bit of the example “1110” sequence has a transition at 466L, causing another SEL 472. However, since the SCLK is still synchronized, the switching of the selector/VCD elements 200 in the FIG. 2 GVCO 200 to their “0” input does not effectuate a full shift in resynchronization. Instead, any phase drift in SCLK accumulated between the leading edge 460L of the first “1” bit and the leading edge 466L of the fourth NRZ bit, which is a “0”, is corrected. The triggering edge 486 of CLK 315 is therefore ensured to align with the midpoint 466M of the fourth NRZ bit.
It will be appreciated, referring to the FIG. 1 multi-phase sampler 102 that systems and methods according to exemplary embodiments can provide an effective multi-bit sampling clock, in this example a first bit sampling (CLK45), a second bit sampling clock (CLK135), a third bit sampling clock (CLK225) and a fourth bit sampling clock (CLK315). It will also be appreciated that one exemplary embodiment provides flexibility to select another subset of the phases of SCLK to sample a smaller number of NRZ bits each cycle.
The previously described examples show the FIG. 1 GVCO CDR circuit 100 operating in a ¼ data rate sampling mode. According to one exemplary embodiment, the FIG. 1 GVCO CDR circuit 100 includes a ½ data rate sampling mode that uses only another, smaller subset of the FIG. 2 GVCO 200 clock phases, for example CLK90 and CLK270. To sample two bits of the NRZ DATA_IN every cycle of SCLK, instead of four. FIG. 5 shows one example simulation result 500 of one example simulated ½ rate NRZ data stream DATA_IN input to the simulation model used in FIGS. 4A and 4B, modified to use the FIG. 2 GVCO 200 clocks CLK90 and CLK270. It may be assumed that the R-phase sampler 102 of the FIG. 1 GVCO CDR circuit 100 is configured to use, for example, a first and third of four (or more) available samplers (not shown), as opposed to the ¼ rate use of four of the available samplers. Referring to FIG. 5, leading edge 502L of a first DATA_IN NRZ bit results in a SEL 506A. It will be appreciated that the SEL 506A duration DW is the same as the duration of ½ of the higher rate bits of DATA_IN described in reference to FIGS. 4A and 4B. This illustrates an aspect in accordance with one or more exemplary embodiments in which the same edge detector circuit (for example, the FIG. 3 edge detector circuit 300) can be used for both ¼ rate and ½ rate sampling modes. The SEL duration of DW, relative to the bit duration in the ½ rate bits of DATA_IN, therefore, is only ¼ of the bit duration, as opposed to being ½ of the bit duration in relation to the full rate bits of DATA_IN in operations according to the ¼ rate mode.
Referring to FIGS. 2 and 5, it will be appreciated that the operation of SEL 506A on the selector/VCD elements 202 of the GVCO 200 causes the SCLK to be synchronized to generate the triggering edge 508 of the CLK90 at the midpoint 502M of the first data bit. Since the example second bit of DATA_IN has a different value than the example first bit, there is another transition at 504L, resulting in another SEL 506B. Referring to FIG. 2, since the GVCO 200 was synchronized by the SEL 506A to place the triggering edge of CLK90 at the midpoint 502M of the first bit, the SEL 506B will not effectuate a full phase shift of the SCLK and, instead, may force only a minor phase correction that ensures the triggering edge 510 of CLK270 is at the midpoint 504M of the second NRZ bit in the example DATA_IN.
The previously described examples show the FIG. 1 GVCO CDR circuit 100 operating in a ¼ rate sampling mode and in a ½ rate sampling mode for recovering NRZ data on the DATA_IN line. In both the ¼ rate sampling mode and the ½ rate sampling mode the SCLK phases can be viewed as NRZ sampling clocks, i.e., a first phase NRZ sampling clock and a second phase NRZ sampling clock in the ½ rate mode, and a first phase NRZ sampling clock, a second phase NRZ sampling clock, a third phase NRZ sampling clock and a fourth phase NRZ sampling clock in the ¼ rate mode.
According to one exemplary embodiment, the FIG. 1 GVCO CDR circuit 100 can be configured to have a pulse width modulation (PWM) decoding mode, where SCLK can be, instead of the four-phase example SCLK that is depicted, a single phase PWM sampling clock selected from the previously described CLK0, CLK45, CLK90, CLK135, CLK180, CLK225, CLK270, and CLK315 to be at a particular time instant in a PWM, as described in greater detail below. In one aspect, the only additional change is to configure the FIG. 1 GVCO CDR circuit 100 to mask the generation of SEL to generate SEL only in response to one of a falling and rising edge of a PWM signal, that being the edge to which the width of the pulse is referenced by the encoding scheme. Further provided by the PWM mode according to the exemplary embodiments, the masked SEL synchronizes the SCLK generation by the FIG. 2 GVCO 200 such that one of its generated clocks, for example, the CLK180 arrives at a time instant relative to the leading edge of the PWM pulse having a value established by the pulse width. For example, in various conventional PWM schemes a signal has one of two widths, one representing a binary “0” and the other representing a binary “1.” According to various PWM schemes, the pulse can set a minority of its duration (for example, ⅓ of the duration) at a first value (for example “0”) and a majority of its duration (for example, ⅔ of its duration) at second value (for example “1) to represent a binary “0”, and reverse this setting to represent a binary “1.” As will be described in greater detail below, according to one exemplary embodiment a GVCO CDR such as the FIG. 1 GVCO CDR circuit 100 can be configured to utilize the accurate synchronization of the sampling clocks relative to bit transitions, which enables NRZ decoding as previously described, to also accurately place a sampling clock at the midpoint of a PWM pulse. It will be appreciated that accurately placing the sampling point at the midpoint of the PWM pulse, according to the methods and systems of the exemplary embodiments, can provide accurate decoding of the PWM pulse, using the same hardware used for NRZ decoding. Therefore, among other features and benefits provided by sample clock generation and sampling according to the exemplary embodiments, can be a GVCO CDR—such as the FIG. 1 GVCO CDR circuit 100—capable of performing NRZ and PWM decoding, with the same hardware.
FIG. 6 shows one example simulation result 600 of one example simulated pulse-width modulated (PWM) data stream input to the simulation model used in FIGS. 4A and 4B, in a configuration for decoding a PWM data on the DATA_IN line. It will be understood that in one aspect the only feature additional to the those previously described that may required may be a logical mask added to, for example, the FIG. 3 edge detection circuit 300, to generate an SEL in response to only the rising edge or only the falling edge of the PWM pulse. As will be readily appreciated by persons of ordinary skill in the art from this disclosure, the choice of which of the edges is masked will depend on the polarity of PWM signal used. It will be further appreciated that a selective inverter (not shown) can be included in the DATA_IN path at, or preceding, the input of edge detector circuit (for example, the FIG. 3 edge detector circuit 300) to accommodate either polarity of PWM signaling. For purposes of example, the FIG. 6 simulation assumes the edge of the PWM signal that generates the SEL is the falling edge, and that the rising edge is therefore masked. Referring to FIG. 6, a first PWM code duration or symbol 602 has a duration BW, of which the leading ⅔ is at a logical “0” and the ending ⅓ at a logical “1.” It will be arbitrarily assumed that this represents a binary “0.” The falling edge 602L of the first PWM symbol 602 causes an edge detector (for example the FIG. 3 edge detector circuit 300) to generate an SEL 608. Referring to FIG. 2, the SEL 608 switches all of the selector/VCD elements 202 to their respective “0” inputs.
With continuing reference to FIG. 6, in the aspect modeled by the FIG. 6 simulation the CLK180, which is the NDL output of the first selector/VCD element 202A (alternatively referenced as the 0/180 clock element 202A), is used as the sampling clock. The above-described switching by the SEL 608 of the selector/VCD elements 202 to their respective “0” inputs causes the rising (in this example, the triggering) edge 620A of the CLK180 to occur at the midpoint 602M of the first PWM symbol 602. Because of the respective ⅔ and ⅓ duration of the leading “0” (ending at the rising edge 602R) and the ending “1” portion of the first PWM symbol 602, the value at the midpoint 602M is “0.” It is assumed that, in the PWM decoding mode represented by the FIG. 6 simulation result 600 that the sampling circuitry, for example the sampling circuit 130 of the FIG. 1 GVCO CDR circuit 100, is configured to assign one of the samplers (not explicitly shown) to function as the PWM mode sampler. Under this assumption, the assigned sampler, triggered by the triggering edge 620A of CLK180, recovers the bit value “0” for the first PWM symbol 602.
Referring still to FIG. 6, as previously described, it is assumed that the edge detector circuit, for example the FIG. 3 edge detector circuit 300, is configured to mask (i.e., ignore) the rising edge 602R of the first PWM symbol 602. Persons of ordinary skill in the art having view of the present disclosure can readily identify and implement various means for masking the rising edge, by adapting conventional semi-conductor logic techniques according to the disclosed concepts and, therefore, further detailed description of the masking structure is omitted. The next SEL, SEL 610, is therefore generated at the next falling edge 604L, which corresponds to the example second PWM symbol 604. The previously described synchronization repeats in response to SEL 610, which may adjust the phase of the triggering edge 620B of CLK180 to align with the midpoint 604M of the second PWM symbol, compensating for phase shifts due, for example, to changes in the propagation path. The rising edge 604R is masked to prevent it generating another SEL, as previously described.
Systems, devices and methods according to the exemplary embodiments can be applicable to a wide range of communication environments including, but not limited to, cellular wireless communications. For example MPHY or M-PHY is one application, as its specification provides a serial interface technology with high bandwidth capabilities. MPHY or M-PHY is targeted to be suitable for multiple protocols, including UniProSM and DigRFSM v4, and for a wide range of applications. MPHY receive (RX) application requires burst-mode clock and data recovery (CDR), for both PWM and NRZ data transmission. It will be apparent to persons of ordinary skill in the art that a circuit such as the FIG. 1 GVCO CDR circuit 100 can be readily configured to receive, using a single hardware arrangement, MPHY burst mode NRZ communications, as well as slower rate burst mode NRZ, continuous NRZ, PWM and other coding schemes.
FIG. 7 illustrates an exemplary wireless communication system 700 in which one or more embodiments of the disclosure may be advantageously employed. For purposes of illustration, the exemplary wireless communication system 700 shows three remote units 720, 730, and 750 and two base stations 740. It will be recognized that conventional wireless communication systems may have many more remote units and base stations. The remote units 720, 730, and 750 can include semiconductor devices 725, 735 and 755, and one or more of the semiconductor devices 725, 735 and 755 can include a semiconductor die or dies implementing an integrated circuit according to one or more of the exemplary embodiments including, but not limited to, embodiments described in reference to any of FIG. 1, 2 or 3. FIG. 7 shows forward link signals 780 from the base stations 740 and from the remote units 720, 730, and 750 and reverse link signals 790 from the remote units 720, 730, and 750 to the base stations 740.
In FIG. 7, the remote unit 720 is shown as a mobile telephone, the remote unit 730 is shown as a portable computer, and the remote unit 750 is shown as a fixed location remote unit in a wireless local loop system. It will be understood that these are only examples of devices that may implement any of the remote units 720, 730 and 750. For example, the remote units 720, 730 and 750 may be any of a mobile phone, hand-held personal communication system (PCS) unit, portable data unit such as personal data assistant, navigation device (such as GPS enabled device), set top box, music player, video player, or other mobile entertainment unit, or may be a fixed location data unit such as meter reading equipment, or any other device that stores or retrieves data or computer instructions, or any combination thereof. Although FIG. 7 illustrates remote units according to the teachings of the disclosure, the disclosure is not limited to these exemplary illustrated units. Embodiments of the disclosure may be suitably employed in any device that includes active integrated circuitry including memory and on-chip circuitry for test and characterization.
Various embodiments of the present invention overcome these and other shortcomings, and provide further advantages including, but not limited to, reduced overhead obtained from component sharing, multiple power mode operation, enabling detection of cable and other loads being coupled, or not coupled, during any of a plurality of power-up modes. Other example benefits will be understood from the detailed descriptions that follow.
In view of exemplary systems shown and described above, methodologies that may be implemented in accordance with the disclosed subject matter, will be better appreciated with reference to various flow charts. While, for purposes of simplicity of explanation, methodologies are shown and described as a series of blocks, it is to be understood and appreciated that the claimed subject matter is not limited by the number or order of blocks, as some blocks may occur in different orders and/or at substantially the same time with other blocks from what is depicted and described herein. Moreover, not all illustrated blocks may be required to implement methodologies described herein. It is to be appreciated that functionality associated with blocks may be implemented by software, hardware, a combination thereof or any other suitable means (e.g. device, system, process, or component). Additionally, it should be further appreciated that methodologies disclosed throughout this specification are capable of being stored on an article of manufacture to facilitate transporting and transferring such methodologies to various devices. Those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Further, the various methods disclosed herein can include employing a processor executing computer executable instructions stored on a computer readable storage medium to implement the methods.
It will be appreciated that data store (e.g., memories) components described herein may include or may be implemented using volatile memory, nonvolatile memory, or both. Nonvolatile memory may include or may be implemented with any non-volatile memory technology capable of meeting performance requirements pertaining to the particular memory function implemented, which can be readily ascertained by persons of ordinary skill in the art upon reading this disclosure, and may include, as illustrative but limitative examples, read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), or flash memory. Volatile memory may include or may be implemented with any volatile memory technology capable of meeting performance requirements pertaining to the particular memory function implemented, which can be readily ascertained by persons of ordinary skill in the art upon reading this disclosure, and may include, as illustrative but limitative examples, synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM). Memory of the various aspects is intended to comprise, without being limited to, these and any other suitable types of memory.
It is to be understood that aspects described herein may be implemented by hardware, software, firmware or any combination thereof When implemented in software, functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code means in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor. Also, any connection is properly termed a computer-readable medium. For example, if software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
Various illustrative logics, logical blocks, modules, and circuits described in connection with aspects disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform functions described herein. A general-purpose processor may be a microprocessor, but, in the alternative, processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Additionally, at least one processor may comprise one or more modules operable to perform one or more of the steps and/or actions described herein.
For a software implementation, techniques described herein may be implemented with modules (e.g., procedures, functions, and so on) that perform functions described herein. Software codes may be stored in memory units and executed by processors. Memory unit may be implemented within processor or external to processor, in which case memory unit can be communicatively coupled to processor through various means as is known in the art. Further, at least one processor may include one or more modules operable to perform functions described herein.
Various aspects or features described herein may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer-readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips, etc.), optical disks (e.g., compact disk (CD), digital versatile disk (DVD), etc.), smart cards, and flash memory devices (e.g., EPROM, card, stick, key drive, etc.). Additionally, various storage media described herein can represent one or more devices and/or other machine-readable media for storing information. The term “machine-readable medium” can include, without being limited to, wireless channels and various other media capable of storing, containing, and/or carrying instruction(s) and/or data. Additionally, a computer program product may include a computer readable medium having one or more instructions or codes operable to cause a computer to perform functions described herein.
Further, the steps and/or actions of a method or algorithm described in connection with aspects disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or a combination thereof A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium may be coupled to processor, such that processor can read information from, and write information to, storage medium. In the alternative, storage medium may be integral to processor. Further, in some aspects, processor and storage medium may reside in an ASIC. Additionally, ASIC may reside in a user terminal In the alternative, processor and storage medium may reside as discrete components in a user terminal Additionally, in some aspects, the steps and/or actions of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a machine readable medium and/or computer readable medium, which may be incorporated into a computer program product.
While the foregoing disclosure discusses illustrative aspects and/or embodiments, it should be noted that various changes and modifications could be made herein without departing from the scope of described aspects and/or embodiments as defined by the appended claims. Accordingly, described aspects are intended to embrace all such alterations, modifications and variations that fall within scope of appended claims. Furthermore, although elements of described aspects and/or embodiments may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated. Additionally, all or a portion of any aspect and/or embodiment may be utilized with all or a portion of any other aspect and/or embodiment, unless stated otherwise.