Retimer application system, retimer, and data transmission method
11748294 · 2023-09-05
Assignee
Inventors
- Yongyao Li (Shenzhen, CN)
- Fei LUO (Chengdu, CN)
- Jiankang Li (Chengdu, CN)
- Jie Wan (Chengdu, CN)
- Gongxian Jia (Shenzhen, CN)
Cpc classification
Y02D10/00
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
Abstract
A retimer application system is provided, which includes a primary chip, a retimer, and a secondary chip. After first link training is completed, the retimer is configured to store, in a first storage area, an equalization parameter corresponding to each rate during the first link training, and data stored in the first storage area is not lost when the retimer performs a reset operation. The retimer is further configured to: receive a reset indication, and perform the reset operation according to the reset indication. The primary chip and the secondary chip are configured to perform second link training triggered by the reset indication. During the second link training, the retimer is further configured to: invoke the equalization parameter, and transparently transmit a training sequence in the second link training to the primary chip or the secondary chip based on the equalization parameter.
Claims
1. An application system, comprising: a primary chip; a retimer comprising a plurality of data processing circuits; and a secondary chip, wherein the primary chip, the second chip, and the retimer participate in first link training, and, after the first link training is completed, the retimer is configured to: store, in a first storage area, an equalization parameter corresponding to each rate during the first link training, and data stored in the first storage area is not lost when the retimer performs a reset operation; receive a reset indication; perform the reset operation according to the reset indication, wherein the primary chip and the secondary chip are configured to perform second link training triggered by the reset indication; during the second link training, transparently transmit a training sequence and invoke the equalization parameter, wherein the retimer is configured to bypass the plurality of data processing circuits in the retimer while transmitting the training sequence; and after the second link training is completed, transparently transmit service data between the primary chip and the secondary chip based on the equalization parameter.
2. The application system according to claim 1, wherein the first storage area is a storage area in a nonvolatile memory or firmware of the retimer.
3. The application system according to claim 1, wherein after the first link training is completed, the retimer is further configured to enter a low-delay mode.
4. The application system according to claim 3, wherein the retimer further comprises a link state machine, and each data processing circuit of the plurality of data processing circuits is configured to convert the training sequence processed by the link state machine into serial data.
5. The application system according to claim 1, wherein during the first link training, the retimer is further configured to: store the equalization parameter in a register, and, after the first link training is completed, store, in the first storage area, the equalization parameter that is stored in the register.
6. The application system according to claim 5, wherein during the second link training, the retimer is further configured to store the equalization parameter that is stored in the first storage area in the register.
7. The application system according to claim 1, wherein the application system further comprises a basic input/output system (BIOS), and after the first link training is completed, the BIOS is configured to send the reset indication to the retimer; or the primary chip is configured to send the reset indication to the retimer.
8. The application system according to claim 3, wherein the retimer comprises: a sending equalization circuit; and a receiving equalization circuit, and after the retimer enters the low-delay mode, an output of the receiving equalization circuit is used as an input of the sending equalization circuit.
9. The application system according to claim 1, wherein the retimer supports a plurality of protocols and is further configured to select a working protocol used by the primary chip and the secondary chip to work, and the plurality of protocols include at least one of the following: a peripheral component interconnect express (PCIe) protocol, a cache coherent interconnect for accelerators (CCIX) protocol, or a universal serial bus (USB) protocol.
10. A data transmission method, comprising: after a primary chip, a second chip, and a retimer, wherein the retimer comprises a plurality of data processing circuits, participate in first link training, and the first link training is completed, storing, by the retimer in a first storage area, an equalization parameter corresponding to each rate during the first link training, wherein data stored in the first storage area is not lost when the retimer performs a reset operation; receiving, by the retimer, a reset indication; performing the reset operation according to the reset indication; in a process in which the primary chip and the secondary chip perform second link training triggered by the reset indication, during the second link training, transparently transmit a training sequence and invoke, by the retimer, the equalization parameter, wherein the retimer is configured to bypass the plurality of data processing circuits in the retimer while transmitting the training sequence; and after the second link training is completed, transparently transmitting service data between the primary chip and the secondary chip based on the equalization parameter.
11. The method according to claim 10, further comprising: after the first link training is completed, the retimer enters a low-delay mode.
12. The method according to claim 10, further comprising: storing, by the retimer, the equalization parameter in a register during the first link training; and after the first link training is completed, storing, by the retimer, the equalization parameter that is stored in the register in the first storage area.
13. The method according to claim 12, wherein the invoking, by the retimer, of the equalization parameter comprises: storing, by the retimer, the equalization parameter that is stored in the first storage area in the register.
14. The method according to claim 10, further comprising: after the first link training is completed, sending, by a basic input/output system (BIOS), the reset indication to the retimer; or, after the first link training is completed, sending, by the primary chip, the reset indication to the retimer.
15. A retimer, comprising: a plurality of data processing circuits; a control circuit, wherein a primary chip, a second chip, and the retimer participate in first link training, and, after the first link training is completed, the control circuit is configured to: store, in a first storage area, an equalization parameter corresponding to each rate during the first link training, and data stored in the first storage area is not lost after the retimer performs a reset operation; during second link training, after the reset operation is performed, invoke the equalization parameter and bypass a plurality of data processing circuits in the retimer and transparently transmit a training sequence during the second link training, wherein the second link training is triggered by the reset operation; after the second link training is completed, transparently transmit service data between the primary chip and the secondary chip based on the equalization parameter.
16. The retimer according to claim 15, wherein after the first link training is completed, the retimer is configured to enter a low-delay mode.
17. The retimer according to claim 15, wherein the first storage area is a storage area in a nonvolatile memory or firmware of the retimer.
18. The retimer according to claim 16, wherein the retimer further comprising: a link state machine, and each data processing circuit of the plurality of data processing circuits is configured to convert the training sequence processed by the link state machine into serial data.
19. The retimer according to claim 15, wherein during the first link training, the control circuit is further configured to: store the equalization parameter in a register; and, after the first link training is completed store, in the first storage area, the equalization parameter that is stored in the register.
20. The retimer according to claim 19, wherein, during the second link training, the control circuit is further configured to store the equalization parameter that is stored in the first storage area in the register.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
DETAILED DESCRIPTION OF THE EMBODIMENTS
(12) The following describes solutions of the embodiments with reference to accompanying drawings.
(13)
(14) In addition, in the embodiments, a downstream port of the primary chip 101 may also be cascaded to a plurality of retimers to connect to an upstream port of the secondary chip 102. For example,
(15) In the topology structure shown in
(16) The primary chip 101 may be a chip that includes a downstream port and that is not a retimer. For example, the primary chip 101 may be a root complex (RC), a switch chip (switch), or the like. The secondary chip 102 may be a chip that includes an upstream port and that is not a retimer. For example, the secondary chip 102 may be an endpoint device (endpoint) or a switch chip. The endpoint device may be a video card, a network adapter, an optical channel card, a storage card, a switch chip, or the like.
(17) The links shown in
(18)
(19) After first link training is completed, the retimer 330 is configured to store, in a first storage area, an equalization parameter corresponding to each rate during the first link training, where data stored in the first storage area is not lost when the retimer 330 performs a reset operation.
(20) The retimer 330 is configured to: receive a reset indication, and perform the reset operation according to the reset indication.
(21) Second link training triggered by the reset indication is performed between the primary chip 310 and the secondary chip 320.
(22) During the second link training, the retimer 330 is further configured to: invoke the equalization parameter, and transparently transmit a training sequence in the second link training to the primary chip 310 or the secondary chip 320 based on the equalization parameter, to complete the second link training between the primary chip 310 and the secondary chip 320. It should be noted that the transparent transmission means that a received signal is directly forwarded to another component without being processed. In the embodiments, that the retimer 330 transparently transmits the training sequence to the primary chip 310 (or the secondary chip 320) means that after receiving the training sequence, the retimer 330 directly transmits the training sequence to the primary chip 310 (or the secondary chip 320) without processing the training sequence.
(23) The first link training is link training initiated when the primary chip 310 detects that the secondary chip 330 is connected to a link, or the primary chip 310 detects that the secondary chip 330 is connected to the primary chip by using a retimer (including the retimer 330).
(24) The second link training refers to link training triggered by the reset operation performed by the retimer 330 after the retimer 330 receives the reset indication. During the second link training, the retimer 330 actually does not participate in the link training, and only transparently transmits the training sequence during the second link training.
(25) The transparent transmission may also mean that the retimer 330 does not process a received data stream (for example, the training sequence), for example, does not perform serial-to-parallel conversion, decoding, parallel-to-serial conversion, encoding, or the like on the received data stream, and instead only forwards the data stream.
(26) For example, when detecting that the secondary chip 320 is connected to a link, the primary chip 310 performs the first link training. The primary chip 310, the secondary chip 320, and the retimer 330 all participate during the first link training. For example, the primary chip 310, the secondary chip 320, and the retimer 330 are respectively the primary chip 101, the secondary chip 102, and the retimer 103 shown in
(27) In the retimer application system provided in the embodiments, the primary chip, the secondary chip, and the retimer perform the first link training, to implement link load balancing and ensure a link compensation capability. After the first link training is completed, the primary chip and the secondary chip perform the second link training triggered by the reset operation of the retimer. During the second link training, the retimer transparently transmits the training sequence between the primary chip and the secondary chip based on the equalization parameter obtained based on the first link training Therefore, based on implementation of normal second link training, efficiency of the second link training can be further improved. After the second link training is completed, the retimer may transparently transmit service data between the primary chip and the secondary chip, so that a transmission delay can be reduced.
(28) Optionally, in an embodiment, the first storage area may be a storage area in a nonvolatile memory, and the nonvolatile memory may be, for example, an EEPROM. In addition, the first storage area may be alternatively a storage area in a volatile memory. The first storage area may be located inside the retimer 330, or may be located outside the retimer 330. This is not limited in the embodiments.
(29) In addition, the first storage area may be a storage area in firmware of the retimer 330. In this case, a register write operation does not need to be performed when the equalization parameter is invoked.
(30) For example, the first storage area may be alternatively an area used to store a parameter corresponding to another port of the retimer 330, and the another port is not connected to the primary chip 310 or the secondary chip 320. In this case, the reset operation may be resetting a port that is of the retimer 330 and that is connected to the primary chip 310 and the secondary chip 320. Because the another port is not reset, the equalization parameter stored in the area used to store the parameter corresponding to the another port is not lost after the reset operation.
(31) Further, the volatile memory may be a memory in the retimer 330. The equalization parameter is stored in the retimer 330, so that a speed of invoking the equalization parameter can be improved.
(32) Optionally, in an embodiment, during the first link training, the retimer 330 is further configured to store the equalization parameter in a register. After the first link training is completed, the retimer 330 is further configured to store, in the first storage area, the equalization parameter that is stored in the register.
(33) It should be understood that the register may be a register configured to store an initial equalization parameter. However, this is not limited in the embodiments.
(34) Further, during the second link training, the retimer 330 is further configured to store the equalization parameter that is stored in the first storage area in the register.
(35) In addition, the primary chip 310 and the secondary chip 320 may separately store equalization parameters obtained during the first link training corresponding to the primary chip 310 and the secondary chip 320. In this way, these equalization parameters may be directly invoked during the second link training, so that the second link training can be quickly completed.
(36) Optionally, in an embodiment, the application system 300 further includes system firmware 340. After the first link training is completed, the system firmware 340 is configured to send the reset indication to the retimer 330. The system firmware 340 may include a BIOS or a drive of the retimer 330.
(37) The system firmware sends the reset indication, and there is no need to specially design the primary chip 310 and the secondary chip 320 or modify a standard negotiation sequence, so that the retimer 330 has quite good commonality.
(38) Optionally, in another embodiment, after the first link training is completed, the primary chip 310 is configured to send the reset indication to the retimer 330.
(39) The reset indication sent by the primary chip 310 may be a specific negotiation code stream, for example, denoted as a first negotiation code stream. When receiving the first negotiation code stream, the retimer 330 performs the reset operation.
(40) Further, reset may be implemented by a program stored in primary chip firmware (different from the system firmware). In a running process of the program, a link is reset, and the retimer invokes a parameter after a control circuit detects that the link is reset. In this implementation, the retimer does not reset the link, and the primary chip resets the link.
(41) Optionally, in an embodiment, the retimer 330 may support a plurality of protocols, for example, may support a high-speed bus protocol such as a PCIe protocol, a CCIX protocol, or a USB protocol, and can select one of the protocols for working.
(42) The retimer in the embodiments may support a plurality of high-speed buses, and is widely applied. In addition, during system design, a plurality of types of retimers do not need to be considered for use, so that hardware design complexity and subsequent verification workload can be reduced.
(43) In a possible implementation, protocol selection of the retimer may be implemented in the following manner.
(44) a. During system design, in a scenario in which the retimer determines a protocol, one of the protocols may be selected by pulling up or down a specified pin of the retimer. For example, Table 1 shows a correspondence between a pin and a protocol.
(45) TABLE-US-00001 TABLE 1 PIN_A (pull up 1/ PIN_B (pull up 1/ pull down 0) pull down 0) Protocol 0 0 PCIe 0 1 CCIX 1 0 USB . . . . . . . . .
(46) In Table 1, PIN_A and PIN_B are two pins of the retimer, and protocol selection of the retimer may be implemented by performing a pull-up/pull-down operation on the two pins. For example, the pin PIN_A is pulled up and the pin PIN_B is pulled down, so that the retimer supports the USB protocol.
(47) b. Through a management interface (for example, Smbus) defined in a standard, system software configures, after power-on, a protocol used by the retimer to work.
(48) c. A protocol used by the retimer is configured by using a specific negotiation code stream (for example, denoted as a second negotiation code stream). In other words, a negotiation code stream may correspond to a protocol, and a corresponding protocol may be configured by using a corresponding negotiation code stream. It should be understood that the second negotiation code stream may be identified by the following link state machine 333.
(49) The following describes the retimer 330 in the application system 300 with reference to
(50)
(51) Optionally, in an embodiment, the retimer 300 may include a control circuit 331.
(52) In a possible implementation, the control circuit 331 may perform the operations of storing the equalization parameter after the first link training is completed, invoking the equalization parameter during the second link training, and transparently transmitting the training sequence during the second link training based on the equalization parameter.
(53) Optionally, in an embodiment, the retimer may further include a plurality of data processing circuits 332.
(54) After the first link training is completed, the retimer 330 is further configured to bypass the plurality of data processing circuits 332 included in the retimer 330. Correspondingly, after the second link training is completed, the retimer 330 is further configured to transparently transmit service data between a primary chip 310 and a secondary chip 320.
(55) For example, a manner of implementing the transparent transmission (for example, transparent transmission of the training sequence) is: after the first link training is completed, the retimer 330 bypasses the plurality of data processing circuits included in the retimer 330. A working mode is the low-delay mode after the retimer 330 bypasses the plurality of data processing circuits. In other words, after bypassing the plurality of data processing circuits 332, the retimer 330 enters the low-delay mode. In the low-delay mode, the plurality of data processing circuits 332 are in a bypass state, and the retimer 330 only transparently transmits a received data stream. After or when bypassing the plurality of data processing circuits 332, in other words, after or when the retimer enters the low-delay mode, the retimer 330 receives the reset indication, where the reset indication triggers the reset operation of the retimer 830. In this case, because the retimer 330 works in the low-delay mode, the retimer only forwards the training sequence during the second link training triggered by the reset operation. In addition, after the second link training is completed, the retimer 330 transmits the service data between the primary chip 310 and the secondary chip 320 in the low-delay mode, that is, the retimer 330 transparently transmits the service data between the primary chip 310 and the secondary chip 320.
(56) The retimer performs the first link training, to implement link load balancing and ensure a link compensation capability. After the first link training is completed, the retimer performs the reset operation and invokes the equalization parameter obtained through the first link training. Because the data processing circuit is in the bypass state, the retimer only forwards the received training sequence without processing the training sequence, so that the second link training can be completed quickly. After the second link training, the retimer transmits the service data between the primary chip and the secondary chip in the low-delay mode, so that a transmission delay can be reduced.
(57) It can be understood that the retimer 330 supports a plurality of lanes, and the plurality of lanes are a plurality of lanes connected to the primary chip 310 and the secondary chip 320. In addition, each lane corresponds to two data paths, one of the two data paths is used for sending, and the other is used for receiving. Structures of the two data paths used for receiving and sending may be the same, and each data path may correspond to a data processing circuit.
(58) It should be further understood that the control circuit 331 in the retimer 330 may perform the foregoing operations of bypassing the plurality of data processing circuits 332 and transparently transmitting the service data between the primary chip 310 and the secondary chip 320 in the low-delay mode.
(59) Optionally, in an embodiment, the retimer 330 further includes a link state machine 333. The link state machine 333 is configured to perform link training. The data processing circuit 332 is configured to: convert received serial data into a training sequence processed by the link state machine 333, and convert the training sequence processed by the link state machine 333 into serial data. As another understanding of the data processing circuit 332, the data processing circuit 332 may convert serial data into input data of the link state machine 333, and convert output data of the link state machine 333 into serial data. It should be understood that the input data and the output data of the link state machine 333 are in a same format as that of a link state machine of a retimer in the prior art.
(60) It should be further understood that the link state machine 333 may perform the first link training.
(61) Optionally, in an embodiment, after the first link training is completed, the retimer 330 may further bypass the link state machine 333. In this way, no data stream passes through the link state machine 333, so that a transmission delay can be further reduced. It should be understood that an operation of bypassing the link state machine 333 may be performed by the control circuit 331.
(62)
(63) Optionally, in an embodiment, the retimer 330 further includes a receiving equalization circuit 334 and a sending equalization circuit 335. After the retimer 330 enters the low-delay mode, an output of the receiving equalization circuit 334 is used as an input of the sending equalization circuit 335.
(64) Further, the receiving equalization circuit 334 and the sending equalization circuit 335 are connected by using the data processing circuit 332.
(65) It should be understood that, as described above, each of two data paths corresponding to each of the plurality of lanes supported by the retimer 330 may correspond to one data processing circuit. In addition, each data path may further correspond to one receiving equalization circuit 334 and one sending equalization circuit 335.
(66) After the plurality of data processing circuits are bypassed, data passes through only the receiving equalization circuit and the sending equalization circuit, and does not pass through the plurality of data processing circuits. Therefore, a delay caused by data processing of the data processing circuit can be avoided.
(67) For example, the receiving equalization circuit 334 may include a CTLE/DFE circuit. The sending equalization circuit 335 may include a FFE circuit.
(68) Optionally, in an embodiment, the data processing circuit 332 may include a serial-to-parallel conversion circuit 3321, an elastic buffer 3322, a descrambling/decoding circuit 3323, a scrambling/encoding circuit 3324, and a parallel-to-serial conversion circuit 3325.
(69) The serial-to-parallel conversion circuit 3321 is configured to convert serial data output by the receiving equalization circuit 334 into parallel data. The elastic buffer 3322 may be a first in first out (FIFO) queue, and is configured to buffer data. To prevent the elastic buffer 3322 from overflowing, the link state machine 333 may irregularly add or delete an SKP sequence in the elastic buffer circuit 3322. The descrambling/decoding circuit 3323 is configured to descramble/decode data output by the elastic buffer 3322. The link state machine 333 can identify descrambled/decoded data, and perform corresponding processing according to a property of the descrambled/decoded data. For example, during first link training, the link state machine identifies that the decoded data is a training sequence, and therefore performs link training.
(70) The scrambling/encoding circuit 3324 is configured to: scramble/encode data that needs to be sent, to obtain data that conforms to a protocol, and output the data to the parallel-to-serial conversion circuit 3325. The parallel-to-serial conversion circuit 3325 is configured to: convert parallel data into serial data and output the serial data to the sending equalization circuit. For example, during the first link training, after the link state machine processes the training sequence, the scrambling/encoding circuit 3324 scrambles/encodes the training sequence, and then outputs the training sequence to the parallel-to-serial conversion circuit 3325. The parallel-to-serial conversion circuit 3325 converts the training sequence into serial data, and finally the sending equalization circuit 335 sends the serial data.
(71) In the retimer in the embodiments, in a data transmission process, data passes through only the receiving equalization circuit and the sending equalization circuit, and there is no need to first perform serial-to-parallel conversion, buffering, and descrambling/decoding, and then perform scrambling/encoding and parallel-to-serial conversion on the received data according to a protocol stipulation. Instead, a circuit obtained after equalization implements bitwise processing and forwarding to avoid a delay caused by operations such as serial-to-parallel conversion, buffering, descrambling/decoding, scrambling/encoding, and parallel-to-serial conversion, thereby implementing a low-delay function.
(72) In addition, based on simulation estimation, compared with a retimer in an existing standard, when only the sending equalization circuit and the receiving equalization circuit are reserved, and the serial-to-parallel conversion circuit, the elastic buffer, the descrambling/decoding circuit, the scrambling/encoding circuit, and the parallel-to-serial conversion circuit are bypassed, the retimer provided in the embodiments can reduce a delay to about 5 ns, thereby improving system performance.
(73) It should be understood that the foregoing modules included in the data processing circuit 332 may be implemented in a manner known to a person or ordinary skill in the art, and details are not described herein again. It should be understood that the modules listed herein may be separately implemented by one component or an independent circuit, or a plurality of modules may be implemented by one component or an independent circuit, provided that the data processing circuit 332 can implement a function thereof.
(74) It should be further understood that a connection relationship between the modules listed herein is merely an example for description, and the connection relationship between the modules may be alternatively in another form, provided that a basic function of the retimer can be implemented. Alternatively, in actual use, if one or more of the foregoing modules included in the data processing circuit 332 are not required to process the training sequence during link training, the data processing circuit 332 may correspondingly not include the one or more modules.
(75) In addition, it should be further understood that the retimer may further include another basic functional module, for example, a clock and data recovery (CDR) circuit and a phase locked loop (PLL). However, this is not limited in the embodiments. For details of the CDR circuit and the PLL, refer to descriptions about a CDR circuit and a PLL in an existing retimer. Details are not described herein again.
(76)
(77) S410: After first link training is completed, a retimer stores, in a first storage area, an equalization parameter corresponding to each rate during the first link training, where data stored in the first storage area is not lost when the retimer performs a reset operation.
(78) S420: The retimer receives a reset indication, and performs the reset operation according to the reset indication.
(79) S430: In a process in which a primary chip and a secondary chip perform second link training triggered by the reset indication, the retimer invokes the equalization parameter, and transparently transmits a training sequence in the second link training to the primary chip or the secondary chip based on the equalization parameter, to complete the second link training between the primary chip and the secondary chip.
(80) In the method provided in the embodiments, the primary chip, the secondary chip, and the retimer perform the first link training, to implement link load balancing and ensure a link compensation capability. After the first link training is completed, the primary chip and the secondary chip perform the second link training triggered by the reset operation of the retimer. During the second link training, the retimer transparently transmits the training sequence between the primary chip and the secondary chip based on the equalization parameter obtained based on the first link training Therefore, based on implementation of normal second link training, efficiency of the second link training can be further improved. After the second link training is completed, the retimer may transparently transmit service data between the primary chip and the secondary chip, so that a transmission delay can be reduced.
(81) Optionally, in an embodiment, the first storage area is a storage area in a nonvolatile memory or firmware of a retimer.
(82) Optionally, in an embodiment, the method further includes: after the first link training is completed, bypassing, by the retimer, a plurality of data processing circuits included in the retimer, so that the retimer enters a low-delay mode; and correspondingly, after the second link training is completed, transparently transmitting, by the retimer, the service data between the primary chip and the secondary chip in the low-delay mode.
(83) Optionally, in an embodiment, the retimer further includes a link state machine, where the data processing circuit is configured to convert received serial data into a training sequence for processing by the link state machine, and convert the training sequence processed by the link state machine into serial data.
(84) Optionally, in an embodiment, the method further includes: storing, by the retimer, the equalization parameter in a register during the first link training; and the step of storing the equalization parameter in the first storage area is: after the first link training is completed, storing, by the retimer, the equalization parameter that is stored in the register in the first storage area.
(85) Optionally, in an embodiment, the step of invoking, by the retimer, the equalization parameter includes: storing, by the retimer, the equalization parameter that is stored in the first storage area in the register.
(86) Optionally, in an embodiment, the method further includes: after the first link training is completed, sending, by a BIOS, the reset indication to the retimer.
(87) Optionally, in an embodiment, the method further includes: after the first link training is completed, sending, by the primary chip, the reset indication to the retimer.
(88) Optionally, in an embodiment, the retimer includes a sending equalization circuit and a receiving equalization circuit. After the retimer enters the low-delay mode, an output of the receiving equalization circuit is used as an input of the sending equalization circuit.
(89) Optionally, in an embodiment, the retimer supports a plurality of protocols, and can select a working protocol used by the primary chip and the secondary chip to work, and the plurality of protocols include at least one of the following: a PCIe protocol, a CCIX protocol, or a USB protocol.
(90) For details of the method shown in
(91) The embodiments further provide a retimer. For the retimer, refer to the foregoing description of the retimer 330. Details are not described in the embodiments.
(92)
(93) S510: After first link training is completed, the retimer stores, in a first storage area, an equalization parameter corresponding to each rate during the first link training, where data stored in the first storage area is not lost after the retimer performs a reset operation.
(94) S520: The retimer receives a reset indication, and performs the reset operation according to the reset indication.
(95) S530: After the reset operation is performed, the retimer invokes the equalization parameter, and transparently transmits a training sequence in the second link training to the primary chip or the secondary chip based on the equalization parameter, to complete the second link training between the primary chip and the secondary chip, where the second link training is triggered by the reset operation.
(96) Optionally, in an embodiment, the retimer further includes a plurality of data processing circuits.
(97) The method further includes: after the first link training is completed, bypassing, by the retimer, a plurality of data processing circuits, so that the retimer enters a low-delay mode; and correspondingly, after the second link training is completed, transparently transmitting, by the retimer, the service data between the primary chip and the secondary chip in the low-delay mode.
(98) Optionally, in an embodiment, the first storage area is a storage area in a nonvolatile memory or firmware of a retimer.
(99) Optionally, in an embodiment, the method further includes: storing, by the retimer, the equalization parameter in a register during the first link training; and the step of storing the equalization parameter in the first storage area is: after the first link training is completed, storing, in the first storage area, the equalization parameter that is stored in the register.
(100) Optionally, in an embodiment, the step of invoking, by the retimer, the equalization parameter includes: during the second link training, storing, by the retimer, the equalization parameter that is stored in the first storage area in the register.
(101) Optionally, in an embodiment, the receiving, by the retimer, a reset indication includes: after the first link training is completed, receiving, by the retimer, the reset indication sent by a BIOS.
(102) Optionally, in an embodiment, the receiving, by the retimer, a reset indication includes: after the first link training is completed, receiving, by the retimer, the reset indication sent by the primary chip.
(103) Optionally, in an embodiment, the retimer includes a sending equalization circuit and a receiving equalization circuit. After the retimer enters the low-delay mode, an output of the receiving equalization circuit is used as an input of the sending equalization circuit.
(104) Optionally, in an embodiment, the method further includes: selecting, by the retimer from a plurality of indicated protocols, a working protocol used by the primary chip and the secondary chip to work, where the plurality of protocols include at least one of the following: a PCIe protocol, a CCIX protocol, or a USB protocol.
(105) For details of the method shown in
(106)
(107) The retimer 630 includes a plurality of data processing circuits 631.
(108) After link training is completed, the retimer 630 is configured to bypass the plurality of data processing circuits 631, to enter a low-delay mode; and the retimer transparently transmits service data between the primary chip 610 and the secondary chip 620 in the low-delay mode.
(109) For example, after the retimer 630 is powered on, if the primary chip 610 determines that the secondary chip 620 is connected to a link, the link training is initiated. It should be understood that the link training may be performed in a link training manner known in the art. Details are no longer described in the embodiments. After the link training is completed, the retimer 630 may bypass the plurality of data processing circuits 631, so that the retimer 630 can enter the low-delay mode. After the retimer 630 enters the low-delay mode, the plurality of data processing circuits 631 no longer process a data stream. Then, the retimer 630 may transparently transmit the service data between the primary chip 610 and the secondary chip 620 in the low-delay mode.
(110) In the retimer application system provided in the embodiments, the link training is performed, to implement complete equalization and ensure a link compensation capability. After the link training is completed, the data processing circuits are bypassed, so that the retimer only forwards a received data stream without processing the data stream. Therefore, the retimer can transparently transmit the service data between the primary chip and the secondary chip, thereby reducing a transmission delay.
(111) It can be understood that the retimer 630 supports a plurality of lanes, and the plurality of lanes are a plurality of lanes connected to the primary chip 610 and the secondary chip 620. In addition, each lane corresponds to two data paths, one of the two data paths is used for sending, and the other is used for receiving. Structures of the two data lanes used for receiving and sending may be the same, and each data path may correspond to a data processing circuit 631.
(112)
(113) Optionally, in an embodiment, the retimer 630 may further include a control circuit 632. The control circuit may be configured to perform the foregoing functions of bypassing the plurality of data processing circuits 631 and transparently transmitting the service data between the primary chip 610 and the secondary chip 620.
(114) Optionally, in an embodiment, the retimer 630 further includes a link state machine 633. The link state machine 633 is configured to perform link training, and the data processing circuit 631 is configured to: convert received serial data into a training sequence processed by the link state machine 633, and convert the training sequence processed by the link state machine 633 into serial data.
(115) As another understanding of the data processing circuit 631, the data processing circuit 631 may convert serial data into input data of the link state machine 633, and convert output data of the link state machine 633 into serial data. It should be understood that the input data and the output data of the link state machine 633 are in a same format as that of a link state machine in a retimer in the prior art.
(116) It should be further understood that the link state machine 633 may perform the link training.
(117) Optionally, in an embodiment, the retimer 630 further includes a receiving equalization circuit 634 and a sending equalization circuit 635. After the retimer 630 enters the low-delay mode, an output of the receiving equalization circuit 634 is used as an input of the sending equalization circuit 635.
(118) Further, the receiving equalization circuit 634 and the sending equalization circuit 635 are connected by using the data processing circuit 632.
(119) It should be understood that, as described above, each of two data paths corresponding to each of the plurality of lanes supported by the retimer 630 may correspond to one data processing circuit. In addition, each data path may further correspond to one receiving equalization circuit 634 and one sending equalization circuit 635.
(120) After the plurality of data processing circuits are bypassed, data passes through only the receiving equalization circuit and the sending equalization circuit, and does not pass through the plurality of data processing circuits. Therefore, a delay caused by data processing of the data processing circuit can be avoided.
(121) For example, the receiving equalization circuit 634 may include a CTLE/DFE circuit. The sending equalization circuit 635 may include a FFE circuit.
(122) Optionally, in an embodiment, for a specific structure of the data processing circuit 631, refer to the data processing circuit 332 shown in
(123) In the retimer in the embodiments, in a data transmission process, data passes through only the receiving equalization circuit and the sending equalization circuit, and there is no need to first perform serial-to-parallel conversion, buffering, and descrambling/decoding, and then perform scrambling/encoding and parallel-to-serial conversion on the received data according to a protocol stipulation. Instead, a circuit obtained after equalization implements bitwise processing and forwarding to avoid a delay caused by operations such as serial-to-parallel conversion, buffering, descrambling/decoding, scrambling/encoding, and parallel-to-serial conversion, thereby implementing a low-delay function.
(124) In addition, based on simulation estimation, compared with a retimer in an existing standard, when only the sending equalization circuit and the receiving equalization circuit are reserved, and the serial-to-parallel conversion circuit, the elastic buffer, the descrambling/decoding circuit, the scrambling/encoding circuit, and the parallel-to-serial conversion circuit are bypassed, the retimer provided in the embodiments can reduce a delay to about 5 ns, thereby improving system performance.
(125) In addition, it should be further understood that the retimer 630 may further include another basic functional module, for example, a CDR circuit and a PLL. However, this is not limited in the embodiments. For details of the CDR circuit and the PLL, refer to descriptions about a CDR circuit and a PLL in an existing retimer. Details are not described herein again.
(126) The embodiments further provide a retimer. For the retimer, refer to the foregoing description of the retimer 630. Details are not described in the embodiments.
(127)
(128) S710: After link training is completed, a retimer bypasses a plurality of data processing circuits included in the retimer, to enter a low-delay mode.
(129) S720: The retimer transparently transmits service data between a primary chip and a secondary chip in the low-delay mode.
(130) The retimer further includes a link state machine, where the data processing circuit is configured to convert received serial data into a training sequence for processing by the link state machine, and convert the training sequence processed by the link state machine into serial data.
(131) Optionally, in an embodiment, the retimer includes a sending equalization circuit and a receiving equalization circuit. After the retimer enters the low-delay mode, an output of the receiving equalization circuit is used as an input of the sending equalization circuit.
(132) Optionally, in an embodiment, the retimer supports a plurality of protocols, and can select a working protocol used by the primary chip and the secondary chip to work, and the plurality of protocols include at least one of the following: a PCIe protocol, a CCIX protocol, or a USB protocol.
(133) For details of the method shown in
(134)
(135) Referring to
(136) In a possible implementation, the system 800 may include a processor, for example, a processor 810. In another possible implementation, the system 800 may include a plurality of processors, for example, include processors 810 and 820. The processor 820 has logic similar to or the same as that of the processor 810, or the processor 820 has logic completely independent of that of the processor 810. The processor may be a central processing unit (CPU), the processor may alternatively be another general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or another programmable logical device, a discrete gate or transistor logic device, or a discrete hardware component. The general purpose processor may be a microprocessor, or the processor may be any conventional processor or the like.
(137) In a possible implementation, the system 800 may include a memory 830. The processor 810 can access the memory 830 and has a function of communicating with the memory 830. The memory 830 stores information and an instruction to be executed by the processor 810. The memory 830 may include a volatile memory and/or a nonvolatile memory. The nonvolatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an EEPROM, or a flash memory. The volatile memory may be a random access memory (RAM), used as an external cache. Through example but not limitative description, many forms of RAMs may be used, for example, a static random access memory (SRAM), a dynamic random access memory (DRAM), a synchronous dynamic random access memory (SDRAM), a double data rate synchronous dynamic random access memory (DDR SDRAM), an enhanced synchronous dynamic random access memory (ESDRAM), a synchronous link dynamic random access memory (SLDRAM), and a direct rambus random access memory (DR RAM).
(138) In a possible implementation, the processors 810 and 820 may communicate with a chipset 840. In a possible implementation, the chipset 840 is connected to the processor 810 by using point-to-point (P-P) interfaces 842 and 812. The interfaces 842 and 812 may communicate based on any possible P-P communication protocol.
(139) In a possible implementation, the chipset 840 may communicate with a display device 850 and another device by using an interface 844. The another device is a bus bridge 862, a smart TV 864, an I/O device 868, a keyboard/mouse 872, and a network interface 874 shown in the figure. The display device 850 includes, but is not limited to, a liquid crystal display (LCD), a plasma, and a cathode ray tube (CRT).
(140) In a possible implementation, the chipset 840 may be connected to the another device for communication by using one or more buses 860 and 870. In a possible implementation, the buses 860 and 870 may be interconnected by using the bus bridge 862.
(141) In a possible implementation, the network interface 874 is implemented by using any type of well-known network interface standard, including, but not limited to, an Ethernet interface, a USB interface, a PCIe interface, a CCIX interface, a wireless interface, and/or any other suitable type of interface.
(142) It should be understood that although some modules in
(143) All or some of the foregoing embodiments may be implemented using software, hardware, firmware, or any combination thereof. When software is used to implement the embodiments, the foregoing embodiments may be implemented completely or partially in a form of a computer program product. The computer program product includes one or more computer instructions or computer programs. When the program instructions or the computer programs are loaded and executed on the computer, the procedure or functions according to the embodiments are all or partially generated. The computer may be a general-purpose computer, a dedicated computer, a computer network, or other programmable apparatuses. The computer instructions may be stored in a computer-readable storage medium or may be transmitted from a computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website, computer, server, or data center to another website, computer, server, or data center in a wired (for example, infrared, radio, and microwave, or the like) manner. The computer-readable storage medium may be any usable medium accessible by a computer, or a data storage device, such as a server or a data center, integrating one or more usable media. The usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, or a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium. The semiconductor medium may be a solid-state drive.
(144) The term “and/or” used herein describes only an association relationship for describing associated objects and represents that three relationships may exist. For example, A and/or B may represent the following three cases: only A exists, both A and B exist, and only B exists. In addition, the character “I” in generally indicates an “or” relationship between the associated objects.
(145) It should be understood that sequence numbers of the foregoing processes do not mean execution sequences in various embodiments of the embodiments. The execution sequences of the processes should be determined according to functions and internal logic of the processes, and should not be construed as any limitation on the implementation processes of the embodiments.
(146) A person of ordinary skill in the art may be aware that, in combination with the examples described in the embodiments, units and algorithm steps may be implemented by electronic hardware or a combination of computer software and electronic hardware. Whether the functions are performed by hardware or software depends on particular applications and design constraint conditions of the solutions. A person of ordinary skill in the art may use different methods to implement the described functions for each particular application, but it should not be considered that the implementation goes beyond the scope of the embodiments.
(147) It may be clearly understood by a person of ordinary skill in the art that, for the purpose of convenient and brief description, for a detailed working process of the foregoing system, apparatus, and unit, refer to a corresponding process in the foregoing method embodiments, and details are not described herein again.
(148) In the several embodiments provided, it should be understood that the system, apparatus, and method may be implemented in other manners. For example, the described apparatus embodiment is merely an example. For example, the unit division is merely logical function division and may be other division in actual implementation. For example, a plurality of units or components may be combined or integrated into another system, or some features may be ignored or not performed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections may be implemented by using some interfaces. The indirect couplings or communication connections between the apparatuses or units may be implemented in electronic, mechanical, or other forms.
(149) The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one position, or may be distributed on a plurality of network units. Some or all of the units may be selected based on actual requirements to achieve the objectives of the solutions of the embodiments.
(150) In addition, functional units in the embodiments may be integrated into one processing unit, or each of the units may exist alone physically, or two or more units are integrated into one unit.
(151) When the functions are implemented in the form of a software functional unit and sold or used as an independent product, the functions may be stored in a computer-readable storage medium. Based on such an understanding, the solutions of the embodiments essentially, or the part contributing to the prior art, or some of the solutions may be implemented in a form of a software product. The software product is stored in a storage medium, and includes several instructions for instructing a computer device (which may be a personal computer, a server, or a network device) to perform all or some of the steps of the methods described in the embodiments. The foregoing storage medium includes: any medium that can store program code, such as a USB flash drive, a removable hard disk, a ROM, a RAM, a magnetic disk, or an optical disc.
(152) The foregoing descriptions are merely implementations of the embodiments, but are not intended to be limiting. Any variation or replacement readily figured out by a person of ordinary skill in the art within the scope of the embodiments shall fall within the scope.