signal processing circuitry having parallel processing channels has clock-generation circuitry that generates (i) high-speed clock signals used to drive the channels and (ii) synchronization signals used to reset the processing of the channels. In one embodiment, the signal processing circuitry has multiple multiplexing channels arranged in one or more macrocells, each macrocell having one or more channels and a phase-locked loop (PLL) that generates a high-speed PLL clock signal and a synchronization signal for the macrocell's channels. Each channel has a counter that implements a state machine used to drive the multiplexing processing, where the state machine is reset to a specified state upon receipt of each synchronization pulse in the synchronization signal.
|
1. signal processing circuitry comprising:
(a) a plurality of parallel processing channels organized in one or more macrocells, each macrocell having one or more channels; and
(b) clock-generation circuitry adapted to generate (i) one or more reference clock signals for driving the channels and (ii) one or more synchronization signals applied to the channels, wherein:
each synchronization signal has a plurality of synchronization pulses;
when a channel receives a synchronization pulse in a synchronization signal, the channel resets its operations to a specified state, thereby reducing data skew between the channels;
each channel is adapted to function as a multiplexer; and
each channel is adapted to implement a state machine used to control the multiplexing of input signals applied to the channel, wherein the state machine is reset to a specified state whenever a synchronization pulse is received by the channel.
8. signal processing circuitry comprising:
(a) a plurality of parallel processing channels organized in one or more macrocells, each macrocell having one or more channels; and
(b) clock-generation circuitry adapted to generate (i) one or more reference clock signals for driving the channels and (ii) one or more synchronization signals applied to the channels, wherein:
each synchronization signal has a plurality of synchronization pulses;
when a channel receives a synchronization pulse in a synchronization signal, the channel resets its operations to a specified state, thereby reducing data skew between the channels; and
the clock-generation circuitry comprises a phase-locked loop (PLL) for each macrocell, wherein the PLL is adapted to generate (i) a high-speed PLL clock signal for driving each channel in the corresponding macrocell and (ii) a synchronization signal applied to each channel in the corresponding macrocell.
10. signal processing circuitry comprising:
(a) a plurality of parallel processing channels organized in one or more macrocells, each macrocell having one or more channels; and
(b) clock-generation circuitry adapted to generate (i) one or more reference clock signals for driving the channels and (ii) one or more synchronization signals applied to the channels, wherein:
each synchronization signal has a plurality of synchronization pulses;
when a channel receives a synchronization pulse in a synchronization signal, the channel resets its operations to a specified state, thereby reducing data skew between the channels; and
at least one channel comprises state machine circuitry connected to the clock-generation circuitry and adapted to implement a state machine used to control the processing by the channel, wherein the state machine is reset to a specified state whenever a synchronization pulse is received by the state machine circuitry from the clock-generation circuitry.
2. The invention of
3. The invention of
4. The invention of
5. The invention of
all of the channels are designed to implement identical functionality;
the clock-generation circuitry comprises a phase-locked loop (PLL) for each macrocell, wherein the PLL is adapted to generate (i) a high-speed PLL clock signal for driving each channel in the corresponding macrocell and (ii) a synchronization signal applied to each channel in the corresponding macrocell; and
a feedback divider of the PLL generates the synchronization signal having the same frequency as a low-speed reference clock signal applied as an input signal to the PLL, wherein the synchronization signal has an asymmetric duty cycle.
6. The invention of
7. The invention of
a counter and a divider circuit together adapted to implement the state machine; and
a synchronization circuit (1) connected between (i) the clock-generation circuitry and (ii) the counter and the divider circuit and (2) adapted to apply control signals to the counter and the divider circuit to reset the state machine to the specified state in response to the synchronization circuit receiving the synchronization pulse from the clock-generation circuitry.
9. The invention of
11. The invention of
a counter and a divider circuit together adapted to implement the state machine; and
a synchronization circuit (1) connected between (i) the clock-generation circuitry and (ii) the counter and the divider circuit and (2) adapted to apply control signals to the counter and the divider circuit to reset the state machine to the specified state in response to the synchronization circuit receiving the synchronization pulse from the clock-generation circuitry.
|
1. Field of the Invention
The present invention relates to electrical signal processing, and, in particular, to the synchronization of timing between parallel signal processing circuits.
2. Description of the Related Art
Data skew refers to differences in timing between different channels that operate in parallel in signal processing circuitry. Although ideally data should be presented at the outputs of the parallel processing channels at the same time (i.e., synchronously), these timing differences can result in output data being presented at different times (i.e., asynchronously). Data skew is an undesirable characteristic of parallel processing circuits that are intended to be used to perform identical—or at least similar—synchronous processing on different sets of input data.
One way to reduce the effects of data skew is to implement each channel with elastic storage devices to enable buffering of data in any channel as needed to adjust for data skew between different channels. In many signal processing applications, especially those involving high-speed signal processing (e.g., at processing speeds in the GHz range or higher), achieving more than a few nanoseconds of elastic data storage can be prohibitively expensive.
The problems in the prior art are addressed in accordance with the principles of the present invention by providing a technique for reducing data skew between different channels of parallel processing circuitry. According to certain embodiments of the present invention, the parallel processing circuitry has one or more macrocells, each macrocell having one or more identical—or at least similar—signal processing channels, each of which performs a multiplexing function. Each macrocell has clock-generation circuitry (e.g., a phase-locked loop (PLL)) that generates, preferably from the same low-speed reference clock signal, a high-speed PLL clock signal that drives circuitry within each channel to implement the multiplexing function. In addition, the clock-generation circuitry generates periodic synchronization pulses that are applied to one or more circuit elements in each channel. Each of these circuit elements reacts to the received synchronization pulses in an identical—or at least in an analogous—manner. For example, the circuit elements might include a counter that resets its counter value to a specified value whenever it receives a synchronization pulse. Since each channel receives a copy of each synchronization pulse, any differences in processing timing (i.e., data skew) between the various channels that accumulated since the previous synchronization pulse can be eliminated or at least reduced.
In one embodiment, the present invention is signal processing circuitry comprising (a) a plurality of parallel processing channels organized in one or more macrocells, each macrocell having one or more channels and (b) clock-generation circuitry adapted to generate (i) one or more reference clock signals for driving the channels and (ii) one or more synchronization signals applied to the channels, wherein each synchronization signal has a plurality of synchronization pulses. When a channel receives a synchronization pulse in a synchronization signal, the channel resets its operations to a specified state, thereby reducing data skew between the channels.
Other aspects, features, and advantages of the present invention will become more fully apparent from the following detailed description, the appended claims, and the accompanying drawings in which like reference numerals identify similar or identical elements.
Reference herein to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments necessarily mutually exclusive of other embodiments.
As shown in
Referring in particular to channel CH1A, but more generally to each channel, 20-to-4 multiplexer (mux) 120 receives 20 160-Mbps, single-ended, input data signals 102, arranged logically as four groups of five signals each. 20-to-4 mux 120 serializes each set of five input signals to produce four 800-Mbps, single-ended data signals 104, which are applied to retiming latch 122. Retiming latch 122 staggers (in time) the four 800-Mbps data signals received from mux 120 (for further serialization), converts each single-ended signal into a differential data signal, and applies the resulting staggered, differential signals 106 to 4-to-2 mux 124, arranged logically as two groups of two signals each. 4-to-2 mux 124 serializes each of the two pairs of signals 106 to produce two 1.6-Gbps, differential data signals 108, which are applied to 2-to-1 mux 126. Mux 126 serializes the two signals 108 to produce a single, 3.2-Gbps, differential output signal 110 for the channel.
The timing of the processing of muxes 120, 124, and 126, and latch 122 is controlled by signals generated by PLL 112, 4-phase-divide-by-2 (DIV2) circuit 128, counter 130, and reset circuit 132. In particular, 2-to-1 mux 126 is driven directly by the two-phase, 1.6-GHz PLL clock signal 116 generated by PLL 112. DIV2 circuit 128 divides clock signal 116 by two to generate an 800-MHz clock signal 118, which is used to drive counter 130, retiming latch 122, and 4-to-2 mux 124. Counter 130 repeatedly and sequentially counts from 0 to 4 and then back to 0 and applies five corresponding control signals 134 to 20-to-4 mux 120, which uses those control signals to serialize its four sets of input signals 102. Reset circuit 132 ensures that counter 130 is set to an appropriate, initial counter value (e.g., zero) when circuitry 100 is initially powered on. In particular, reset circuit 132 receives an indication 136 of an initial power-on condition and generates and applies a reset signal 138 to counter 130, which in response initializes its counter value to the appropriate value. In prior-art circuitry 100, this initialization of the counter value occurs once at power on and then never again as long as the circuit power is maintained.
Since each macrocell is driven by the same low-speed reference clock signal 114, and since each channel within each macrocell is driven by the same PLL-generated, high-speed clock signal 116, in theory, all of the processing channels should be able to operate synchronously. In other words, if the low-speed input data signals 102 applied to the various channels in circuitry 100 are synchronized (i.e., aligned in time), then the high-speed output data signals 110 generated by those channels should also be synchronized. However, a number of different effects can result in data skew between the various channels.
For example, although the various channels all receive power-on indication 136 when the circuitry is initially powered on, there may be differences in the exact time of arrival of that indication signal at the various channels. Such timing differences can result in an initial (fixed) data skew between the various channels. In addition, random errors caused by the circuit environment within each counter 130 can result in instances where the counter values are incremented in a non-sequential manner (e.g., skipping from 1 to 3 without counting 2 during a particular cycle of counting from 0 to 4). Such errors can result in additional (variable) data skew between the various channels. Depending on the magnitude and frequency of such errors, the data skew between the processing channels of
Upon receipt of a synchronization pulse in synchronization signal 236, synchronization circuit 232 generates and applies a control signal 238 to counter 230 and a control signal 240 to DIV2 circuit 228. DIV2 circuit 228 is driven by 1.6-GHz PLL clock signal 216, while counter 230 is driven by the 800-MHz clock signal 218 generated by DIV2 circuit 228. In order to account for these different clock speeds, synchronization circuit 232 increases (e.g., doubles) the width of each synchronization pulse in synchronization signal 236 for application to counter 230 as control signal 238. Other than being buffered by synchronization circuit 232, control signal 240 is substantially the same as synchronization signal 236.
In a preferred implementation, counter 230 and DIV2 circuit 228 together implement a state machine that repeatedly and sequentially changes its state from state 0 to state 9 and back to state 0 as driven by 1.6-GHz PLL clock signal 216. Upon receipt of control signals 238 and 240, the state machine is reset to an appropriate state (e.g., state 0).
Since each macrocell is driven by the same low-speed reference clock signal 214, and since each channel within each macrocell is driven by the same PLL-generated, high-speed clock signal 216, and since the processing of each channel is similarly reset in response to each synchronization pulse in each synchronization signal 236, then data skew in circuitry 200 (between different macrocells as well as within each macrocell) will be eliminated or at least reduced relative to that in circuitry 100 of
The use of PLLs to generate the high-speed reference clock signals and synchronization signals eliminates skew between the macrocells as long as the PLLs are locked to the same reference clock or to two different reference clocks with identical frequencies and substantially the same phase.
In addition to generating feedback signal 412, feedback divider 410 also generates synchronization signal 236. In a preferred embodiment, synchronization signal 236 is a 160-MHz signal having an asymmetric (in this case, 10%) duty cycle (as opposed to 160-MHz feedback signal 412 which typically has a symmetric (i.e., 50%) duty cycle).
Alternatives
Although the present invention has been described in the context of circuitry in which each synchronization signal has one synchronization pulse for every ten cycles of the high-speed PLL clock signal, where the duration of each synchronization pulse is equal to one high-speed clock cycle, the invention is not so limited. In other embodiments, synchronization pulses may be generated with different durations and/or different frequencies, with lower frequencies associated with less frequent resetting of the channel processing and therefore possibly higher levels of data skew building up between such resettings. Furthermore, the present invention may be implemented in the context of circuitry that generates synchronization pulses randomly or at least irregularly rather than periodically.
Although the present invention has been described in the context of a 20-to-1 multiplexing application that converts each set of 20 160-Mbps, single-ended input signals into one 3.2-Gbps, differential output signal, the present invention is not so limited. In general, the present invention can be applied to different multiplexing applications as well as applications other than multiplexing that involve parallel processing channels, including, without limitation, demultiplexing applications. In general, N-to-1 multiplexing applications involve converting each set of N low-speed (X-Mbps) input signals into a single high-speed (NX-Mbps) output signal, where the input and output signals may be any combination of single-ended and/or differential signals, and NX Mbps may be any frequency up to two times the high-speed PLL clock frequency.
Although the present invention has been described in the context of circuitry in which the high-speed PLL clock signals are generated using PLLs, the present invention is not so limited. The present invention can also be applied to circuitry having other types of clock-generation circuitry including delay locked loops (DLLs) and local crystal oscillators. Depending on the type of clock-generation circuitry employed, the synchronization of the present invention may or may not function across macrocell boundaries with the same accuracy as the embodiment of
Although the present invention has been described in the context of circuitry in which all of the channels are identical, the present invention is not so limited. The present invention can also be applied to circuitry having non-identical channels.
The present invention may be implemented as circuit-based processes, including possible implementation as a single integrated circuit, a multi-chip module, a single card, or a multi-card circuit pack. As would be apparent to one skilled in the art, various functions of circuit elements may also be implemented as processing steps in a software program. Such software may be employed in, for example, a digital signal processor, micro-controller, or general-purpose computer.
Unless explicitly stated otherwise, each numerical value and range should be interpreted as being approximate as if the word “about” or “approximately” preceded the value of the value or range.
It will be further understood that various changes in the details, materials, and arrangements of the parts which have been described and illustrated in order to explain the nature of this invention may be made by those skilled in the art without departing from the scope of the invention as expressed in the following claims.
Although the steps in the following method claims, if any, are recited in a particular sequence with corresponding labeling, unless the claim recitations otherwise imply a particular sequence for implementing some or all of those steps, those steps are not necessarily intended to be limited to being implemented in that particular sequence.
Abel, Christopher J., Laturell, Donald R., Anidjar, Joseph, Duggal, Abhishek
Patent | Priority | Assignee | Title |
11068017, | May 17 2011 | Rambus Inc. | Memory system using asymmetric source-synchronous clocking |
8099732, | Oct 17 2006 | TERADATA US, INC | Skew exception detection |
9874898, | May 08 2012 | Rambus Inc. | Memory system using asymmetric source-synchronous clocking |
Patent | Priority | Assignee | Title |
4596981, | May 30 1983 | Victor Company of Japan, Ltd. | Synchronizing signal detecting circuit in a digital signal transmitting system |
5694066, | Nov 28 1995 | Transpacific IP Ltd | Low-jitter, non-slip clock generator |
6336192, | Feb 16 1998 | Nippon Telegraph and Telephone Corporation | Parallel redundancy encoding apparatus |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 10 2003 | DUGGAL, ABHISHEK | AGERE Systems Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013766 | /0027 | |
Feb 10 2003 | ANIDJAR, JOSEPH | AGERE Systems Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013766 | /0027 | |
Feb 10 2003 | ABEL, CHRISTOPHER J | AGERE Systems Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013766 | /0027 | |
Feb 10 2003 | LATURELL, DONALD R | AGERE Systems Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013766 | /0027 | |
Feb 11 2003 | Agere Systems Inc. | (assignment on the face of the patent) | / | |||
May 06 2014 | Agere Systems LLC | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
May 06 2014 | LSI Corporation | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
Aug 04 2014 | Agere Systems LLC | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035365 | /0634 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | Agere Systems LLC | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 | |
Feb 01 2016 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | BANK OF AMERICA, N A , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 037808 | /0001 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | LSI Corporation | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 | |
Jan 19 2017 | BANK OF AMERICA, N A , AS COLLATERAL AGENT | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS | 041710 | /0001 | |
May 09 2018 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | MERGER SEE DOCUMENT FOR DETAILS | 047195 | /0827 | |
Sep 05 2018 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED AT REEL: 047195 FRAME: 0827 ASSIGNOR S HEREBY CONFIRMS THE MERGER | 047924 | /0571 |
Date | Maintenance Fee Events |
Jul 07 2009 | ASPN: Payor Number Assigned. |
Jul 25 2012 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jul 22 2016 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Aug 24 2020 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 24 2012 | 4 years fee payment window open |
Aug 24 2012 | 6 months grace period start (w surcharge) |
Feb 24 2013 | patent expiry (for year 4) |
Feb 24 2015 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 24 2016 | 8 years fee payment window open |
Aug 24 2016 | 6 months grace period start (w surcharge) |
Feb 24 2017 | patent expiry (for year 8) |
Feb 24 2019 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 24 2020 | 12 years fee payment window open |
Aug 24 2020 | 6 months grace period start (w surcharge) |
Feb 24 2021 | patent expiry (for year 12) |
Feb 24 2023 | 2 years to revive unintentionally abandoned end. (for year 12) |