← Back to Patent Explorer
US6606360B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for receiving data

Assignee: Intel Corp
•
Filing: 1999-12-30
•
Granted: 2003-08-12
•
Expires: 2019-12-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for asynchronously receiving a stream of data. The method and apparatus operate to detect edges within the stream of data and track a transmitted clock using multiple locally-generated clock phases. Moreover, the method and apparatus determine whether each edge arrives early or late relative to an expected arrival time and use the determination whether an edge arrived early or late in a receiver decision process. An exemplary embodiment of the apparatus to recover a clock from a stream of data includes an edge buffer, an edge processor, a multi-phase clock and an elastic buffer. The edge buffer receives the data stream and outputs an edge signal that indicates detection of an edge within the data stream. The edge processor is coupled to the edge buffer, determines an average phase of the detected edges and outputs a data signal and the average phase. The multi-phase clock is coupled to the edge processor, and outputs a multiple clock phases offset from each other by a predetermined amount. The elastic buffer is coupled to the edge processor and the multi-phase clock and outputs the data and the average phase.

Inventors

  • 👤 David S. Dunning
  • 👤 Chamath Abhayagunawardhana

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 13:19
CPC Classifications
H; H04; H04L; H04L7/00; H04L7/02; H04L7/033; H04L7/0337; H04L7/0338

Claims Analysis

