WO2009105095A1 - Redriver with two reference clocks and method of operation thereof - Google Patents

Redriver with two reference clocks and method of operation thereof Download PDF

Info

Publication number
WO2009105095A1
WO2009105095A1 PCT/US2008/054399 US2008054399W WO2009105095A1 WO 2009105095 A1 WO2009105095 A1 WO 2009105095A1 US 2008054399 W US2008054399 W US 2008054399W WO 2009105095 A1 WO2009105095 A1 WO 2009105095A1
Authority
WO
WIPO (PCT)
Prior art keywords
redriver
inbound
outbound
clock
elastic buffer
Prior art date
Application number
PCT/US2008/054399
Other languages
French (fr)
Inventor
Ho M. Lai
Chi K. Sides
Paul V. Brownell
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2008/054399 priority Critical patent/WO2009105095A1/en
Priority to CN200880127260.8A priority patent/CN101946219B/en
Priority to KR1020107018505A priority patent/KR101419292B1/en
Priority to US12/918,050 priority patent/US8166334B2/en
Priority to EP08730240.2A priority patent/EP2255263B1/en
Priority to JP2010547602A priority patent/JP5138050B2/en
Publication of WO2009105095A1 publication Critical patent/WO2009105095A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Definitions

  • One architecture that can be used to increase the storage capacity of a system with such server blades involves installation of a storage blade in proximity to the server blade.
  • the server blade and the storage blade communicate through an x4 PCl-Express (PCIe) link.
  • PCIe PCl-Express
  • the backplane used with the blades does not support a common reference clock.
  • the current x86 clock architecture implements a low cost crystal plus clock generator with multiple output frequencies, the clock source on servers as well as on server blade systems tends to have a large phase jitter.
  • most chip vendors implement low cost digital CDR (clock-data-recovery) circuitry, which may not work properly in a high phase jitter environment.
  • the redriver further includes an outbound elastic buffer that has the separate reference clock for an outbound elastic buffer interface between the redriver and the external component, the common reference clock for an outbound elastic buffer interface between the North-Bridge and the redriver, and an outbound decoder/descrambler, an outbound scrambler/encoder, and outbound linear shift registers.
  • the redriver includes dock recovery logic coupled an external component side of the redriver and to a North-Bridge side of the redriver.
  • the redriver has an inbound data portion and an outbound data portion
  • the redriver includes an inbound elastic buffer comprising means for adjusting inbound data to compensate for a non-common reference clock, and an outbound elastic buffer comprising means for adjusting outbound data to compensate for a non-common reference clock.
  • the redriver further includes a common reference clock coupled to a first side of the redriverr, a low jitter reference clock coupled to a second side of the redriver, and clock recovery logic coupled to the first and the second sides of the redriver.
  • Figures I A and IB illustrate embodiments of multiple blade architectures;
  • Figure 2 illustrates frequency variations allowed with spread spectrum clocking;
  • Figure 3 illustrates an embodiment of a multiple blade architecture using two reference clocks
  • Figure 4 illustrates an embodiment of a two reference clock redriver architecture.
  • Figure 5 illustrates an embodiment of an elastic buffer operation used with the two reference clock redriver architecture for a fast recovered clock
  • Figure 6 illustrates an embodiment of an operation of the elastic buffer for a slow recovered clock
  • Figures 7 - 9 illustrate alternate applications of two reference clock architectures
  • Figure 10 is a flowchart illustrating an embodiment of a method for operating a computer system component having two reference clocks.
  • a computer system encompasses any number of architectures including, for example, blade server systems, blade storage systems, a notebook computer and its docking station, a PCl-Express expansion system, and any other computing system that may use devices that do not have a common reference clock. Examples of such architectures are provided in Figures 4 and 7 - 9.
  • a computer also encompasses a portion, or subset, of components comprising the computer system.
  • reference clocks include low-grade system clocks, low jitter clocks, and clocks embedded in data streams.
  • signal conditioners include signal amplifiers, redrivers, and similar devices.
  • Signal conditioners may be used to adjust and correct for signal level attenuation and noise (jitter) by using equalization and pre- emphasis/de-emphasis techniques, for example, so that the receiving end has die margins needed to deliver low bit error rates with high-speed signal protocols, such as PCI- Express.
  • signal conditioner On such signal conditioner is a redriver.
  • Spread-spectrum clocking is used in the design of synchronous digital systems, especially those containing microprocessors, to reduce the spectral density of the electromagnetic interference (EMI) that these systems generate.
  • a synchronous digital system is one that is driven by a clock signal that, because of its periodic nature, has an unavoidably narrow frequency spectrum. In fact, a perfect clock signal would have all its energy concentrated at a single frequency and its harmonics, and would therefore radiate energy with an infinite spectral density.
  • Practical synchronous digital systems radiate electromagnetic energy on a number of narrow bands spread over the clock frequency and ils harmonics, resulting in a frequency spectrum thai, at cettain frequencies, can exceed the regulatory limits for electromagnetic interference.
  • spread spectrum clocking is used to reshape the system ' s electromagnetic emissions to comply with the electromagnetic compatibility
  • EMC Electrometic Control
  • Spread-spectrum clocking distributes the energy so that it falls into a large number of the receiver's frequency bands, without putting enough energy into any one band to exceed the statutory limits.
  • spread-spectrum clocking can create challenges for designers because modifying the system clock runs the risk of the clock/data misalignment.
  • Spread spectrum clocking is accomplished by slowly modulating the frequency of the system clock back and forth a small amount.
  • the PCI-Express Specification allows down spread spectrum clocking; that is, data rate may be modulated +0% to -0.5% from nominal data rate frequency, at a modulation rate in the range of 30Khz to 33Khz. See Figure 2.
  • the PCl-Express Specification still requires the transmitter and receiver clocks to be within +/-300 ⁇ pm of each other even when spread spectrum clocking is enabled. This requirement can not be guaranteed in systems with a non- common reference clock.
  • PCI-Express uses a source synchronous riming architecture.
  • a source synchronous liming architecture both data and a clock are transmitted from the originating device's driver. The receiving device recovers the clock to allow synchronization of the data.
  • PCl-Express uses a scheme where the forwarded clock is embedded into the data stream using [BM's 8B/10B encoding tables. This encoding mechanism ensures that the data stream will have a sufficient number of 0-to-l and 1-to-0 transitions to allow the clock to be recovered. This mechanism obviates the need to minimize skew, but creates, instead, a two-clock domain. That is, due to the allowed 600 ppm tolerance band, two devices connected to each other by a PCl-Express connection can, and most likely will, be operating at slightly different frequencies.
  • a storage blade product is provided for installation next to any C-class server blade. Communication between the server blade and storage blade is through a x4 PCl-Express link.
  • PCl-Express link configurations Two possible PCl- Express link configurations, direct and indirect, are shown in Figures IA and IB, respectively.
  • Figure IA a half height C-class server blade IO is coupled to a storage blade 20.
  • a direct link is established when PCI-Express bus 18 is connected directly from North-Bridge (NB) 14 on the server blade 10 to SAS control card 24 on the storage blade 20 by way of connections 16 and 26.
  • Also shown on the cards 10 and 20 are clocks 12 and 22, respectively. Note that the clocks 12 and 22 are non-common reference clocks, a fact that can lead to system failures when spread spectrum clocking is enabled,
  • a full height C-class server blade 30 is installed next to storage blade 20.
  • PCl-Express bus 38 on the C-class server blade 30 is connected from the North- Bridge 14 to a redriver chip 32, and then from the redriver chip 32 to the SAS control card 24 on the storage blade 20.
  • the use of the redriver chip 32 accounts for additional signal loss due to a longer trace length of the PCl-Express bus 38.
  • the redriver chip 32 is mounted on a mezzanine card 34.
  • the two blades 20 and 30 employ non-common reference clocks 22 and 12, respectively. To resolve the problems posed by spread spectrum clocking in server/storage blade applications, the architectures disclosed herein provide two reference clocks.
  • FIG. 3 An example of such an architecture is shown in Figure 3 in which a storage blade 100 is mated to a server blade 120.
  • the server blade 120 may be any type of server blade including, for example, a C-class server blade.
  • the storage blade includes a PC .-Express card 24, connectors 26 and a low jitter clock 1 10.
  • a low jitter clock typically has less than 100 ppm (parts per million) of phase jitter.
  • low cost clocks have more than 300 ppm of phase jitter.
  • With a low jitter clock not only is the phase jitter low, but also the low jitter clock is resistant to power noise modulation, and the clock frequency is very stable. Note that any blade that does not use a common reference clock cannot accommodate spread spectrum clocking.
  • the server blade 120 includes North-Bridge 14, PCI-Express link 130, connectors
  • the elastic buffer can experience an overflow or an underflow error condition, To eliminate these errors, the elastic buffer fill and drain rates may be adjusted,
  • One means for adjusting these rates involves addition or removal of special symbols that are used in PCI- Express architectures. These symbols are known as SKP symbols, and are found in SKP ordered sets. SKP ordered sets are used to maintain synchronization between a transmitter and a receiver and to prevent overflow or underflow error conditions. The receiver can discard the SKP characters. An SKP ordered set consists of a single COM symbol followed by three SKP symbols. Other means for adjusting the fill and drain rates will be discussed later.
  • the rate at which SKP ordered sets are transmitted is derived from the maximum frequency tolerance allowed between two devices, namely 600 ppm. At this level, the local clocks of the two devices shift one clock cycle every 1 ,666 cycles Therefore, the transmitter must schedule a SKP ordered set to be sent more frequently than every 1,666 clock cycles.
  • the PO-Express Specification defines the period between SKP ordered set transmissions as between 1,180 and 1,538 symbol times.
  • the storage blade side of the redriver 200 uses a separate low jitter clock 210.
  • the low jitter reference clock 210 does not use spread spectrum clocking.
  • the storage blade 100 also uses a separate low jitter reference clock 1 10. which also does not allow for spread spectrum clocking
  • the reference clocks 1 10, 140, and 210 have standard 100 MHz clock sources, which are used as inputs to phase locked loops (PLLs) to generate higher frequency clocks for internal logics and COR (Clock Data Recovery)
  • PLLs phase locked loops
  • COR Lock Data Recovery
  • PLl., 145 may convert the 100 MHz clock to 2.5 GHz.
  • Data 160 from the storage blade 100 enters the inbound elastic buffer 220 at a nominal 2.5 GHz and data 165 exiting the inbound elastic butter 220 exits at a nominal
  • Local clock A signal 145 which is derived from the output of PLL 142 based on the common reference clock. Local clock A signal 145 also is used to clock data out of inbound elastic buffer 220
  • FIG 5 illustrates an embodiment of an elastic buffer operation used with the redriver 200 of Figure 4 for a fast recovered clock.
  • Elastic buffer 220 receives an inbound data stream and provides a modified inbound data stream.
  • the elastic buffer 220 may be operated such that it is normally half full, or just below trip point A.
  • buffer logic within the elastic buffer 220 first removes idle data from the inbound data stream if the PCI-Express link is in the active state (i.e., if the link has been powered up and passed the link training states).
  • PCl Express is designed such that the information contained in each DLLP is also contained in subsequent DLLPs of the .same type, so that a DLLP that is corrupted or lost in transit has a minimal effect on link performance. If multiple successive DlJ.. Ps of the same type are lost, however, performance degradation will occur (it can cause transaction replay and/or inhibit the issuance of new transactions).
  • DLLPs begin with an unscrambled 11 SDP" framing symbol followed by a DLLP Type byte.
  • the buffer logic within the elastic buffer 220 may be designed to remove four DLLP types in particular: Acknowledges. Posted Credit Updates, Non-posted Credit Updates, and Completion Credit Updates.
  • the herein described flexible buffers use semaphores to prevent deletion of multiple DLLPs of the same type. For example, a fast recovered clock may cause the buffer logic to discard a Posted Credit Update DLLP. When this occurs, an internal Posted Credit Update semaphore is set to prevent the logic from discarding another Posted Credit Update until another Posted Credit Update (of the same virtual channel) passes through. The second Update contains the same number of credits as the previous packet plus it may contain additional credits. Passing the second packet through removes a potential bottleneck in outbound, posted cycles. Finally, should the contents of elastic buffer 220 reach trip point C, the buffer logic discards a Transaction Layer Packet (TLP) from the inbound data stream.
  • TLP Transaction Layer Packet
  • the buffer logic accomplishes this by looking for the TLP start framing symbol (STP), and discarding every symbol until it detects the HND symbol. This will cause the transmitter to replay the TLP. either due to a Negative Acknowledge (Nak) of a subsequent TLP or due to an Acknowledge (Ack) timeout.
  • the sequence number for the removed TLP is stored in local register for comparison to future outbound Ack packets.
  • TLP disposal logic resets itself for the next time the elastic buffer fills beyond trip point C. This prevents excessive TLP replays, which can seriously hamper link performance.
  • the buffer logic associated with a typical elastic buffer such as the elastic buffer associated with components upstream and downstream of the elastic buffer 220, adds SKP symbols to the buffer contents.
  • the buffer logic associated with the elastic buffer 220 adds a SKP ordered set to the data stream. Note that since the redriver 200 is an intermediate buffer and not the final receiver on the link, the redriver 200 must not alter the size of the SKP ordered set. However, in some cases, even the addition of SKP symbols is not enough to prevent emptying the elastic buffer
  • the redriver 200 includes typical PCI Express components such as a 10/8b decoder 221, descrambler 222, linear feedback shift register (LSFR.) 223, SKP/idle insertion module 225, scrambler 226, 8b/10b encoder 227, and outbound linear feedback shift register (LSFR) 229 as shown in Figure 6.
  • the decoder 221 converts the 10-bit inbound symbols to 8-bit bytes
  • the descrambler 222 uses the LSFR 223 to convert the bytes to unscrambled bytes. At this point the data stream can be analyzed for the aforementioned framing symbols.
  • FIG. 5 and 6 illustrate operation of (he inbound elastic buffer 220.
  • the inbound elastic buffer 220 is a two reference clock elastic buffer architecture.
  • the outbound elastic buffer 240 also is a two reference clock architected butter, and the architecture and method for preventing overflow and underflow of the outbound elastic buffer 240 is similar in all pertinent respects to the architecture and method applicable to the inbound elastic buffer 220.
  • Figures 7 - 9 illustrate embodiments of computer systems employing redrivers to ensure signal continuity and fidelity across multiple connections and vary ing-length trace lengths.
  • Figure 10 is a flowchart illustrating an embodiment of a method 500 for operating a computer system, such as the computer system of Figure 3, having a two reference clock architecture.
  • the redriver 200 receives an inbound data stream (inbound in the sense that the data stream emanates from storage blade 100), the inbound data stream having a recovered clock.
  • buffer logic associated with inbound elastic buffer 220 notes the recovered clock
  • the inbound elastic buffer 220 determines if the recovered clock is fast relative to the system clock 140. If the recovered clock is fast, the method 500 moves to block 515 and the link is checked to see if the link is active. If the link is active, the method 500 moves to block
  • the method 500 moves to block 516 to determine if the link is in the "Configuration. Idle" training sub-state. If the link is not in "Configuration. Idle”, then in block 518, the buffer logic associated with the buffer 220 removes a training ordered set. [f the link is in the "Configuration.Idle” sub-state, the method 500 moves to block 517 and the buffer logic associated with the inbound buffer 220 removes idle data from the inbound data stream. At this point the logic forwards inbound data to NB (block 560), Following blocks 517 or 518 the method 500 moves to block 560. In block 520, the buffer logic associated with the inbound buffer 220 determines if the recovered clock still is too fast.
  • the method 500 moves to block 525 and the buffer logic removes a DLLP symbol and sets a corresponding semaphore The method 500 then moves to block 530 3n block 530. the buffer logic again determines if the recovered clock is too fast. If the recovered clock still is too fast, then in block 535, the butter logic removes a TLP packet from the data stream and sets a TLP semaphore The method then moves to block 560.
  • the method 500 moves to block 560 Returning to block 520. if the recovered clock is not too fast, the method 500 moves to block 560.
  • the method 500 moves to block 540 and the buffer logic associated with the inbound flexible buffer 220 determines if the recovered clock is too slow. If the recovered clock is not too slow, the method 500 moves to block 560. If the recovered clock is too slow, the method 500 moves to block 545 and the link is checked to see if the link is active. If the link is active, the method 500 moves to block 546 and idle data are added to the inbound data stream If the link is not active, then in block 547 the buffer logic adds SKP symbols to the inbound data stream.
  • the method then moves to block 550 and the buffer logic again checks to see if the recovered clock is too slow If the recovered clock still is too slow, the method 500 moves to block 555 and the buffer logic adds idle data to the inbound data stream The method then moves to block 560 and the inbound data stream is passed to the North- Bridge 14.

Abstract

A two reference clock architected redriver includes an inbound elastic buffer and an outbound elastic buffer. Data transmitted to and received from a North Bridge uses a common reference clock architecture. Data transmitted to and received from an external blade uses a separate reference clock architecture. The inbound elastic buffer includes an inbound elastic buffer recovered clock domain, an inbound elastic buffer common reference clock domain, and an inbound decoder/descrambler, an inbound scrambler/encoder, and inbound liner shift registers. The outbound elastic buffer includes an outbound elastic buffer common reference clock domain, an outbound elastic buffer low jitter clock domain, and an outbound decoder/descrambler, an outbound scrambler/encoder, and outbound liner shift register.

Description

REDRIVER WITH TWO REFERENCE CLOCKS AND METHOD OF
OPERATION THEREOF
Technical Field
The technical field is timing schemes for electronic assemblies. Background
With some current server blades, storage capacity is limited. One architecture that can be used to increase the storage capacity of a system with such server blades involves installation of a storage blade in proximity to the server blade. The server blade and the storage blade communicate through an x4 PCl-Express (PCIe) link. However, the backplane used with the blades does not support a common reference clock. Furthermore, because the current x86 clock architecture implements a low cost crystal plus clock generator with multiple output frequencies, the clock source on servers as well as on server blade systems tends to have a large phase jitter. In addition, most chip vendors implement low cost digital CDR (clock-data-recovery) circuitry, which may not work properly in a high phase jitter environment.
Due to the separate reference clock (refclk) used on the current blade architecture, SSC (spread-speclrum-clocking) cannot be supported. Any such attempt to use spread spectrum clocking likely will make those architectures vulnerable to failure.
Summary What is disclosed is a redriver having two reference clocks. The redriver couples an external component, such as a storage blade to a hub, such as a North-Bridge or Root Complex on a server blade. The redriver includes an inbound elastic buffer that has a separate reference clock for an inbound elastic buffer interface between the redriver and the external component, a common reference clock for an inbound elastic buffer interface between the North-Bridge and the redriver, and an inbound decoder/descrambler, an inbound scrambler/encoder, and inbound linear shift registers. The redriver further includes an outbound elastic buffer that has the separate reference clock for an outbound elastic buffer interface between the redriver and the external component, the common reference clock for an outbound elastic buffer interface between the North-Bridge and the redriver, and an outbound decoder/descrambler, an outbound scrambler/encoder, and outbound linear shift registers. Finally, the redriver includes dock recovery logic coupled an external component side of the redriver and to a North-Bridge side of the redriver.
Also disclosed is a redriver employing multiple, non-common reference clocks
The redriver has an inbound data portion and an outbound data portion The redriver includes an inbound elastic buffer comprising means for adjusting inbound data to compensate for a non-common reference clock, and an outbound elastic buffer comprising means for adjusting outbound data to compensate for a non-common reference clock. The redriver further includes a common reference clock coupled to a first side of the redriverr, a low jitter reference clock coupled to a second side of the redriver, and clock recovery logic coupled to the first and the second sides of the redriver.
Description of the Drawings
The detailed description will refer to the following drawings in which like numerals refer to like items and in which:
Figures I A and IB illustrate embodiments of multiple blade architectures; Figure 2 illustrates frequency variations allowed with spread spectrum clocking;
Figure 3 illustrates an embodiment of a multiple blade architecture using two reference clocks;
Figure 4 illustrates an embodiment of a two reference clock redriver architecture.
Figure 5 illustrates an embodiment of an elastic buffer operation used with the two reference clock redriver architecture for a fast recovered clock,
Figure 6 illustrates an embodiment of an operation of the elastic buffer for a slow recovered clock,
Figures 7 - 9 illustrate alternate applications of two reference clock architectures; and Figure 10 is a flowchart illustrating an embodiment of a method for operating a computer system component having two reference clocks.
Detailed Description
As used herein, a computer system encompasses any number of architectures including, for example, blade server systems, blade storage systems, a notebook computer and its docking station, a PCl-Express expansion system, and any other computing system that may use devices that do not have a common reference clock. Examples of such architectures are provided in Figures 4 and 7 - 9. As used herein, a computer also encompasses a portion, or subset, of components comprising the computer system. As used herein, reference clocks include low-grade system clocks, low jitter clocks, and clocks embedded in data streams. As used herein, signal conditioners include signal amplifiers, redrivers, and similar devices.
The advent of high-speed, serial-differential protocols like PCI-Express operating at high data transfer rates has led to issues of signal integrity in some architectures, particularly in lossy transmission applications. Signal conditioners may be used to adjust and correct for signal level attenuation and noise (jitter) by using equalization and pre- emphasis/de-emphasis techniques, for example, so that the receiving end has die margins needed to deliver low bit error rates with high-speed signal protocols, such as PCI- Express. On such signal conditioner is a redriver.
Spread-spectrum clocking is used in the design of synchronous digital systems, especially those containing microprocessors, to reduce the spectral density of the electromagnetic interference (EMI) that these systems generate. A synchronous digital system is one that is driven by a clock signal that, because of its periodic nature, has an unavoidably narrow frequency spectrum. In fact, a perfect clock signal would have all its energy concentrated at a single frequency and its harmonics, and would therefore radiate energy with an infinite spectral density. Practical synchronous digital systems radiate electromagnetic energy on a number of narrow bands spread over the clock frequency and ils harmonics, resulting in a frequency spectrum thai, at cettain frequencies, can exceed the regulatory limits for electromagnetic interference.
To avoid this EMI emission problem, spread spectrum clocking is used to reshape the system's electromagnetic emissions to comply with the electromagnetic compatibility
(EMC) regulations. Spread-spectrum clocking distributes the energy so that it falls into a large number of the receiver's frequency bands, without putting enough energy into any one band to exceed the statutory limits. However, spread-spectrum clocking can create challenges for designers because modifying the system clock runs the risk of the clock/data misalignment.
Spread spectrum clocking is accomplished by slowly modulating the frequency of the system clock back and forth a small amount. The PCI-Express Specification allows down spread spectrum clocking; that is, data rate may be modulated +0% to -0.5% from nominal data rate frequency, at a modulation rate in the range of 30Khz to 33Khz. See Figure 2. However, the PCl-Express Specification still requires the transmitter and receiver clocks to be within +/-300ρpm of each other even when spread spectrum clocking is enabled. This requirement can not be guaranteed in systems with a non- common reference clock.
PCI-Express uses a source synchronous riming architecture. In a source synchronous liming architecture, both data and a clock are transmitted from the originating device's driver. The receiving device recovers the clock to allow synchronization of the data. PCl-Express uses a scheme where the forwarded clock is embedded into the data stream using [BM's 8B/10B encoding tables. This encoding mechanism ensures that the data stream will have a sufficient number of 0-to-l and 1-to-0 transitions to allow the clock to be recovered. This mechanism obviates the need to minimize skew, but creates, instead, a two-clock domain. That is, due to the allowed 600 ppm tolerance band, two devices connected to each other by a PCl-Express connection can, and most likely will, be operating at slightly different frequencies.
To increase SAS storage capacity in a bladed architecture, a storage blade product is provided for installation next to any C-class server blade. Communication between the server blade and storage blade is through a x4 PCl-Express link. Two possible PCl- Express link configurations, direct and indirect, are shown in Figures IA and IB, respectively. In Figure IA, a half height C-class server blade IO is coupled to a storage blade 20. A direct link is established when PCI-Express bus 18 is connected directly from North-Bridge (NB) 14 on the server blade 10 to SAS control card 24 on the storage blade 20 by way of connections 16 and 26. Also shown on the cards 10 and 20 are clocks 12 and 22, respectively. Note that the clocks 12 and 22 are non-common reference clocks, a fact that can lead to system failures when spread spectrum clocking is enabled,
In Figure IB, a full height C-class server blade 30 is installed next to storage blade 20. PCl-Express bus 38 on the C-class server blade 30 is connected from the North- Bridge 14 to a redriver chip 32, and then from the redriver chip 32 to the SAS control card 24 on the storage blade 20. The use of the redriver chip 32 accounts for additional signal loss due to a longer trace length of the PCl-Express bus 38. The redriver chip 32 is mounted on a mezzanine card 34. The two blades 20 and 30 employ non-common reference clocks 22 and 12, respectively. To resolve the problems posed by spread spectrum clocking in server/storage blade applications, the architectures disclosed herein provide two reference clocks. An example of such an architecture is shown in Figure 3 in which a storage blade 100 is mated to a server blade 120. The server blade 120 may be any type of server blade including, for example, a C-class server blade. The storage blade includes a PC .-Express card 24, connectors 26 and a low jitter clock 1 10. A low jitter clock typically has less than 100 ppm (parts per million) of phase jitter. By contrast low cost clocks have more than 300 ppm of phase jitter. With a low jitter clock, not only is the phase jitter low, but also the low jitter clock is resistant to power noise modulation, and the clock frequency is very stable. Note that any blade that does not use a common reference clock cannot accommodate spread spectrum clocking. This is because the elastic buffer normally installed in a PCI device can compensate only for 600 ppm between the recovered clock and the local clock, and hence cannot be used with spread spectrum clocking, which can have up to 5,600 ppm of skew. The server blade 120 includes North-Bridge 14, PCI-Express link 130, connectors
16, a redriver 200 mounted on card 150, and clock 140 coupled to the North-Bridge side of the redriver 200. As shown in Figure 3, the North-Bridge 14 uses a reference clock (clock 140) that is common to the North-Bridge side of redriver 200, While the North- Bridge 14 does not have an elastic buffer that can adjust drain and fill rates so as to accommodate spread spectrum clocking, the redriver 200 does have such an elastic buffer, as will be discussed with respect to Figures 4 - 6, By using a common reference clock between the redriver 200 and the North-Bridge 14, the benefits of spread spectrum clocking can be applied to the North-Bridge 14.
Coupled to the storage blade side of the redriver 200 is low jitter clock 210. The low jitter reference clock 210 and the low jitter reference clock 110 have the same circuit design. Because of the above-described architecture, the redriver 200 operates with two clock architectures, that of the common reference clock architecture 140 and that of the separate reference clock architecture 210. The use of the two reference clock architecture supports the (slight) difference in clock frequencies between two devices, such as one device with spread spectrum clocking enabled (e.g., the North-Bridge 14) and the other device clocked with a noπnal clock (e.g., the storage blade 100); or two devices, each clocked with spread spectrum clocking. As noted above, in a synchronous timing architecture, a common clock source supplies a clock to all devices on the bus, and thai clock is used to enable the devices' transceivers to clock data in and out. This architecture requires that the clock arrive at each device at precisely the same time. However, a small amount of pin-to-pin skew is allowed, which tneans that the lengths of the clock traces have to be matched to minimize the skew between the devices. As the speed of the clock increases, the allowed pin-to-pin skew decreases, which makes the matched routing of the clock traces more difficult to achieve.
With the use of two reference clock architectures, namely the common reference clock architecture and separate reference clock architecture, for data to flow through the redriver 200, the data will have to cross the boundary between the common reference clock and the separate reference clock. This boundary is indicated, figuratively, by the dotted line bisecting the redriver 200 in Figure 3. To transition this boundary, the redriver 200 includes elastic buffers on its inbound and outbound sides. Bridging this boundary is accomplished by depositing the received data into an elastic buffer using one clock architecture and pulling the data out of the elastic buffer using the other clock architecture. Since the two reference clocks can be running at slightly different frequencies and spread spectrum clocking can be enabled for the North-Bridge 14, the elastic buffer can experience an overflow or an underflow error condition, To eliminate these errors, the elastic buffer fill and drain rates may be adjusted, One means for adjusting these rates involves addition or removal of special symbols that are used in PCI- Express architectures. These symbols are known as SKP symbols, and are found in SKP ordered sets. SKP ordered sets are used to maintain synchronization between a transmitter and a receiver and to prevent overflow or underflow error conditions. The receiver can discard the SKP characters. An SKP ordered set consists of a single COM symbol followed by three SKP symbols. Other means for adjusting the fill and drain rates will be discussed later.
The rate at which SKP ordered sets are transmitted is derived from the maximum frequency tolerance allowed between two devices, namely 600 ppm. At this level, the local clocks of the two devices shift one clock cycle every 1 ,666 cycles Therefore, the transmitter must schedule a SKP ordered set to be sent more frequently than every 1,666 clock cycles. The PO-Express Specification defines the period between SKP ordered set transmissions as between 1,180 and 1,538 symbol times. Upon receipt of the SKP ordered set, an elastic buffer can insert or remove SKP symbols to compensate for frequency differences between the two clock domains
Figure 4 illustrates a redriver wilh two reference clocks in more detail. In Figure 4, redriver 200 is shown coupling storage blade 100 and North-Bridge 14. However, the redriver 200 may be υsed in other applications, including coupling any two blade types, for example The redriver 200 includes inbound elastic buffer 220 through which data from the storage blade 100 is transmitted to the North-Bridge 14 and outbound elastic buffer 240 through which data from the North-Bridge 14 is transmitted. As can be seen from Figure 4, the North-Bridge side of the redriver 200, including the inbound and the outbound elastic buffers 220/240, uses common reference clock 140. The common reference clock 140 may have spread spectrum clocking enabled. The storage blade side of the redriver 200 uses a separate low jitter clock 210. The low jitter reference clock 210 does not use spread spectrum clocking. The storage blade 100 also uses a separate low jitter reference clock 1 10. which also does not allow for spread spectrum clocking The reference clocks 1 10, 140, and 210 have standard 100 MHz clock sources, which are used as inputs to phase locked loops (PLLs) to generate higher frequency clocks for internal logics and COR (Clock Data Recovery) For example, PLl., 145 may convert the 100 MHz clock to 2.5 GHz.
Data 160 from the storage blade 100 enters the inbound elastic buffer 220 at a nominal 2.5 GHz and data 165 exiting the inbound elastic butter 220 exits at a nominal
2 5 GHz. Similarly data 170 enters the outbound elastic buffer 240 at a nominal 2.5 GHz and data 175 exits the outbound elastic buffer 240 at a nominal 2.5 GHz The inbound data 160 has an embedded clock that is recovered by clock recovery circuit 216. Clock recovery circuit 216 uses local clock B signal 215, which is derived from the output of PLL 212 based on the low jitter reference clock 210. Local clock B signal 215 also is used to clock data out of the outbound elastic buffer 240 Outbound data 170 has an embedded clock that is recovered by clock recovery circuit 141. Clock recovery circuit
141 uses local clock A signal 145. which is derived from the output of PLL 142 based on the common reference clock. Local clock A signal 145 also is used to clock data out of inbound elastic buffer 220
Since the storage blade 100 does not use spread spectrum clocking and the North Bridge 14 does use spread spectrum clocking (when enabled), the inbound data 160 always will be at a faster clock than the inbound data 165. Conversely, the outbound data 170 always will be at a slower clock that the outbound data 175. The difference in clock frequency between (he transmitter (TX) and receiver (RX) can be as much as 5600 ppm. To accommodate these clock differences, the inbound elastic buffer 220 and the outbound elastic buffer 240 must be able to adjust their fill and drain rates using steps that are not available with current PCl-Express elastic buffers.
Note that in applications where common types of storage blades are coupled using the redriver 200, the use of spread spectrum clocking may cause additional clock differences. Such an architecture is shown in Figure 7.
Figure 5 illustrates an embodiment of an elastic buffer operation used with the redriver 200 of Figure 4 for a fast recovered clock. Elastic buffer 220 receives an inbound data stream and provides a modified inbound data stream. The elastic buffer 220 may be operated such that it is normally half full, or just below trip point A. In the case of a fast recovered clock, when the elastic buffer contents reaches trip point A, because the elastic buffer 220 is situated at an intermediate point and thus cannot alter SKP ordered sets, buffer logic within the elastic buffer 220 first removes idle data from the inbound data stream if the PCI-Express link is in the active state (i.e., if the link has been powered up and passed the link training states). If the PCI-Express link is in the training state, the buffer logic will remove an entire training ordered set. Note that link training automatically occurs on all PCl Express links after reset without software involvement. Most link training states involve the transmission of I6-symbol training ordered sets. Each component's receiver uses the sets to obtain bit lock, symbol lock, and lane-to-lane skew. The exchange of these sets helps the components on each end of the link negotiate a link number, lane numbers, data rate, etc. When training is complete, the link goes to the active slate in which Transaction Layer Packets (TLPs) can be exchanged. Should the elastic buffer contents reach trip point B, the buffer logic would remove selected Data Link Layer Packets (DLLP) from the inbound data stream. PCl Express is designed such that the information contained in each DLLP is also contained in subsequent DLLPs of the .same type, so that a DLLP that is corrupted or lost in transit has a minimal effect on link performance. If multiple successive DlJ.. Ps of the same type are lost, however, performance degradation will occur (it can cause transaction replay and/or inhibit the issuance of new transactions). DLLPs begin with an unscrambled 11SDP" framing symbol followed by a DLLP Type byte. The buffer logic within the elastic buffer 220 may be designed to remove four DLLP types in particular: Acknowledges. Posted Credit Updates, Non-posted Credit Updates, and Completion Credit Updates. The herein described flexible buffers use semaphores to prevent deletion of multiple DLLPs of the same type. For example, a fast recovered clock may cause the buffer logic to discard a Posted Credit Update DLLP. When this occurs, an internal Posted Credit Update semaphore is set to prevent the logic from discarding another Posted Credit Update until another Posted Credit Update (of the same virtual channel) passes through. The second Update contains the same number of credits as the previous packet plus it may contain additional credits. Passing the second packet through removes a potential bottleneck in outbound, posted cycles. Finally, should the contents of elastic buffer 220 reach trip point C, the buffer logic discards a Transaction Layer Packet (TLP) from the inbound data stream. The buffer logic accomplishes this by looking for the TLP start framing symbol (STP), and discarding every symbol until it detects the HND symbol. This will cause the transmitter to replay the TLP. either due to a Negative Acknowledge (Nak) of a subsequent TLP or due to an Acknowledge (Ack) timeout. The sequence number for the removed TLP is stored in local register for comparison to future outbound Ack packets. When an outbound Ack verifies that the discarded TLP has been successfully replayed, TLP disposal logic resets itself for the next time the elastic buffer fills beyond trip point C. This prevents excessive TLP replays, which can seriously hamper link performance.
In the case of a slow recovered clock, the PC .-Express Specification calls for the addition of SKP symbols to the SKP ordered set. Such a scenario is shown in Figure 6.
At trip point E, the buffer logic associated with a typical elastic buffer, such as the elastic buffer associated with components upstream and downstream of the elastic buffer 220, adds SKP symbols to the buffer contents. Similarly, at trip point £, the buffer logic associated with the elastic buffer 220 adds a SKP ordered set to the data stream. Note that since the redriver 200 is an intermediate buffer and not the final receiver on the link, the redriver 200 must not alter the size of the SKP ordered set. However, in some cases, even the addition of SKP symbols is not enough to prevent emptying the elastic buffer
220. When the PCT Express link is in the active state, the PCT Express specification allows the addition of logical idle data to the data stream. Accordingly, at trip point F, with the link in the active state, the buffer logic adds idle data to the data stream exiting the elastic buffer 220.
To allow the addition of SKP ordered sets and the subtraction of DLLPs and TLPs, the redriver 200 includes typical PCI Express components such as a 10/8b decoder 221, descrambler 222, linear feedback shift register (LSFR.) 223, SKP/idle insertion module 225, scrambler 226, 8b/10b encoder 227, and outbound linear feedback shift register (LSFR) 229 as shown in Figure 6. The decoder 221 converts the 10-bit inbound symbols to 8-bit bytes, and the descrambler 222 uses the LSFR 223 to convert the bytes to unscrambled bytes. At this point the data stream can be analyzed for the aforementioned framing symbols. Note that SKP ordered sets are not added in the middle of any other ordered set or packet. After manipulation of the data stream, the scrambler 226 uses the outbound LFSR 229 to reseramble the bytes, and the 8b/lθb encoder 227 converts the 8-bit bytes back into 10-bit symbols. Figures 5 and 6 illustrate operation of (he inbound elastic buffer 220. The inbound elastic buffer 220 is a two reference clock elastic buffer architecture. The outbound elastic buffer 240 also is a two reference clock architected butter, and the architecture and method for preventing overflow and underflow of the outbound elastic buffer 240 is similar in all pertinent respects to the architecture and method applicable to the inbound elastic buffer 220.
Figures 7 - 9 illustrate embodiments of computer systems employing redrivers to ensure signal continuity and fidelity across multiple connections and vary ing-length trace lengths.
Figure 10 is a flowchart illustrating an embodiment of a method 500 for operating a computer system, such as the computer system of Figure 3, having a two reference clock architecture. In Figure 10, starting a block 501, the redriver 200 receives an inbound data stream (inbound in the sense that the data stream emanates from storage blade 100), the inbound data stream having a recovered clock. In block 505. buffer logic associated with inbound elastic buffer 220 notes the recovered clock, In block 510, the inbound elastic buffer 220 determines if the recovered clock is fast relative to the system clock 140. If the recovered clock is fast, the method 500 moves to block 515 and the link is checked to see if the link is active. If the link is active, the method 500 moves to block
520. If the link is not active, the method 500 moves to block 516 to determine if the link is in the "Configuration. Idle" training sub-state. If the link is not in "Configuration. Idle", then in block 518, the buffer logic associated with the buffer 220 removes a training ordered set. [f the link is in the "Configuration.Idle" sub-state, the method 500 moves to block 517 and the buffer logic associated with the inbound buffer 220 removes idle data from the inbound data stream. At this point the logic forwards inbound data to NB (block 560), Following blocks 517 or 518 the method 500 moves to block 560. In block 520, the buffer logic associated with the inbound buffer 220 determines if the recovered clock still is too fast. If the recovered clock still is too fast, the method 500 moves to block 525 and the buffer logic removes a DLLP symbol and sets a corresponding semaphore The method 500 then moves to block 530 3n block 530. the buffer logic again determines if the recovered clock is too fast. If the recovered clock still is too fast, then in block 535, the butter logic removes a TLP packet from the data stream and sets a TLP semaphore The method then moves to block 560.
Returning to block 530, if the recovered clock is not too fast, the method 500 moves to block 560 Returning to block 520. if the recovered clock is not too fast, the method 500 moves to block 560.
Returning to block 510, if the recovered clock is not too fast, the method 500 moves to block 540 and the buffer logic associated with the inbound flexible buffer 220 determines if the recovered clock is too slow. If the recovered clock is not too slow, the method 500 moves to block 560. If the recovered clock is too slow, the method 500 moves to block 545 and the link is checked to see if the link is active. If the link is active, the method 500 moves to block 546 and idle data are added to the inbound data stream If the link is not active, then in block 547 the buffer logic adds SKP symbols to the inbound data stream. The method then moves to block 550 and the buffer logic again checks to see if the recovered clock is too slow If the recovered clock still is too slow, the method 500 moves to block 555 and the buffer logic adds idle data to the inbound data stream The method then moves to block 560 and the inbound data stream is passed to the North- Bridge 14.

Claims

In the claims:
I . A redriver having two reference clocks, the redriver coupling an external component through a PCI Express link to a hub, the redriver, comprising: an inbound elastic buffer, comprising. a separate reference clock for an inbound elastic buffer interface between the redriver and the external component, a common reference clock for an inbound elastic buffer interface between the hub and the redriver, and an inbound decoder/descrambler, an inbound scrambler/encoder, and inbound linear shift registers; an outbound elastic buffer, comprising; the separate reference clock for an outbound elastic buffer interface between the redriver and the external component, the common reference clock for an outbound elastic butter interface between the hub and the redriver, and an outbound decoder/descrambler, an outbound scrambler/encoder, and outbound linear shift registers; and clock recovery logic coupled an external component side of the redriver and to a hub side of the redriver.
2. The redriver of claim 1, wherein the inbound elastic buffer further comprises buffer logic and overflow trip points, the overflow trip points comprising: a first overflow trip point wherein when the first overflow trip point is reached and the link is in an inactive state, the buffer logic removes one of idle data and an entire training set from a data stream; a second overflow trip point, wherein when the second overflow trip point is reached, the buffer logic removes DLLP packets from the data stream; and a third overflow trip point, wherein when the third overflow trip point is reached, the buffer logic removes Transaction Layer Packets from the data stream
3. The redriver of claim 2, further comprising DLLP semaphores, wherein when a specific type DLLP packet is removed from the data stream, the buffer logic sets a corresponding DLLP semaphore, whereby further removal of that type DLLP packet is prevented.
4. The redriver of claim 2, further comprising Transaction Layer Packet semaphores, wherein when a Transaction Layer Packet is removed, a Transaction Layer Packet semaphore is set.
5. The redriver of claim 4, further comprising a local register that stores sequence numbers for removed Transaction Layer Packets, whereby when the removed Transaction Layer Packet is restored, the stored sequence number is deleted from the local register and the Transaction Layer Packet semaphore is reset.
6. The redriver of claim 2, wherein the inbound elastic buffer further comprises: a first underflow trip point, wherein when the first underflow trip point is reached, the buffer logic adds SKP symbols to the data stream exiling the inbound elastic buffer; and a second underflow trip point, wherein when the second underflow trip point is reached, the buffer logic adds idle data (o the data stream exiting the inbound elastic buffer.
7. The redriver of claim 1 , wherein the outbound elastic buffer further comprises: buffer logic; overflow trip points, wherein the buffer logic removes one or more of idle data, a training set DLLP packets, and Transaction Layer Packets when the overflow trip points are reached; and underflow trip points, wherein the buffer logic adds SKP symbols and idle data to the data stream exiting the outbound elastic buffer when the underflow trip points are reached.
8. The redriver of claim I, wherein the redriver is installed on a server blade, and wherein a storage blade is coupled to the server blade using the PCl-Express link.
9. The redriver of claim 1, wherein the redriver is installed on a first server blade, and wherein a second server blade is coupled to the first server blade using the PCl Express link, the second server blade comprising a second two-clock redriver.
10. The redriver of claim 1, wherein the separate reference clock is driven by a 100 MHz low jitter clock.
1 1. The redriver of claim 1, wherein the bus is a North-Bridge with spread spectrum clocking enabled, and wherein the external component is a storage blade with spread spectrum clocking disabled.
12. A redriver employing two reference clocks, the redriver having an inbound data portion and an outbound data portion, the signal conditioner, comprising: an inbound elastic buffer comprising means for adjusting inbound data to compensate for the two reference clocks; an outbound elastic buffer comprising means for adjusting outbound data to compensate for the two reference clocks; a common reference clock coupled to a first side of the redriver; a separate low jitter reference clock coupled Io a second side of the redriver, and clock recovery logic coupled to the first and the second side of the redriver, wherein the clock recovery logic coupled to the first side of the redriver uses the common reference clock and the clock recovery logic coupled to the second side of the redriver uses the separate low jitter reference clock.
13. The redriver of claim 12, wherein the inbound elastic buffer comprises: an inbound elastic buffer recovered clock domain; and an inbound elastic buffer common reference clock domain.
14 The redriver of claim 13, wherein the means for adjusting inbound data to compensate for a the two reference clocks comprises: an inbound decoder/descrambler; an inbound scrambler/encoder; and inbound liner shift registers, all coupled to the inbound elastic buffer system clock domain.
15. The redriver of claim 14, wherein the means for adjusting inbound data to compensate for a separate reference clock further comprises buffer logic and overflow trip points, the overflow trip points comprising: a first overflow trip point wherein when the first overflow trip point is reached, the buffer logic removes one of idle data and a training set from an inbound data stream; a second overflow trip point, wherein when the second overflow trip point is reached, the buffer logic removes DLLP packets from a data stream; and a third overflow trip point, wherein when the third overflow trip point is reached, the buffer logic removes Transaction Layer Packets from the data stream.
16. The redriver of claim 12, wherein the outbound elastic buffer comprises: an outbound elastic buffer common reference clock domain; and an outbound elastic buffer low jitter reference clock domain.
17. The redriver of claim 36, wherein the means for adjusting the outbound data to compensate for a non-common reference clock comprises: an outbound decoder/descrambleπ an outbound scrambler/encoder; and outbound liner shift registers, all coupled to the outbound elastic butter low jitter clock domain.
18 The redriver of claim 17, wherein the means for adjusting the outbound data to compensate for a separate reference clock comprises: buffer logic; overflow trip points, wherein the buffer logic removes one or more of idle data, DLLP packets, and Transaction Layer Packets when the overflow trip points are reached; and underflow trip points, wherein the buffer logic adds SKP symbols and idle data to the data stream exiting the outbound elastic buffer when the underflow trip points are reached.
19. A method for operating a computer system having a redriver with two reference clocks, comprising: recovering a clock from an inbound data stream; comparing the recovered clock to a system clock, if the recovered clock is too fast: removing one of idle data and a training set from the inbound data stream, and if the recovered clock still is to fast, removing a DLLP packet from the inbound data stream, and if the recovered clock still is too fast, removing a TLP packet from the inbound reference stream; if the recovered clock is too slow: adding SKP symbols to the inbound data stream, and if the recovered clock still is too slow, adding idle data to the inbound data stream.
20. The method of claim 17, further compri sing: setting a DLLP semaphore when removing the DLLP packet; and setting a TLP semaphore when removing the TLP packet.
PCT/US2008/054399 2008-02-20 2008-02-20 Redriver with two reference clocks and method of operation thereof WO2009105095A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
PCT/US2008/054399 WO2009105095A1 (en) 2008-02-20 2008-02-20 Redriver with two reference clocks and method of operation thereof
CN200880127260.8A CN101946219B (en) 2008-02-20 2008-02-20 Redriver with two reference clocks and method of operation thereof
KR1020107018505A KR101419292B1 (en) 2008-02-20 2008-02-20 Redriver with two reference clocks and method of operation thereof
US12/918,050 US8166334B2 (en) 2008-02-20 2008-02-20 Redriver with two reference clocks and method of operation thereof
EP08730240.2A EP2255263B1 (en) 2008-02-20 2008-02-20 Redriver with two reference clocks and method of operation thereof
JP2010547602A JP5138050B2 (en) 2008-02-20 2008-02-20 Redriver having two reference clocks and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2008/054399 WO2009105095A1 (en) 2008-02-20 2008-02-20 Redriver with two reference clocks and method of operation thereof

Publications (1)

Publication Number Publication Date
WO2009105095A1 true WO2009105095A1 (en) 2009-08-27

Family

ID=40985813

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/054399 WO2009105095A1 (en) 2008-02-20 2008-02-20 Redriver with two reference clocks and method of operation thereof

Country Status (6)

Country Link
US (1) US8166334B2 (en)
EP (1) EP2255263B1 (en)
JP (1) JP5138050B2 (en)
KR (1) KR101419292B1 (en)
CN (1) CN101946219B (en)
WO (1) WO2009105095A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011138472A (en) * 2009-12-31 2011-07-14 Via Technologies Inc Serial bus device and clock difference compensation method
JP2011186968A (en) * 2010-03-11 2011-09-22 Ricoh Co Ltd Adaptor, information device, information system and communication method
JP2012128717A (en) * 2010-12-16 2012-07-05 Ricoh Co Ltd Communication apparatus and communication system
US8938567B2 (en) 2010-03-11 2015-01-20 Ricoh Company, Limited Communication apparatus, communication system and adapter

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5266164B2 (en) * 2009-08-25 2013-08-21 ルネサスエレクトロニクス株式会社 Data receiver
JP5426326B2 (en) * 2009-11-09 2014-02-26 ルネサスエレクトロニクス株式会社 Data receiving apparatus, data receiving method, and program
TW201142613A (en) * 2010-05-31 2011-12-01 Jmicron Technology Corp Timing aligning circuit and timing aligning method for aligning data transmitting timing of a plurality of lanes
US8666013B1 (en) 2011-03-22 2014-03-04 Altera Corporation Techniques for clock data recovery
US8645724B2 (en) * 2011-06-03 2014-02-04 Nxp B.V. Redriver circuits with power saving modes
WO2013001631A1 (en) * 2011-06-29 2013-01-03 富士通株式会社 Transmission device, transmission circuit, transmission system, and method for controlling transmission device
CN103210689B (en) 2011-08-11 2014-08-20 华为技术有限公司 Method, device and system for performing time synchronization on PCIE device
WO2013133826A1 (en) * 2012-03-07 2013-09-12 Intel Corporation Scalable, common reference-clocking architecture using a separate, single clock source for blade and rack servers
KR101876418B1 (en) * 2012-04-05 2018-07-10 한국전자통신연구원 Apparatus and method deskew on peripheral component interconnect express
JP5928192B2 (en) * 2012-06-28 2016-06-01 株式会社ソシオネクスト Bridge circuit
US20140036966A1 (en) * 2012-07-31 2014-02-06 Robert C. Elliott Varying rate of deletable bits for spread spectrum clocking
US9153198B2 (en) * 2012-09-25 2015-10-06 Ati Technologies Ulc Method and device for link over-training
US8879680B2 (en) * 2012-11-06 2014-11-04 Ati Technologies Ulc Adaptive clock mismatch compensation symbol insertion in signal transmissions
US9213355B2 (en) 2012-11-06 2015-12-15 Advanced Micro Devices, Inc. Selective insertion of clock mismatch compensation symbols in signal transmissions based on a receiver's compensation capability
US9223385B2 (en) * 2012-12-19 2015-12-29 Intel Corporation Re-driver power management
CN104063352B (en) * 2013-03-20 2017-03-15 上海华虹集成电路有限责任公司 The elastic buffer circuit of PIPE and its state synchronization method
US10237087B2 (en) * 2013-09-02 2019-03-19 Samsung Electronics Co., Ltd. Method for controlling transmission speed and electronic device thereof
DE112013007726T5 (en) * 2013-12-26 2017-02-02 Intel Corporation Improvements to an interconnect retimer
KR102108380B1 (en) 2014-02-04 2020-05-08 삼성전자주식회사 Interface circuit operating to recover transmitted data error
CN104484011A (en) * 2014-11-25 2015-04-01 上海高性能集成电路设计中心 Distributive control and double-clock asynchronous sending and receiving module and FIFO (First In First Out) device
US9946683B2 (en) * 2014-12-24 2018-04-17 Intel Corporation Reducing precision timing measurement uncertainty
WO2016122480A1 (en) * 2015-01-28 2016-08-04 Hewlett-Packard Development Company, L.P. Bidirectional lane routing
US9692589B2 (en) * 2015-07-17 2017-06-27 Intel Corporation Redriver link testing
KR102507714B1 (en) 2016-05-02 2023-03-09 삼성전자주식회사 PCIe DEVICE FOR SUPPORTING SRIS
US10128985B2 (en) 2016-07-01 2018-11-13 International Business Machines Corporation ACK clock compensation for high-speed serial communication interfaces
US10491701B2 (en) * 2016-07-14 2019-11-26 Cisco Technology, Inc. Interconnect method for implementing scale-up servers
CN106848785A (en) * 2016-12-28 2017-06-13 曙光信息产业(北京)有限公司 PCI E signal transmitting apparatus
US10789201B2 (en) * 2017-03-03 2020-09-29 Intel Corporation High performance interconnect
US10860449B2 (en) 2017-03-31 2020-12-08 Intel Corporation Adjustable retimer buffer
US20180329855A1 (en) 2017-05-12 2018-11-15 Intel Corporation Alternate protocol negotiation in a high performance interconnect
US11249808B2 (en) 2017-08-22 2022-02-15 Intel Corporation Connecting accelerator resources using a switch
US11356236B2 (en) * 2019-05-16 2022-06-07 Texas Instruments Incorporated Bidirectional re-driver for half-duplex interfaces
KR102518285B1 (en) 2021-04-05 2023-04-06 에스케이하이닉스 주식회사 PCIe INTERFACE AND INTERFACE SYSTEM
KR102415309B1 (en) 2020-06-16 2022-07-01 에스케이하이닉스 주식회사 Interface device and method for operating the same
US11546128B2 (en) 2020-06-16 2023-01-03 SK Hynix Inc. Device and computing system including the device
KR102519480B1 (en) 2021-04-01 2023-04-10 에스케이하이닉스 주식회사 PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THEREOF
US20220190919A1 (en) * 2020-11-02 2022-06-16 Cisco Technology, Inc. Dispersing data rate to mitigate electromagnetic interference
US11271656B1 (en) 2020-11-02 2022-03-08 Cisco Technology, Inc. Dispersing data rate to mitigate electromagnetic interference
CN115794242B (en) * 2023-02-08 2023-08-15 苏州浪潮智能科技有限公司 Server spread spectrum method, system, electronic equipment and readable medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055645A (en) * 1996-12-30 2000-04-25 Intel Corporation Method and apparatus for providing a clock signal to a processor
US6079027A (en) * 1998-01-23 2000-06-20 Via Technologies, Inc. Computer chip set for computer mother board referencing various clock rates
US6154803A (en) * 1998-12-18 2000-11-28 Philips Semiconductors, Inc. Method and arrangement for passing data between a reference chip and an external bus
US6748039B1 (en) * 2000-08-11 2004-06-08 Advanced Micro Devices, Inc. System and method for synchronizing a skip pattern and initializing a clock forwarding interface in a multiple-clock system
US20070177701A1 (en) 2006-01-27 2007-08-02 Ati Technologies Inc. Receiver and method for synchronizing and aligning serial streams

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06338138A (en) * 1993-05-28 1994-12-06 Toshiba Corp Device and method of generating reference clock
JPH11150475A (en) * 1997-11-14 1999-06-02 Toyo Commun Equip Co Ltd Synthesizer
EP1276028A1 (en) * 2001-07-09 2003-01-15 Telefonaktiebolaget L M Ericsson (Publ) Status indication detection device and method
JP4335586B2 (en) * 2003-06-11 2009-09-30 Necエレクトロニクス株式会社 Clock and data recovery circuit
JP2005252587A (en) * 2004-03-03 2005-09-15 Seiko Epson Corp Clock shaping device and electronic equipment using the same
US7571338B2 (en) * 2004-05-24 2009-08-04 Telefonaktiebolaget Lm Ericsson (Publ) Determining a time difference between first and second clock domains
US7434073B2 (en) * 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
JP4587798B2 (en) * 2004-12-08 2010-11-24 ルネサスエレクトロニクス株式会社 Spread spectrum clock generator
US7281077B2 (en) * 2005-04-06 2007-10-09 Qlogic, Corporation Elastic buffer module for PCI express devices
US7802031B2 (en) * 2005-05-18 2010-09-21 Qlogic, Corporation Method and system for high speed network application
JP2007109199A (en) * 2005-09-15 2007-04-26 Seiko Epson Corp Buffer device, control method for buffer device, and information processor
US7478255B2 (en) * 2005-12-13 2009-01-13 Hewlett-Packard Development Company, L.P. Clock distribution in multi-cell computing systems
CN101001199A (en) * 2006-01-11 2007-07-18 中兴通讯股份有限公司 Data processing method of high speed multidigit parallel data bus
JP2007193633A (en) * 2006-01-20 2007-08-02 Renesas Technology Corp Interface function-equipped device circuit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055645A (en) * 1996-12-30 2000-04-25 Intel Corporation Method and apparatus for providing a clock signal to a processor
US6079027A (en) * 1998-01-23 2000-06-20 Via Technologies, Inc. Computer chip set for computer mother board referencing various clock rates
US6154803A (en) * 1998-12-18 2000-11-28 Philips Semiconductors, Inc. Method and arrangement for passing data between a reference chip and an external bus
US6748039B1 (en) * 2000-08-11 2004-06-08 Advanced Micro Devices, Inc. System and method for synchronizing a skip pattern and initializing a clock forwarding interface in a multiple-clock system
US20070177701A1 (en) 2006-01-27 2007-08-02 Ati Technologies Inc. Receiver and method for synchronizing and aligning serial streams

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2255263A4

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011138472A (en) * 2009-12-31 2011-07-14 Via Technologies Inc Serial bus device and clock difference compensation method
JP2011186968A (en) * 2010-03-11 2011-09-22 Ricoh Co Ltd Adaptor, information device, information system and communication method
US8938567B2 (en) 2010-03-11 2015-01-20 Ricoh Company, Limited Communication apparatus, communication system and adapter
US9361249B2 (en) 2010-03-11 2016-06-07 Ricoh Company, Ltd. Communication apparatus, communication system and adapter
JP2012128717A (en) * 2010-12-16 2012-07-05 Ricoh Co Ltd Communication apparatus and communication system

Also Published As

Publication number Publication date
EP2255263A4 (en) 2011-08-31
JP5138050B2 (en) 2013-02-06
KR101419292B1 (en) 2014-07-14
KR20100123836A (en) 2010-11-25
EP2255263A1 (en) 2010-12-01
EP2255263B1 (en) 2013-07-31
US20100315135A1 (en) 2010-12-16
US8166334B2 (en) 2012-04-24
CN101946219B (en) 2013-03-20
CN101946219A (en) 2011-01-12
JP2011519077A (en) 2011-06-30

Similar Documents

Publication Publication Date Title
US8166334B2 (en) Redriver with two reference clocks and method of operation thereof
US7631118B2 (en) Lane to lane deskewing via non-data symbol processing for a serial point to point link
US8879680B2 (en) Adaptive clock mismatch compensation symbol insertion in signal transmissions
US20070177701A1 (en) Receiver and method for synchronizing and aligning serial streams
CN108733608B (en) USB link bridge
JP2004520649A (en) Source synchronous receiver link initialization and input floating control with clock detection and DLL lock detection
US20190205270A1 (en) Link width scaling across multiple retimer devices
US20050144341A1 (en) Buffer management via non-data symbol processing for a point to point link
US7339995B2 (en) Receiver symbol alignment for a serial point to point link
US8948192B2 (en) Data switch
KR102518285B1 (en) PCIe INTERFACE AND INTERFACE SYSTEM
US9141459B2 (en) Precursor adaptation algorithm for asynchronously clocked SERDES
US6560666B1 (en) Hub link mechanism for impedance compensation update
JP5545146B2 (en) Serial communication system
US11818238B2 (en) Low overhead high bandwidth data transfer protocol

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880127260.8

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08730240

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010547602

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 5058/CHENP/2010

Country of ref document: IN

Ref document number: 2008730240

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12918050

Country of ref document: US

ENP Entry into the national phase

Ref document number: 20107018505

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE