# Clock and Data Recovery/Buffer Memory (Elastic Buffer)/Clock domains
## Master and slaves (slaves: regenerators or end points)

Inside a clock domain all the clocks are locked to a master.
They may jitter with respect to the master and with respect to each other, but they do not drift.
*Definition of slave clock: A clock whose timing output is phase-locked to a reference timing signal received from a higher quality clock.
From the synchronization point of view, a slave Clock Recovery node may be either a regenerator or an end point:
* A regenerator extracts the clock from the incoming signal in order both:
** to regenerate the incoming data and
** to drive the transmission with the regenerated clock on a further link;
* An end point uses the clock extracted from the incoming signal only to regenerate the data (and to write them in a memory where they can be retrieved)
       In general, the slave clock needs not run at the same frequency of the master.
       There are cases where the frequencies are different (by the ratio of two integer numbers).
       When the frequencies differ, the same jitter at the master and at the slave (equal if measured in time, i.e. in seconds), corresponds to different values in radian, because:
       and the jitter amount at the slave is different than at the master, by the ratio:
${\frac {\omega _{slave}}{\omega _{master}}}$

## Free running mode

If a slave gets disconnected from its master, a new domain is created.
* Definition of free running mode: An operating condition of a clock, the output signal of which is strongly influenced by the oscillating element and not controlled by servo phase-locking techniques. In this mode the clock has never had a network reference input, or the clock has lost external reference and has no access to stored data, that could be acquired from a previously connected external reference. Free-run begins when the clock output no longer reflects the influence of a connected external reference, or transition from it. Free-run terminates when the clock output has achieved lock to an external reference.

## Buffer memory
### Between clock domains

If two clocks exhibit a phase difference because they have followed different paths inside the same clock domain, or because they belong to different clock domains, a buffer memory can be used to compensate that difference. The figure below illustrates the second case, where, to compensate for the phase difference of two clocks of different domains, a buffer memory is used at the point of border connection.
* Definition of slips: Slips arise as a result of the inability of an equipment buffer store (and/or other mechanisms) to accommodate differences between the phases and/or frequencies of the incoming and outgoing signals in cases where the timing of the outgoing signal is not derived from that of the incoming signal. Slips may be controlled or uncontrolled depending on the slip control strategy.

### Within the same clock domain

Sometimes two data streams that have followed different paths within a clock domain need to converge on the same path. One of the two streams will keep its own clock, the other shall be phase aligned to it (and lose its own clock). The block that operates this alignment of phase shall be called Phase Aligner.
A phaser aligner is not exactly a slave in the ITU sense of: A clock whose timing output is phase-locked to a reference timing signal received from a higher quality clock. The timing output of a phase aligner is exactly the clock (without any additional impairment associated with a phase lock extraction) that is supplied to the phase aligner to perform the read operation from its elastic buffer.

## The three CDR functions in the clock domain

Three main CDR functions :
| CDR function | Recovered data | The slave clock | Timing | CDR requirements |
| END POINT | passed into another clock domain | used throughout, then discarded | SLAVE | Jitter tolerance |
| REGENERATOR | sent forward with the recovered clock | used throughout and sent forward to extend the clock domain | SLAVE | 1. Jitter tolerance 2. Little noise generation 3. Filtering out incoming noise and unwanted jitter |
| PHASE ALIGNER | sent forward with a cleaner local clock | used initially, then discarded | emancipated to a cleaner local clock | Jitter tolerance |

## References

* ↑ ITU-T Recommendation G.810 : Definitions and terminology for synchronization networks (08/96) Definition 4.2.6
* ↑ ITU-T Recommendation G.810 : Definitions and terminology for synchronization networks (08/96): Definition 4.4.1
* ↑ ITU-T Recommendation G.810 : Definitions and terminology for synchronization networks (08/96), Definition 6.1.3
| ← Clock and Data Recovery/Buffer Memory (Elastic Buffer) | Clock and Data Recovery | Clock and Data Recovery/Buffer Memory (Elastic Buffer)/Cascades of Buffers and CDRs, delays and tolerance → |