Total Claims: 43
Claim 1
Independent Claim 112 words
A method to asynchronously receive a stream of data comprising: detecting a plurality of edges within the stream of data; tracking a transmitted clock with a plurality of locally-generated clock phases; determining whether each edge arrives early or late relative to an expected arrival time; using the determination whether an edge arrived early or late in a receiver decision process; and incrementing a count in a counter, one counter for each of the plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges base on the counter in the counter.
Claim 2
Independent Claim 112 words
A method to asynchronously receive a stream of data comprising: detecting a plurality of edges within the stream of data; tracking a transmitted clock with a plurality of locally-generated clock phases; determining whether each edge arrives early or late relative to an expected arrival time; using the determination whether an edge arrived early or late in a receiver decision process; and incrementing a count in a counter, one counter for each of the plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges base on the counter in the counter.
Claim 3
Dependent Claim 18 words
The method according to claim 1 , further comprising calculating a moving average of the plurality of edges.
Claim 4
Dependent Claim 19 words
The method according to claim 2 , further comprising using the moving average to determine the expected arrival time.
Claim 5
Dependent Claim 33 words
The method according to claim 1 , further comprising placing the plurality of detected edges in an asynchronous pipeline and clocking the detected edges out into an edge processor using a locally-generated clock.
Claim 6
Dependent Claim 21 words
The method according to claim 1 , further comprising synchronizing the plurality of edges to the plurality of locally-generated clock phases.
Claim 7
Dependent Claim 20 words
The method according to claim 1 , further comprising generating the plurality of locally-generated clock phases at a receiving end.
Claim 8
Dependent Claim 23 words
The method according to claim 1 , further comprising qualifying the plurality of detected edges for use in subsequent processing using historical information.
Claim 9
Independent Claim 126 words
A method to asynchronously receive a stream of data comprising: detecting a plurality of edges within the stream of data; tracking a transmitted clock with a plurality of locally-generated clock phases; determining whether each edge arrives early or late relative to an expected arrival time; using the determination whether an edge arrived early or late in a receiver decision process; qualifying the plurality of detected edges for use in subsequent processing using historical information; and incrementing a count in a counter, one counter for each of the plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.
Claim 10
Independent Claim 126 words
A method to asynchronously receive a stream of data comprising: detecting a plurality of edges within the stream of data; tracking a transmitted clock with a plurality of locally-generated clock phases; determining whether each edge arrives early or late relative to an expected arrival time; using the determination whether an edge arrived early or late in a receiver decision process; qualifying the plurality of detected edges for use in subsequent processing using historical information; and incrementing a count in a counter, one counter for each of the plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.
Claim 11
Independent Claim 129 words
A method to asynchronously receive a stream of data comprising: detecting a plurality of edges within the stream of data; tracking a transmitted clock with a plurality of locally-generated clock phases; determining whether each edge arrives early or late relative to an expected arrival time; using the determination whether an edge arrived early or late in a receiver decision process; qualifying the plurality of detected edges for use in subsequent processing using historical information; and assigning a counter for each of the plurality of locally-generated clock phases, incrementing a particular counter associated with a particular clock phase each time a qualified detected edge is closest in time to said particular clock phase and determining a moving average phase of the qualified detected edges based on values in the counter.
Claim 12
Independent Claim 129 words
A method to asynchronously receive a stream of data comprising: detecting a plurality of edges within the stream of data; tracking a transmitted clock with a plurality of locally-generated clock phases; determining whether each edge arrives early or late relative to an expected arrival time; using the determination whether an edge arrived early or late in a receiver decision process; qualifying the plurality of detected edges for use in subsequent processing using historical information; and assigning a counter for each of the plurality of locally-generated clock phases, incrementing a particular counter associated with a particular clock phase each time a qualified detected edge is closest in time to said particular clock phase and determining a moving average phase of the qualified detected edges based on values in the counter.
Claim 13
Independent Claim 138 words
A method to asynchronously receive a stream of data comprising: detecting a plurality of edges within the stream of data; tracking a transmitted clock with a plurality of locally-generated clock phases; determining whether each edge arrives early or late relative to an expected arrival time; using the determination whether an edge arrived early or late in a receiver decision process; qualifying the plurality of detected edges for use in subsequent processing using historical information; and assigning a counter for each of the plurality of locally-generated clock phases, incrementing a particular counter associated with a particular clock phase each time a qualified detected edge is closest in time to said particular clock phase, said selecting one of the plurality of locally-generated clock phases whose assigned counter is a maximum as a moving average phase of the qualified detected edges.
Claim 14
Independent Claim 138 words
A method to asynchronously receive a stream of data comprising: detecting a plurality of edges within the stream of data; tracking a transmitted clock with a plurality of locally-generated clock phases; determining whether each edge arrives early or late relative to an expected arrival time; using the determination whether an edge arrived early or late in a receiver decision process; qualifying the plurality of detected edges for use in subsequent processing using historical information; and assigning a counter for each of the plurality of locally-generated clock phases, incrementing a particular counter associated with a particular clock phase each time a qualified detected edge is closest in time to said particular clock phase, said selecting one of the plurality of locally-generated clock phases whose assigned counter is a maximum as a moving average phase of the qualified detected edges.
Claim 15
Independent Claim 111 words
An apparatus to recover a clock from a stream of data comprising: a) an edge buffer to receive the data stream and output an edge signal that indicates detection of a plurality of edges within the data stream; b) an edge processor coupled to the edge buffer to determine an average phase of the detected edges and output a data signal and the average phase; c) a multi-phase clock coupled to the edge processor to output a plurality of clock phases offset from each other by a predetermined amount; and d) an elastic buffer coupled to the edge processor and the multi-phase clock to output the data and the average phase.
Claim 16
Independent Claim 111 words
An apparatus to recover a clock from a stream of data comprising: a) an edge buffer to receive the data stream and output an edge signal that indicates detection of a plurality of edges within the data stream; b) an edge processor coupled to the edge buffer to determine an average phase of the detected edges and output a data signal and the average phase; c) a multi-phase clock coupled to the edge processor to output a plurality of clock phases offset from each other by a predetermined amount; and d) an elastic buffer coupled to the edge processor and the multi-phase clock to output the data and the average phase.
Claim 17
Dependent Claim 39 words
The apparatus according to claim 11 , wherein the edge buffer comprises: a) an edge detector to detect edges in the data stream; and b) an edge pipeline coupled to the edge detector to temporarily store the detected edges.
Claim 18
Dependent Claim 28 words
The apparatus according to claim 11 , wherein the edge detector comprises a high-gain, high-bandwidth comparator to amplify minimum input signal swings to levels detectable by CMOS logic.
Claim 19
Dependent Claim 30 words
The apparatus according to claim 11 , wherein the edge buffer further comprises an edge pipeline into which detected edges are temporarily stored and clocked out by the edge processor.
Claim 20
Dependent Claim 59 words
The apparatus according to claim 11 , wherein the edge processor comprises a synchronizer to compare an edge signal to the plurality of locally-generated clock phases, select a clock phase among the plurality of locally-generated clock phases closest to the edge signal and output a phase voting signal to indicate which clock phase was closest to each edge signal.
Claim 21
Dependent Claim 37 words
The apparatus according to claim 15 , wherein the edge processor further comprises a phase picking logic circuit coupled to the synchronizer to determine the average phase based on the phase voting signal received from the synchronizer.
Claim 22
Dependent Claim 100 words
The apparatus according to claim 16 , wherein the phase picking logic circuit further comprises: a) an edge qualifier to receive the phase voting signal and select qualified voting signals among the phase voting signals based on historical data regarding the received data stream; b) a plurality of counters to count the phase voting signals, one for each of the plurality of clock phases; and c) maximizer to determine which one of the plurality of counters is maximum and output the clock phase associated with said one of the plurality of counters that is a maximum as the average phase.
Claim 23
Dependent Claim 124 words
An asynchronous receiving method to receive a data stream in a received waveform comprising: detecting a plurality of edges of the received waveform; using a local clock to determine an average phase of the plurality of edges of the received waveform; predicting a time when a next edge should be received based on the calculated average and determining whether the next edge was received early or late relative to the predicted time; and incrementing a count in a counter, one counter for each of a plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.
Claim 24
Dependent Claim 124 words
An asynchronous receiving method to receive a data stream in a received waveform comprising: detecting a plurality of edges of the received waveform; using a local clock to determine an average phase of the plurality of edges of the received waveform; predicting a time when a next edge should be received based on the calculated average and determining whether the next edge was received early or late relative to the predicted time; and incrementing a count in a counter, one counter for each of a plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.
Claim 25
Dependent Claim 34 words
The method according to claim 18 , further comprising making a decision as to a received symbol using the determination whether the next edge was received early or late relative to the predicted time.
Claim 26
Independent Claim 130 words
An apparatus to recover a clock from a stream of data encoded as a positive differential signal and a negative differential signal, comprising: a) an edge buffer to receive the positive and negative differential signals and output a positive zero crossing signal to indicate an occurrence of a rising edge of the positive differential signal and a negative zero crossing signal to indicate an occurrence of a rising edge of the negative differential signal; b) an edge processor coupled to the edge buffer to determine an average phase of the positive and negative zero crossing signals and output a data signal and the average phase; and c) a multi-phase clock coupled to the edge processor to output a plurality of clock phases offset from each other by a predetermined amount.
Claim 27
Independent Claim 130 words
An apparatus to recover a clock from a stream of data encoded as a positive differential signal and a negative differential signal, comprising: a) an edge buffer to receive the positive and negative differential signals and output a positive zero crossing signal to indicate an occurrence of a rising edge of the positive differential signal and a negative zero crossing signal to indicate an occurrence of a rising edge of the negative differential signal; b) an edge processor coupled to the edge buffer to determine an average phase of the positive and negative zero crossing signals and output a data signal and the average phase; and c) a multi-phase clock coupled to the edge processor to output a plurality of clock phases offset from each other by a predetermined amount.
Claim 28
Dependent Claim 29 words
The apparatus according to claim 20 , further comprising an elastic buffer coupled to the edge processor and the multi-phase clock to output the data and the average phase.
Claim 29
Dependent Claim 59 words
The apparatus according to claim 20 , wherein the edge buffer comprises: a) an edge detector to detect the positive and negative zero crossings; b) a positive asynchronous pipeline coupled to the edge detector to temporarily store the positive zero crossings; and c) a negative asynchronous pipeline coupled to the edge detector to temporarily store the negative zero crossings.
Claim 30
Dependent Claim 28 words
The apparatus according to claim 20 , wherein the edge detector comprises a high-gain, high-bandwidth comparator to amplify minimum input signal swings to levels detectable by CMOS logic.
Claim 31
Dependent Claim 136 words
The apparatus according to claim 20 , wherein the edge processor comprises: a) a positive synchronizer to compare the positive zero crossings to the plurality of locally-generated clock phases, select a clock phase among the plurality of locally-generated clock phases that lies closest in time to each of the positive zero crossings and output a positive phase voting signal to indicate which clock phase was closest to each of the positive zero crossings; and b) a negative synchronizer to compare the negative zero crossings to the plurality of locally-generated clock phases, select a clock phase among the plurality of locally-generated clock phases that lies closest in time to the each of the negative zero crossings and output a negative phase voting signal to indicate which clock phase was closest to each of the negative zero crossings.
Claim 32
Dependent Claim 46 words
The apparatus according to claim 24 , wherein the edge processor further comprises a phase picking logic circuit coupled to the positive and negative synchronizers to determine an average phase based on the positive and negative phase voting signals received from the positive and negative synchronizers.
Claim 33
Dependent Claim 110 words
The apparatus according to claim 25 , wherein the phase picking logic circuit further comprises: a) an edge qualifier to receive the positive and negative phase voting signals and select qualified voting signals among the positive and negative phase voting signals based on historical data regarding the received data stream; b) a plurality of counters to count the positive and negative phase voting signals, one for each of the plurality of clock phases; and c) a maximizer to determine which one of the plurality of counters is maximum and output the clock phase associated with said one of the plurality of counters that is a maximum as the average phase.
Claim 34
Dependent Claim 139 words
A computer system including a plurality of modular components communicating with each other, each of the modular components employing an asynchronous receiving method to receive a data stream from another modular component, said asynchronous receiving method comprising: detecting a plurality of edges within the stream of data; tracking a transmitted clock with a plurality of locally-generated clock phases; determining whether each edge arrives early or late relative to an expected arrival time; using the determination whether an edge arrived early or late in a receiver decision process; and incrementing a count in a counter, one counter for each of the plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.
Claim 35
Dependent Claim 139 words
A computer system including a plurality of modular components communicating with each other, each of the modular components employing an asynchronous receiving method to receive a data stream from another modular component, said asynchronous receiving method comprising: detecting a plurality of edges within the stream of data; tracking a transmitted clock with a plurality of locally-generated clock phases; determining whether each edge arrives early or late relative to an expected arrival time; using the determination whether an edge arrived early or late in a receiver decision process; and incrementing a count in a counter, one counter for each of the plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.
Claim 36
Dependent Claim 136 words
A communications system including a plurality of components communicating with each other, each of the components employing an asynchronous receiving method to receive a data stream from another component, said asynchronous receiving method comprising: detecting a plurality of edges within the stream of data; tracking a transmitted clock with a plurality of locally-generated clock phases; determining whether each edge arrives early or late relative to an expected arrival time; using the determination whether an edge arrived early or late in a receiver decision process; and incrementing a count in a counter, one counter for each of the plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.
Claim 37
Dependent Claim 136 words
A communications system including a plurality of components communicating with each other, each of the components employing an asynchronous receiving method to receive a data stream from another component, said asynchronous receiving method comprising: detecting a plurality of edges within the stream of data; tracking a transmitted clock with a plurality of locally-generated clock phases; determining whether each edge arrives early or late relative to an expected arrival time; using the determination whether an edge arrived early or late in a receiver decision process; and incrementing a count in a counter, one counter for each of the plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.
Claim 38
Independent Claim 103 words
A method to receive a stream of data comprising: detecting a plurality of edges within the stream of data; generating a plurality of locally-generated clock phases; tracking at least some of the edges with the locally-generated clock phases; selecting one of the plurality of locally-generated clock phases based upon the tracking; and incrementing a count in a counter, one counter for each of the plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.
Claim 39
Independent Claim 103 words
A method to receive a stream of data comprising: detecting a plurality of edges within the stream of data; generating a plurality of locally-generated clock phases; tracking at least some of the edges with the locally-generated clock phases; selecting one of the plurality of locally-generated clock phases based upon the tracking; and incrementing a count in a counter, one counter for each of the plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.
Claim 40
Dependent Claim 92 words
An asynchronous receiving method to receive a data stream in a received waveform comprising: detecting a plurality of edges of the received waveform; using a local clock to determine an average phase the plurality of edges of the received waveform; and incrementing a count in a counter, one counter for each of a plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.
Claim 41
Dependent Claim 92 words
An asynchronous receiving method to receive a data stream in a received waveform comprising: detecting a plurality of edges of the received waveform; using a local clock to determine an average phase the plurality of edges of the received waveform; and incrementing a count in a counter, one counter for each of a plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.
Claim 42
Dependent Claim 86 words
An asynchronous receiving method to receive a data stream in a received waveform comprising: detecting a plurality of edges of the received waveform; outputting a data stream based upon the detected plurality of edges; and incrementing a count in a counter, one counter for each of a plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.
Claim 43
Dependent Claim 86 words
An asynchronous receiving method to receive a data stream in a received waveform comprising: detecting a plurality of edges of the received waveform; outputting a data stream based upon the detected plurality of edges; and incrementing a count in a counter, one counter for each of a plurality of locally-generated clock phases, every time a qualified detected edge is closest to one of the plurality of locally-generated clock phases and determining an average phase of the qualified detected edges based on the counts in the counter.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2006-08-11 2007-02-10 2007-08-12 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2010-08-11 2011-02-10 2011-08-12 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2014-08-11 2015-02-10 2015-08-12 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag