CN114556870B - Data synchronization method and device - Google Patents
Data synchronization method and device Download PDFInfo
- Publication number
- CN114556870B CN114556870B CN201980101283.XA CN201980101283A CN114556870B CN 114556870 B CN114556870 B CN 114556870B CN 201980101283 A CN201980101283 A CN 201980101283A CN 114556870 B CN114556870 B CN 114556870B
- Authority
- CN
- China
- Prior art keywords
- retimer
- state
- time point
- buffer
- pin
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
技术领域technical field
本申请涉及高速通信技术领域,尤其涉及一种数据同步的方法以及装置。The present application relates to the technical field of high-speed communication, and in particular to a data synchronization method and device.
背景技术Background technique
在现代计算机系统中,高速串行计算机扩展总线标准(Peripheral ComponentInterface Express,PCIe)链路用于互连许多不同的设备和计算机系统。PCIe链路的特性之一是可以具有不同的宽度,如:一个PCIe链路可以具有1个通道(也可称为物理通道)、2个通道、4个通道、8个通道或16个通道(也可分别称为x1、x2、x4、x8或x16)等。通道数量越多,通信的总数据吞吐量也就成比例地增加。但使用PCIe链路的一个缺点是,PCIe链路具有相对有限的长度,这样才使得数据能够高速传输。为了达到更长距离的高速传输,就开发了重定时器(Retimer),以允许PCIe链路的各个通道上的信号被重新定时或重新同步后被重新驱动,即通过重定时器进行信号中继以及滤除PCIe链路上信号的抖动。In modern computer systems, high-speed serial computer expansion bus standard (Peripheral Component Interface Express, PCIe) links are used to interconnect many different devices and computer systems. One of the characteristics of a PCIe link is that it can have different widths, for example: a PCIe link can have 1 lane (also called a physical lane), 2 lanes, 4 lanes, 8 lanes or 16 lanes ( It can also be called x1, x2, x4, x8 or x16) etc. respectively. The greater the number of channels, the overall data throughput of the communication increases proportionally. But one disadvantage of using a PCIe link is that the PCIe link has a relatively limited length so that data can be transmitted at a high speed. In order to achieve longer-distance high-speed transmission, a retimer (Retimer) was developed to allow the signals on each channel of the PCIe link to be retimed or resynchronized and re-driven, that is, signal relay through the retimer And filter out the jitter of the signal on the PCIe link.
由于PCIe链路可以具有x1、x2、x4、x8或x16等不同类型的通道数量,因此通常使用针对给定宽度的重定时器。例如,若PCIe链路中存在重定时器,8通道的PCIe链路对应使用的就是8通道的重定时器,16通道的PCIe链路对应使用的就是16通道的重定时器。Since PCIe links can have different types of lane counts like x1, x2, x4, x8, or x16, retimers for a given width are typically used. For example, if there is a retimer in the PCIe link, an 8-lane PCIe link corresponds to an 8-lane retimer, and a 16-lane PCIe link corresponds to a 16-lane retimer.
然而,若PCIe链路需要更多通道(如,32通道),而该PCIe链路中对应的重定时器(如,该重定时器只有8通道)不能满足PCIe链路的带宽需求,就需要更换该重定时器(如,更换为具有32通道的重定时器),非常不便利且灵活性差,并且具有更多通道数量的重定时器结构也会相对更复杂,其所需的空间也更大,这在一些空间受限的印刷电路板中的应用中具有局限性。However, if the PCIe link needs more channels (for example, 32 channels), and the corresponding retimer in the PCIe link (for example, the retimer has only 8 channels) cannot meet the bandwidth requirement of the PCIe link, it is necessary to Replacing the retimer (for example, replacing it with a retimer with 32 channels) is very inconvenient and has poor flexibility, and a retimer with more channels will have a relatively more complicated structure and require more space. Large, which has limitations in some applications in space-constrained printed circuit boards.
发明内容Contents of the invention
本申请实施例第一方面提供了一种数据同步的方法以及装置,用于使得多个重定时器堆叠成一个通道数量更多的PCIe链路来传输数据,即该多个重定时器在传输数据时能遵守相同的调整规则对所传输的数据进行实时的同步调整。The first aspect of the embodiment of the present application provides a data synchronization method and device for stacking multiple retimers to form a PCIe link with a larger number of channels to transmit data, that is, the multiple retimers are transmitting The data can comply with the same adjustment rules to carry out real-time synchronous adjustments to the transmitted data.
有鉴于此,本申请实施例第一方面提供一种装置,具体包括:In view of this, the first aspect of the embodiment of the present application provides a device, which specifically includes:
第一重定时器(也可称为主重定时器)与第二重定时器(也可称为从重定时器,可以是一个或多个)之间通过管脚来互相传递信号,第一重定时器包括第一偏差处理模块,第二重定时器包括第二偏差处理模块。首先,第二重定时器获取到在第二重定时器内部传输的数据(即第二传输数据)传输至第二偏差处理模块的第二时刻点(第二重定时器获取第二时刻点的步骤可以由某个指令触发执行,如第一重定时器通过管脚向第二重定时器发送的指令),并将该第二时刻点通过管脚发送至第一重定时器,第一重定时器根据第一时刻点(即在第一重定时器内部传输的第一传输数据传输至第一偏差处理模块的时刻点)以及由第二重定时器发送过来的第二时刻点确定出一个目标时刻点(该目标时刻点在第一时刻点以及第二时刻点之后),并将这个目标时刻点通过管脚同步至第二重定时器,最后,第一偏差处理模块以及第二偏差处理模块在该目标时刻点同时将各自收到的传输数据再发送出去,从而使得数据的传输实现同步。The first retimer (also known as the master retimer) and the second retimer (also known as the slave retimer, which can be one or more) transmit signals to each other through pins. The first retimer The timer includes a first deviation processing module, and the second retimer includes a second deviation processing module. Firstly, the second retimer obtains the second time point when the data transmitted inside the second retimer (that is, the second transmission data) is transmitted to the second deviation processing module (the second retimer obtains the second time point of the second time point The steps can be triggered by a certain instruction, such as the instruction sent by the first retimer to the second retimer through the pin), and the second time point is sent to the first retimer through the pin, and the first retimer The timer determines a time point according to the first time point (that is, the time point when the first transmission data transmitted inside the first retimer is transmitted to the first deviation processing module) and the second time point sent by the second retimer. The target time point (the target time point is after the first time point and the second time point), and the target time point is synchronized to the second retimer through the pin, and finally, the first deviation processing module and the second deviation processing module At the target time point, the modules resend the received transmission data at the same time, so that the data transmission is synchronized.
在本申请上述实施方式中,第一重定时器以及第二重定时器能够基于相同的目标时刻点实时、同步的对多个重定时器内部正在各个通道上传输的数据进行调整,即使得跨重定时器的数据在各个通道上的传输都能保持同步和连续,从而在不增加额外成本和复杂度的前提下,满足了PCIe链路更高带宽的需求。In the above-mentioned embodiments of the present application, the first retimer and the second retimer can adjust the data being transmitted on each channel within the multiple retimers in real time and synchronously based on the same target time point, that is, across The transmission of retimer data on each channel can be kept synchronous and continuous, thus meeting the requirement for higher bandwidth of the PCIe link without adding additional cost and complexity.
结合本申请第一方面,在本申请第一方面的第一种实施方式中,第二偏差处理模块用于获取第二传输数据传输至第二偏差处理模块的第二时刻点,并将该第二时刻点通过第一管脚同步至第一偏差处理模块的步骤可以由第一偏差处理模块通过第一管脚向第二偏差处理模块发送的触发指令(可称为第一触发指令)触发而执行,该第一触发指令就用于指示第二偏差处理模块获取第二时刻点并将该第二时刻点通过第一管脚同步至第一偏差处理模块的步骤。With reference to the first aspect of the present application, in the first implementation manner of the first aspect of the present application, the second deviation processing module is used to obtain the second time point when the second transmission data is transmitted to the second deviation processing module, and convert the first The step of synchronizing the second time point to the first deviation processing module through the first pin may be triggered by a trigger instruction (which may be called a first trigger instruction) sent by the first deviation processing module to the second deviation processing module through the first pin. When executed, the first trigger instruction is used to instruct the second deviation processing module to acquire the second time point and synchronize the second time point to the first deviation processing module through the first pin.
在本申请上述实施方式中,阐述了第二偏差处理模块是由第一偏差处理模块通过第一管脚发送的第一触发指令触发执行获取第二时刻点的步骤的,具备灵活性。In the above-mentioned embodiments of the present application, it is explained that the second deviation processing module is triggered by the first trigger command sent by the first deviation processing module through the first pin to execute the step of obtaining the second time point, which has flexibility.
结合本申请第一方面的第一种实施方式,在本申请第一方面的第二种实施方式中,上述第一触发指令可以是第一偏差处理模块获取到的第一传输数据传输至第一偏差处理模块的第一时刻点。With reference to the first implementation manner of the first aspect of the present application, in the second implementation manner of the first aspect of the application, the above-mentioned first trigger instruction may be that the first transmission data acquired by the first deviation processing module is transmitted to the first The first moment of the deviation processing module.
在本申请上述实施方式中,说明第一触发指令还可以是第一时刻点,非常简便。In the above embodiments of the present application, it is very simple to explain that the first trigger instruction may also be the first point in time.
结合本申请第一方面以及本申请第一方面的的第一种实施方式至第二种实施方式,在本申请第一方面的第三种实施方式中,第一重定时器还可以包括第一链路协商状态机,第二重定时器还可以包括第二链路协商状态机。其中,该第一链路协商状态机以及第二链路协商状态机用于在第一偏差处理模块确定目标时刻点之前先进行链路协商。In combination with the first aspect of the present application and the first implementation manner to the second implementation manner of the first aspect of the application, in the third implementation manner of the first aspect of the application, the first retimer may also include a first Link negotiation state machine, the second retimer may also include a second link negotiation state machine. Wherein, the first link negotiation state machine and the second link negotiation state machine are used to perform link negotiation before the first deviation processing module determines the target time point.
在本申请上述实施方式中,阐述了该装置中所包括的两个重定时器在用于数据对齐之前,还需要进行链路协商。In the above embodiments of the present application, it is stated that the two retimers included in the device need to perform link negotiation before being used for data alignment.
结合本申请实施例第一方面的第三种实施方式,在本申请第一方面的第四种实施方式中,该第一链路协商状态机以及第二链路协商状态机用于在第一偏差处理模块确定目标时刻点之前先进行链路协商具体可以是:第二链路协商状态机,具体用于获取第二偏差处理模块内各个物理通道的状态(如哪些物理通道处于传输并行数据流的状态、哪些物理通道传输了物理的特定数据流、哪些物理通道传输了什么样的数据流等),该状态可称为第二状态,之后第二链路协商状态机还用于将该第二状态通过第二管脚同步至第一链路协商状态机,类似地,该第一链路协商状态机,具体用于获取第一偏差处理模块内各个物理通道的状态(可称为第一状态),之后,该第一链路协商状态机就用于根据该第一状态以及第二状态确定跳转时刻,并用于进一步通过第二管脚将跳转时刻同步至第二链路协商状态机,这样,第一链路协商状态机以及第二链路协商状态机,还用于在跳转时刻同时进行链路协商。如,可以是第一链路协商状态机获取到第二状态后开始计时,计时达到特定时长后,第一链路协商状态机以及第二链路协商状态机同时进行链路协商。With reference to the third implementation manner of the first aspect of the embodiment of the present application, in the fourth implementation manner of the first aspect of the application, the first link negotiation state machine and the second link negotiation state machine are used to Before the deviation processing module determines the target time point, the link negotiation can be specifically performed: a second link negotiation state machine, which is specifically used to obtain the status of each physical channel in the second deviation processing module (such as which physical channels are transmitting parallel data streams) state, which physical channels have transmitted physical specific data streams, which physical channels have transmitted what kind of data streams, etc.), this state can be called the second state, and then the second link negotiation state machine is also used to use the first The two states are synchronized to the first link negotiation state machine through the second pin. Similarly, the first link negotiation state machine is specifically used to obtain the state of each physical channel in the first deviation processing module (may be referred to as the first State), after that, the first link negotiation state machine is used to determine the jump time according to the first state and the second state, and is used to further synchronize the jump time to the second link negotiation state through the second pin In this way, the first link negotiation state machine and the second link negotiation state machine are also used to simultaneously perform link negotiation at the jump moment. For example, the first link negotiation state machine may start timing after acquiring the second state, and after the timing reaches a specific duration, the first link negotiation state machine and the second link negotiation state machine simultaneously perform link negotiation.
在本申请上述实施方式中,具体阐述了装置中的两个重定时器内的第一链路协商状态机以及第二链路协商状态机具体如何用于通过第二管脚传递信息以进行链路协商,具备可操作性。In the above embodiments of the present application, how the first link negotiation state machine and the second link negotiation state machine in the two retimers in the device are used to transfer information through the second pin for link Road negotiation, with operability.
结合本申请实施例第一方面的第四种实施方式,在本申请第一方面的第五种实施方式中,第二链路协商状态机,具体还用于获取第二偏差处理模块内各个物理通道的第二状态,并将该第二状态同步至第一链路协商状态机的步骤可以由第一链路协商状态机通过第二管脚向第二链路协商状态机发送的第一状态触发而执行,经由第二管脚发送至第二链路协商状态机的第一状态就用于指示第二链路协商状态机执行获取第二状态的步骤。In combination with the fourth implementation manner of the first aspect of the embodiment of the present application, in the fifth implementation manner of the first aspect of the application, the second link negotiation state machine is specifically used to obtain the The second state of the channel, and the step of synchronizing the second state to the first link negotiation state machine can be the first state sent by the first link negotiation state machine to the second link negotiation state machine through the second pin The first state sent to the second link negotiation state machine via the second pin is used to instruct the second link negotiation state machine to execute the step of acquiring the second state.
在本申请上述实施方式中,阐述了第二链路协商状态机是用于由第一链路协商状态机通过第二管脚发送的第一状态触发执行获取第二状态的步骤的,具备灵活性。In the above-mentioned embodiments of the present application, it is stated that the second link negotiation state machine is used to trigger the execution of the step of obtaining the second state by the first state sent by the first link negotiation state machine through the second pin, which is flexible. sex.
结合本申请实施例第一方面的第五种实施方式,在本申请第一方面的第六种实施方式中,第一链路协商状态机以及第二链路协商状态机用于在跳转时刻同时进行链路协商的方式可以是:第一链路协商状态机,具体用于在确定的跳转时刻根据第一状态以及第二状态进行链路协商;第二链路协商状态机,具体用于在同样的跳转时刻根据第一状态以及第二状态进行链路协商。根据PCIe协议的定义可知,只要确定了同样的跳转时刻(即保证两个链路协商状态机同步工作),第一链路协商状态机以及第二链路协商状态机就可以同时进行完全一致的链路协商方式,从而达到两个重定时器合并为一个链路进行链路协商的目的。With reference to the fifth implementation of the first aspect of the embodiment of the present application, in the sixth implementation of the first aspect of the application, the first link negotiation state machine and the second link negotiation state machine are used to The way to perform link negotiation at the same time may be: the first link negotiation state machine, specifically used to perform link negotiation according to the first state and the second state at the determined jump moment; the second link negotiation state machine, specifically using Link negotiation is performed according to the first state and the second state at the same jumping moment. According to the definition of the PCIe protocol, as long as the same jump time is determined (that is, to ensure that the two link negotiation state machines work synchronously), the first link negotiation state machine and the second link negotiation state machine can be completely consistent at the same time. In this way, the two retimers can be combined into one link for link negotiation.
在本申请上述实施方式中,第一链路协商状态机以及第二链路协商状态机都用于获取到第一状态和第二状态,因此在同样的跳转时刻,根据PCIe协议定义的跳转方式,第一链路协商状态机以及第二链路协商状态机就可以用于实现完全同步的跳转方式,简单方便。In the above-mentioned embodiments of the present application, both the first link negotiation state machine and the second link negotiation state machine are used to obtain the first state and the second state, so at the same jump moment, according to the jump defined by the PCIe protocol In the switching mode, the first link negotiation state machine and the second link negotiation state machine can be used to realize the fully synchronous switching mode, which is simple and convenient.
结合本申请第一方面以及本申请第一方面的第一种实施方式至第六种实施方式,在本申请第一方面的第七种实施方式中,第一重定时器还可以包括第一缓存器,第二重定时器还可以包括第二缓存器;其中,第二缓存器,用于确定第二字符码有序集(也可称为SKP,PCIe协议中定义的一种物理层的字符码)数据的状态(可称为第四状态),并将第四状态通过第三管脚同步至第一缓存器,类似地,第一缓存器,也用于获取第一SKP数据的状态(可称为第三状态),之后,该第一缓存器就用于根据第三状态以及第四状态确定SKP增删规则,并用于进一步通过第三管脚将确定的SKP增删规则同步至第二缓存器,这样,第一缓存器以及第二缓存器,还用于根据所述相同的SKP增删规则分别调整第一传输数据以及第二传输数据。In combination with the first aspect of the present application and the first to sixth implementation manners of the first aspect of the present application, in the seventh implementation manner of the first aspect of the present application, the first retimer may further include a first cache device, the second retimer can also include a second buffer; wherein, the second buffer is used to determine the second character code ordered set (also referred to as SKP, a character of a physical layer defined in the PCIe protocol Code) data state (can be called the fourth state), and the fourth state is synchronized to the first buffer through the third pin, similarly, the first buffer is also used to obtain the state of the first SKP data ( It can be called the third state), and then the first buffer is used to determine the SKP addition and deletion rules according to the third state and the fourth state, and is used to further synchronize the determined SKP addition and deletion rules to the second cache through the third pin In this way, the first buffer and the second buffer are also used to respectively adjust the first transmission data and the second transmission data according to the same SKP addition and deletion rule.
在本申请上述实施方式中,具体阐述了装置中的两个重定时器内的第一缓存器以及第二缓存器如何用于通过第三管脚传递信息以同步处理频偏,具备可操作性。In the above-mentioned embodiments of the present application, how the first buffer and the second buffer in the two retimers in the device are used to transmit information through the third pin to synchronize the frequency offset is described in detail, which is operable .
结合本申请第一方面第七种实施方式,在本申请第一方面的第八种实施方式中,第二缓存器在用于确定第二SKP数据的第四状态,并将该第四状态通过第三管脚同步至第一缓存器的步骤可以由第一缓存器通过第三管脚向第二缓存器发送的触发指令(可称为第二触发指令)触发而执行,该第二触发指令就用于指示第二缓存器执行获取所述第四状态并将该第四状态通过第三管脚同步至第一缓存器的步骤。With reference to the seventh implementation manner of the first aspect of the present application, in the eighth implementation manner of the first aspect of the application, the second buffer is used to determine the fourth state of the second SKP data, and pass the fourth state through The step of synchronizing the third pin to the first buffer may be triggered by a trigger instruction (which may be referred to as a second trigger instruction) sent by the first buffer to the second buffer through the third pin. The second trigger instruction It is used to instruct the second buffer to execute the step of acquiring the fourth state and synchronizing the fourth state to the first buffer through the third pin.
在本申请上述实施方式中,阐述了第二缓存器是由第一缓存器通过第三管脚发送的第二触发指令触发执行获取第四状态的步骤的,具备灵活性。In the above embodiments of the present application, it is stated that the second buffer is triggered by the second trigger instruction sent by the first buffer through the third pin to execute the step of acquiring the fourth state, which has flexibility.
结合本申请第一方面第八种实施方式,在本申请第一方面的第九种实施方式中,上述第二触发指令可以是第一缓存器获取到的第一SKP数据的第三状态。With reference to the eighth implementation manner of the first aspect of the present application, in the ninth implementation manner of the first aspect of the application, the second trigger instruction may be the third state of the first SKP data acquired by the first buffer.
在本申请上述实施方式中,说明第二触发指令还可以是第三状态,非常简便。In the above embodiments of the present application, it is very simple to explain that the second trigger instruction can also be in the third state.
结合本申请第一方面的第七种实施方式至第九种实施方式,在本申请第一方面的第十种实施方式中,第一缓存器可以包括第一接收缓存器以及第一发送缓存器;第二缓存器可以包括第二接收缓存器以及第二发送缓存器。With reference to the seventh to ninth implementations of the first aspect of the present application, in the tenth implementation of the first aspect of the present application, the first buffer may include a first receiving buffer and a first sending buffer ; The second buffer may include a second receiving buffer and a second sending buffer.
在本申请上述实施方式中,说明了第一缓存器以及第二缓存器可以包括多种形式的缓存器,具备灵活性。In the above-mentioned embodiments of the present application, it is explained that the first buffer and the second buffer may include various types of buffers, which have flexibility.
结合本申请第一方面以及本申请第一方面的第一种实施方式至第十种实施方式,在本申请第一方面的第十一种实施方式中,第二重定时器可以是一个重定时器,也可以是多个重定时器,具体此处不做限定。In combination with the first aspect of the present application and the first to tenth implementation manners of the first aspect of the present application, in the eleventh implementation manner of the first aspect of the present application, the second retimer may be a retimer timer, or multiple retimers, which are not limited here.
在本申请上述实施方式中,不局限于该装置只能包括两个重定时器,还可以包括更多个重定时器,以满足对各种PCIe链路宽度的需求。In the above embodiments of the present application, the device is not limited to include only two retimers, but may also include more retimers to meet the requirements for various PCIe link widths.
本申请第二方面还提供了一种数据同步的方法,具体包括:The second aspect of the present application also provides a data synchronization method, which specifically includes:
首先,第二重定时器通过第一管脚将第二重定时器内的第二传输数据传输至第二重定时器内第二偏差处理模块的第二时刻点同步至第一重定时器;之后,第一重定时器根据获取到的第一时刻点以及第二时刻点确定目标时刻点,并将目标时刻点通过第一管脚同步至第二重定时器,其中,第一时刻点为第一重定时器内的第一传输数据传输至第一重定时器内第一偏差处理模块的时刻点;最后,第一偏差处理模块以及第二偏差处理模块在目标时刻点分别发送第一传输数据以及第二传输数据,以实现同步对齐数据的目的。First, the second retimer transmits the second transmission data in the second retimer to the second time point of the second deviation processing module in the second retimer through the first pin to synchronize to the first retimer; After that, the first retimer determines the target time point according to the obtained first time point and the second time point, and synchronizes the target time point to the second retimer through the first pin, wherein the first time point is The first transmission data in the first retimer is transmitted to the time point of the first deviation processing module in the first retimer; finally, the first deviation processing module and the second deviation processing module respectively send the first transmission at the target time point data and the second transmission data to achieve the purpose of synchronously aligning data.
在本申请上述实施方式中,第一重定时器以及第二重定时器能够基于相同的目标时刻点实时、同步的对多个重定时器内部正在各个通道上传输的数据进行调整,即使得跨重定时器的数据在各个通道上的传输都能保持同步和连续,从而在不增加额外成本和复杂度的前提下,满足了PCIe链路更高带宽的需求。In the above-mentioned embodiments of the present application, the first retimer and the second retimer can adjust the data being transmitted on each channel within the multiple retimers in real time and synchronously based on the same target time point, that is, across The transmission of retimer data on each channel can be kept synchronous and continuous, thus meeting the requirement for higher bandwidth of the PCIe link without adding additional cost and complexity.
结合本申请第二方面,在本申请第二方面的第一种实施方式中,在第二重定时器通过第一管脚将第二重定时器内第二偏差处理模块获取到第二传输数据的第二时刻点同步至第一重定时器之前,该方法还可以包括:第一重定时器通过第一管脚向第二重定时器发送第一触发指令,该第一触发指令就用于指示第二重定时器执行获取第二时刻点的步骤。In combination with the second aspect of the present application, in the first implementation of the second aspect of the present application, the second deviation processing module in the second retimer acquires the second transmission data through the first pin of the second retimer The second time point is synchronized to before the first retimer, and the method may also include: the first retimer sends a first trigger instruction to the second retimer through the first pin, and the first trigger instruction is used for Instruct the second retimer to execute the step of obtaining the second time point.
在本申请上述实施方式中,阐述了第二重定时器是由第一重定时器通过第一管脚发送的第一触发指令触发执行获取第二时刻点的步骤的,具备灵活性。In the above embodiments of the present application, it is explained that the second retimer is triggered by the first trigger instruction sent by the first retimer through the first pin to execute the step of obtaining the second time point, which has flexibility.
结合本申请第二方面的第一种实施方式,在本申请第二方面的第二种实施方式中,上述第一触发指令可以是第一重定时器获取到的第一传输数据传输至第一偏差处理模块的第一时刻点。With reference to the first implementation manner of the second aspect of the present application, in the second implementation manner of the second aspect of the application, the above-mentioned first trigger instruction may be that the first transmission data acquired by the first retimer is transmitted to the first The first moment of the deviation processing module.
在本申请上述实施方式中,说明第一触发指令还可以是第一时刻点,非常简便。In the above embodiments of the present application, it is very simple to explain that the first trigger instruction may also be the first point in time.
结合本申请第二方面以及本申请第二方面的的第一种实施方式至第二种实施方式,在本申请第二方面的第三种实施方式中,第一重定时器以及第二重定时器在进行数据对齐之前(即在第一重定时器根据获取到的第一时刻点以及第二时刻点确定目标时刻点之前),还需要分别将各自用于传输数据的物理通道的状态发送至第一重定时器内的第一链路协商状态机以及第二重定时器内的第二链路协商状态机,使得该第一链路协商状态机以及第二链路协商状态机在第一偏差处理模块确定目标时刻点之前先进行链路协商。In combination with the second aspect of the present application and the first to second implementation manners of the second aspect of the application, in the third implementation manner of the second aspect of the application, the first retimer and the second retiming Before performing data alignment (that is, before the first retimer determines the target time point according to the obtained first time point and the second time point), it is also necessary to send the states of the physical channels used to transmit data to the The first link negotiation state machine in the first retimer and the second link negotiation state machine in the second retimer make the first link negotiation state machine and the second link negotiation state machine in the first The deviation processing module performs link negotiation before determining the target time point.
在本申请上述实施方式中,阐述了该装置中所包括的两个重定时器在数据对齐之前,还需要进行链路协商。In the above embodiments of the present application, it is stated that the two retimers included in the device need to perform link negotiation before data alignment.
结合本申请实施例第二方面的第三种实施方式,在本申请第二方面的第四种实施方式中,第一链路协商状态机以及第二链路协商状态机进行链路协商的方式可以是:第二重定时器获取用于传输第二传输数据的通道的第二状态(如哪些物理通道处于传输并行数据流的状态、哪些物理通道传输了物理的特定数据流、哪些物理通道传输了什么样的数据流等),并将第二状态通过第二管脚同步至第一重定时器;之后,由该第一重定时器根据获取到的第一状态以及第二状态确定跳转时刻,并通过第二管脚将该跳转时刻同步至第二重定时器,其中,第一状态为第一重定时器中传输第一传输数据的通道的状态;最后,第一链路协商状态机以及第二链路协商状态机在跳转时刻进行链路协商。如,可以是第一链路协商状态机获取到第二状态后开始计时,计时达到特定时长后,第一链路协商状态机以及第二链路协商状态机同时进行链路协商。In combination with the third implementation manner of the second aspect of the embodiment of the present application, in the fourth implementation manner of the second aspect of the application, the manner in which the first link negotiation state machine and the second link negotiation state machine perform link negotiation It may be that: the second retimer obtains the second state of the channels used to transmit the second transmission data (such as which physical channels are in the state of transmitting parallel data streams, which physical channels transmit specific physical data streams, which physical channels transmit what kind of data flow, etc.), and synchronize the second state to the first retimer through the second pin; after that, the first retimer determines the jump according to the obtained first state and second state Time, and synchronize the jump time to the second retimer through the second pin, wherein the first state is the state of the channel transmitting the first transmission data in the first retimer; finally, the first link negotiation The state machine and the second link negotiation state machine perform link negotiation at the jump moment. For example, the first link negotiation state machine may start timing after acquiring the second state, and after the timing reaches a specific duration, the first link negotiation state machine and the second link negotiation state machine simultaneously perform link negotiation.
在本申请上述实施方式中,具体阐述了装置中的两个重定时器内的第一链路协商状态机以及第二链路协商状态机具体如何通过第二管脚传递信息以进行链路协商,具备可操作性。In the above embodiments of the present application, how the first link negotiation state machine and the second link negotiation state machine in the two retimers in the device transmit information through the second pin for link negotiation in detail , is operable.
结合本申请实施例第二方面的第四种实施方式,在本申请第二方面的第五种实施方式中,在第二重定时器获取传输第二传输数据的通道的第二状态,并将第二状态通过第二管脚同步至所述第一重定时器之前,该方法还可以包括:第一重定时器通过第二管脚向第二链路协商状态机发送第一状态,该第一状态用于触发第二重定时器执行获取第二状态的步骤,经由第二管脚发送至第二链路协商状态机的第一状态就用于指示第二链路协商状态机行获取第二状态的步骤。With reference to the fourth implementation manner of the second aspect of the embodiment of the present application, in the fifth implementation manner of the second aspect of the application, the second retimer obtains the second state of the channel for transmitting the second transmission data, and The second state is synchronized to before the first retimer through the second pin, and the method may further include: the first retimer sends the first state to the second link negotiation state machine through the second pin, and the first retimer sends the first state to the second link negotiation state machine through the second pin. A state is used to trigger the second retimer to execute the step of obtaining the second state, and the first state sent to the second link negotiation state machine via the second pin is used to instruct the second link negotiation state machine to obtain the second state Two state steps.
在本申请上述实施方式中,阐述了第二链路协商状态机是由第一链路协商状态机通过第二管脚发送的第一状态触发执行获取第二状态的步骤的,具备灵活性。In the above embodiments of the present application, it is stated that the second link negotiation state machine is triggered by the first state sent by the first link negotiation state machine through the second pin to execute the step of obtaining the second state, which is flexible.
结合本申请实施例第二方面的第五种实施方式,在本申请第二方面的第六种实施方式中,第一链路协商状态机以及第二链路协商状态机在跳转时刻同时进行链路协商的方式可以是:第一链路协商状态机在确定的跳转时刻根据第一状态以及第二状态进行链路协商;第二链路协商状态机也在同样的跳转时刻根据第一状态以及第二状态进行链路协商,根据PCIe协议的定义可知,只要确定了同样的跳转时刻(即保证两个链路协商状态机同步工作),第一链路协商状态机以及第二链路协商状态机就可以同时进行完全一致的链路协商方式,从而达到两个重定时器合并为一个链路进行链路协商的目的。In combination with the fifth implementation of the second aspect of the embodiment of the present application, in the sixth implementation of the second aspect of the application, the first link negotiation state machine and the second link negotiation state machine simultaneously perform The link negotiation method may be: the first link negotiation state machine performs link negotiation according to the first state and the second state at the determined jump moment; the second link negotiation state machine also performs link negotiation according to the second state at the same jump moment. The first state and the second state carry out link negotiation. According to the definition of the PCIe protocol, as long as the same jump moment is determined (that is, the two link negotiation state machines are guaranteed to work synchronously), the first link negotiation state machine and the second link negotiation state machine The link negotiation state machine can simultaneously carry out completely consistent link negotiation methods, so as to achieve the purpose of merging two retimers into one link for link negotiation.
在本申请上述实施方式中,第一链路协商状态机以及第二链路协商状态机内都获取由第一状态和第二状态,因此在同样的跳转时刻,根据PCIe协议定义的跳转方式,第一链路协商状态机以及第二链路协商状态机就可以实现完全同步的跳转方式,简单方便。In the above-mentioned embodiments of the present application, both the first link negotiation state machine and the second link negotiation state machine obtain the first state and the second state, so at the same jump moment, the jump defined by the PCIe protocol In this way, the first link negotiation state machine and the second link negotiation state machine can realize a completely synchronous jump mode, which is simple and convenient.
结合本申请第二方面以及本申请第二方面的第一种实施方式至第六种实施方式,在本申请第一方面的第七种实施方式中,第二重定时器获取第二重定时器中第二缓存器内的第二SKP数据的状态(可称为第四状态),并将第四状态通过第三管脚同步至第一重定时器,类似地,第一重定时器也将获取第一SKP数据的状态(可称为第三状态,该第三状态为第一重定时器中第一缓存器内的第一SKP数据的状态),之后,该第一重定时器就根据第三状态以及第四状态确定SKP增删规则,并进一步通过第三管脚将确定的SKP增删规则同步至第二重定时器,这样,第一重定时器以及第二重定时器就根据所述相同的SKP增删规则分别调整第一传输数据以及第二传输数据。In combination with the second aspect of the present application and the first to sixth implementation manners of the second aspect of the present application, in the seventh implementation manner of the first aspect of the present application, the second retimer obtains the second retimer The state of the second SKP data in the second buffer (may be referred to as the fourth state), and synchronize the fourth state to the first retimer through the third pin, similarly, the first retimer will also Obtain the state of the first SKP data (can be referred to as the third state, the third state is the state of the first SKP data in the first buffer in the first retimer), afterward, the first retimer is just according to The third state and the fourth state determine the SKP addition and deletion rules, and further synchronize the determined SKP addition and deletion rules to the second retimer through the third pin, so that the first retimer and the second retimer are based on the The same SKP addition and deletion rules adjust the first transmission data and the second transmission data respectively.
在本申请上述实施方式中,具体阐述了装置中的两个重定时器内的第一缓存器以及第二缓存器如何通过第三管脚传递信息以同步处理频偏,具备可操作性。In the above embodiments of the present application, it is specifically described how the first register and the second register in the two retimers in the device transmit information through the third pin to process the frequency offset synchronously, which is operable.
结合本申请第二方面第八种实施方式,在本申请第二方面的第九种实施方式中,上述第二触发指令可以是第一缓存器获取到的第一SKP数据的第三状态。With reference to the eighth implementation manner of the second aspect of the present application, in the ninth implementation manner of the second aspect of the application, the above-mentioned second trigger instruction may be the third state of the first SKP data acquired by the first buffer.
在本申请上述实施方式中,说明第二触发指令还可以是第三状态,非常简便。In the above embodiments of the present application, it is very simple to explain that the second trigger instruction can also be in the third state.
结合本申请第二方面的第七种实施方式至第九种实施方式,在本申请第二方面的第十种实施方式中,第一缓存器可以包括第一接收缓存器以及第一发送缓存器;第二缓存器可以包括第二接收缓存器以及第二发送缓存器。With reference to the seventh implementation mode to the ninth implementation mode of the second aspect of the present application, in the tenth implementation mode of the second aspect of the application, the first buffer may include a first receiving buffer and a first sending buffer ; The second buffer may include a second receiving buffer and a second sending buffer.
在本申请上述实施方式中,说明了第一缓存器以及第二缓存器可以包括多种形式的缓存器,具备灵活性。In the above-mentioned embodiments of the present application, it is explained that the first buffer and the second buffer may include various types of buffers, which have flexibility.
结合本申请第二方面以及本申请第二方面的第一种实施方式至第十种实施方式,在本申请第二方面的第十一种实施方式中,第二重定时器可以是一个重定时器,也可以是多个重定时器,具体此处不做限定。In combination with the second aspect of the present application and the first to tenth implementation manners of the second aspect of the application, in the eleventh implementation manner of the second aspect of the application, the second retimer may be a retiming timer, or multiple retimers, which are not limited here.
在本申请上述实施方式中,不局限于该装置只能包括两个重定时器,还可以包括更多个重定时器,以满足对各种PCIe链路宽度的需求。In the above embodiments of the present application, the device is not limited to include only two retimers, but may also include more retimers to meet the requirements for various PCIe link widths.
本申请实施例第三方面提供了一种装置,该装置具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。A third aspect of the embodiments of the present application provides an apparatus, which has a function of implementing the method of the second aspect or any possible implementation manner of the second aspect. This function may be implemented by hardware, or may be implemented by executing corresponding software on the hardware. The hardware or software includes one or more modules corresponding to the above functions.
从以上技术方案可以看出,本申请实施例具有以下优点:第一重定时器(也可称为主重定时器)与第二重定时器(也可称为从重定时器,可以是一个或多个)之间通过管脚来互相传递信号,第一重定时器包括第一偏差处理模块,第二重定时器包括第二偏差处理模块。首先,第二重定时器获取到在第二重定时器内部传输的数据(即第二传输数据)传输至第二偏差处理模块的第二时刻点(第二重定时器获取第二时刻点的步骤可以由某个指令触发执行,如第一重定时器通过管脚向第二重定时器发送的指令),并将该第二时刻点通过管脚发送至第一重定时器,第一重定时器根据第一时刻点(即在第一重定时器内部传输的第一传输数据传输至第一偏差处理模块的时刻点)以及由第二重定时器发送过来的第二时刻点确定出一个目标时刻点(该目标时刻点在第一时刻点以及第二时刻点之后),并将这个目标时刻点通过管脚同步至第二重定时器,最后,第一偏差处理模块以及第二偏差处理模块在该目标时刻点同时将各自收到的传输数据再发送出去,从而使得数据的传输实现同步。在本申请实施例中,第一重定时器以及第二重定时器能够基于相同的目标时刻点实时、同步的对多个重定时器内部正在各个通道上传输的数据进行调整,即使得跨重定时器的数据在各个通道上的传输都能保持同步和连续,从而在不增加额外成本和复杂度的前提下,满足了PCIe链路更高带宽的需求。It can be seen from the above technical solutions that the embodiments of the present application have the following advantages: the first retimer (also called the master retimer) and the second retimer (also called the slave retimer) can be one or Multiple) transmit signals to each other through pins, the first retimer includes a first deviation processing module, and the second retimer includes a second deviation processing module. Firstly, the second retimer obtains the second time point when the data transmitted inside the second retimer (that is, the second transmission data) is transmitted to the second deviation processing module (the second retimer obtains the second time point of the second time point The steps can be triggered by a certain instruction, such as the instruction sent by the first retimer to the second retimer through the pin), and the second time point is sent to the first retimer through the pin, and the first retimer The timer determines a time point according to the first time point (that is, the time point when the first transmission data transmitted inside the first retimer is transmitted to the first deviation processing module) and the second time point sent by the second retimer. The target time point (the target time point is after the first time point and the second time point), and the target time point is synchronized to the second retimer through the pin, and finally, the first deviation processing module and the second deviation processing module At the target time point, the modules resend the received transmission data at the same time, so that the data transmission is synchronized. In the embodiment of the present application, the first retimer and the second retimer can adjust the data being transmitted on each channel within the multiple retimers in real time and synchronously based on the same target time point, that is, across retimers The transmission of timer data on each channel can be kept synchronous and continuous, thus meeting the requirement for higher bandwidth of the PCIe link without adding additional cost and complexity.
附图说明Description of drawings
图1为没有重定时器的PCIe链路的示意图;FIG. 1 is a schematic diagram of a PCIe link without a retimer;
图2为具有一个重定时器的PCIe链路的示意图;Figure 2 is a schematic diagram of a PCIe link with a retimer;
图3为具有多个重定时器的PCIe链路的示意图;FIG. 3 is a schematic diagram of a PCIe link with multiple retimers;
图4为设备与设备之间通过重定时器构成完整PCIe链路的一个示意图;Fig. 4 is a schematic diagram of forming a complete PCIe link through a retimer between devices;
图5为重定时器内部结构的一个示意图;Fig. 5 is a schematic diagram of the internal structure of the retimer;
图6为重定时器内部形成的多个通道的结构示意图;FIG. 6 is a schematic structural diagram of multiple channels formed inside the retimer;
图7为本申请实施例各个不同类型的PCIe链路由多个重定时器通过管脚连接而拓宽链路宽度的示意图;Fig. 7 is the schematic diagram that various different types of PCIe links in the embodiment of the present application are connected by multiple retimers through pins to widen the link width;
图8为本申请实施例两个重定时器通过管脚同步信息来实现数据同步的示意图;8 is a schematic diagram of two retimers implementing data synchronization through pin synchronization information according to an embodiment of the present application;
图9为本申请实施例中第一管脚包括的管脚数量的示意图;FIG. 9 is a schematic diagram of the number of pins included in the first pin in the embodiment of the present application;
图10为本申请实施例数据在通道中传输的示意图;FIG. 10 is a schematic diagram of data transmission in a channel according to an embodiment of the present application;
图11为本申请实施例数据在重定时器的偏差处理模块实现数据对齐的示意图;FIG. 11 is a schematic diagram of implementing data alignment in the deviation processing module of the retimer according to the embodiment of the present application;
图12为本申请实施例管脚信号的一个示意图;FIG. 12 is a schematic diagram of the pin signal of the embodiment of the present application;
图13为本申请实施例提供的一种数据同步的方法的示意图。FIG. 13 is a schematic diagram of a data synchronization method provided by an embodiment of the present application.
具体实施方式Detailed ways
本申请实施例提供了一种数据同步的方法以及装置,用于使得多个重定时器堆叠成一个通道数量更多的PCIe链路来传输数据,即该多个重定时器在传输数据时能遵守相同的调整规则对所传输的数据进行实时的同步调整。The embodiment of the present application provides a data synchronization method and device, which are used to enable multiple retimers to be stacked into a PCIe link with a larger number of channels to transmit data, that is, the multiple retimers can transmit data when transmitting data Real-time synchronous adjustments are made to the transmitted data following the same adjustment rules.
在介绍本申请实施例之前,首先对本申请实施例可能涉及到的一些系统架构、相关结构及一些在本申请实施例中可能出现的概念进行介绍,用于帮助理解本发明。应理解的是,本申请所阐述的相关系统架构、相关结构等仅示例出与本申请实施例相关的部分,并且以下的对其进行的说明以及相关的概念解释可能会因为本申请实施例的具体情况有所限制,但并不代表本申请仅能局限于该具体情况,在不同实施例的具体情况可能也会存在差异,具体此处不做限定。并且在本申请中,众所周知的结构和设备以框图的形式而不是详细地示出,以避免模糊本申请。Before introducing the embodiments of the present application, some system architectures, related structures and some concepts that may appear in the embodiments of the present application that may be involved in the embodiments of the present application are firstly introduced to help understand the present invention. It should be understood that the related system architecture, related structures, etc. described in this application only illustrate the parts related to the embodiment of the application, and the following descriptions and explanations of related concepts may be different from the description of the embodiment of the application. The specific situation is limited, but it does not mean that the application can only be limited to the specific situation, and there may be differences in the specific situations of different embodiments, which are not specifically limited here. Also in the present application, well-known structures and devices are shown in block diagram form rather than in detail in order to avoid obscuring the application.
重定时器(Retimer)是类似于一个物理层芯片的器件,信号在经过重定时器的时候,通过重定时器内部的时钟可以重构信号,使得信号传输能量增加,然后再继续传输。也就是说,重定时器是内部具有时钟数据恢复(Clock Data Recover,CDR)的器件,实现信号的恢复之后,然后再通过其内部的物理通道把信号发送出去,从而可以减轻信号的抖动。A retimer is a device similar to a physical layer chip. When a signal passes through the retimer, the internal clock of the retimer can reconstruct the signal so that the signal transmission energy increases, and then continues to transmit. That is to say, the retimer is a device with Clock Data Recover (CDR) inside. After the signal is recovered, the signal is then sent out through its internal physical channel, so that the signal jitter can be reduced.
图1示出了没有重定时器的PCIe链路,设备1和设备2经由链路A和链路B耦合在一起(链路A和链路B是根据数据的传输方向进行划分,实际上是综合在一个PCIe链路,即链路1和链路2构成设备1和设备2之间的一个完整的PCIe链路),设备1和设备2之间需要交互的数据就通过链路A和链路B实现高速传输,由于PCIe链路具有相对有限的长度(为了保证高速传输,因此PCIe链路的长度有限),若设备1和设备2之间的物理距离过于遥远,势必会导致单个的PCIe链路过长,从而影响数据的传输效率。为此,在设备1和设备2之间连接上重定时器,就可使得PCIe链路上正在传输的数据被重新定时或重新同步后被重新驱动,如图2示出了具有一个重定时器的PCIe链路,设备1和设备2耦合到一个重定时器01,该重定时器01通过子链路A01和子链路B02耦合到设备1,并通过子链路A02和子链路B01耦合到设备2,这些子链路就构成设备1与设备2之间数据交互的一个完整PCIe链路。并且,这些子链路同样遵循PCIe协议,重定时器01可配置为以子链路所遵循的协议操作以实现设备1和设备2之间的数据交互。类似地,为实现更远距离的高速传输,设备1和设备2之间的PCIe链路还可以具有两个或两个以上的重定时器,如图3所示,示出了具有多个重定时器的PCIe链路,这些重定时器通过类似串联的方式依次连接起来(如图3中的重定时器1、重定时器2、......、重定时器n,n≥2),连接起重定时器1、重定时器2、......、重定时器n的子链路A1、子链路A2、子链路A3、......、子链路An、子链路An+1以及子链路B1、子链路B2、......、子链路Bn-1、子链路Bn、子链路Bn+1就构成设备1和设备2之间数据交互的一个完整PCIe链路。Figure 1 shows a PCIe link without a retimer, device 1 and device 2 are coupled together via link A and link B (link A and link B are divided according to the direction of data transmission, in fact Integrated in a PCIe link, that is, link 1 and link 2 constitute a complete PCIe link between device 1 and device 2), and the data that needs to be exchanged between device 1 and device 2 passes through link A and link A. Route B achieves high-speed transmission. Since the PCIe link has a relatively limited length (in order to ensure high-speed transmission, the length of the PCIe link is limited), if the physical distance between device 1 and device 2 is too far, it will inevitably lead to a single PCIe link. The link is too long, which affects the data transmission efficiency. For this reason, a retimer is connected between device 1 and device 2, so that the data being transmitted on the PCIe link can be retimed or resynchronized and re-driven, as shown in Figure 2 with a retimer PCIe link, device 1 and device 2 are coupled to a retimer 01, which is coupled to device 1 through sub-link A01 and sub-link B02, and coupled to device through sub-link A02 and sub-link B01 2. These sub-links constitute a complete PCIe link for data exchange between device 1 and device 2. Moreover, these sub-links also follow the PCIe protocol, and the retimer 01 can be configured to operate with the protocol followed by the sub-links to realize data interaction between the device 1 and the device 2 . Similarly, in order to achieve longer-distance high-speed transmission, the PCIe link between device 1 and device 2 can also have two or more retimers, as shown in Figure 3, which shows that there are multiple retimers The PCIe link of the timer, these retimers are connected sequentially in a similar way in series (retimer 1, retimer 2, ..., retimer n in Figure 3, n≥2 ), connecting sub-links A1, sub-link A2, sub-link A3, ..., sub-chains of retimer 1, retimer 2, ..., retimer n Road An, sub-link An+1, sub-link B1, sub-link B2, ..., sub-link Bn-1, sub-link Bn, sub-link Bn+1 constitute equipment 1 and A complete PCIe link for data exchange between devices 2.
为便于更进一步的理解,下面以设备1为中央处理器(Central Processing Unit/Processor,CPU)板、设备2为输入输出(Input/Output,I/O)板为例详细示意CPU板与I/O板如何通过重定时器形成一个PCIe链路,请参阅图4,CPU板401通过背板402和I/O板403连接,其中,重定时器4012置于CPU板401内(重定时器可以设置于设备内部,也可以设置于设备外部,具体不做限定。图4示意的是重定时器设置在CPU板内部),并与CPU板401内的CPU4011连接,这样CPU4011与重定时器4012之间就形成整个PCIe链路的一个子链路4013(如,PCIe的16通道的子链路),之后,重定时器4012再连接到背板402上的连接器404,连接器404再与连接器405进行连接以构成整个PCIe的子链路4021,连接器405再进一步与I/O板403内部的重定时器4031连接,重定时器4031再与I/O板403内部的CPU4032连接以构成整个PCIe的子链路4033。由于CPU4011与CPU4032之间的距离问题以及存在连接器404和405,因此CPU4011与CPU4032之间的数据交互不能直接进行。但由于在CPU板401和I/O板403内部分别设置有两个重定时器,这样CPU4011与CPU4032之间的数据交互就可以通过子链路4013、子链路4021、子链路4033构成的一个完整的PCIe链路(如,16通道的PCIe链路)来进行高速传输。For further understanding, the following takes device 1 as a central processing unit (Central Processing Unit/Processor, CPU) board, and device 2 as an input/output (I/O) board as an example to illustrate the CPU board and I/O board in detail. How the O board forms a PCIe link through the retimer, please refer to Fig. 4, the
上述图2至图4对重定时器在实际中的应用进行了介绍,下面对重定时器的内部结构进行介绍,如图5所示,为重定时器内部的一个典型结构,该重定时器包括串行/解串器(Serializer and De-serializer,Serdes)501、缓存器502、偏差处理模块503、链路协商状态机504、缓存器505、串行/解串器506。以数据流的流向来对重定时器内部的上述各个器件进行说明:数据流在被重定时器内的串行/解串器501(也可称为接收串行/解串器501)获取之前是串行的数据流,串行/解串器501获取到PCIe链路上的串行数据流后,会将该串行数据流转变为并行数据流,并行数据流是通过串行/解串器501的通道(Lane,也可称为物理通道)进行传输的,如图6所示的串行/解串器601中具有N+1个用于传输数据的物理通道(即Lane0至LaneN),若N=1,则说明该重定时器为具有2个物理通道的重定时器(即x2类型的重定时器),若N=7,则说明该重定时器为具有8个物理通道的重定时器(即x8类型的重定时器),若N=15,则说明该重定时器为具有16个物理通道的重定时器(即x16类型的重定时器),重定时器内部有多少个物理通道,该重定时器就为对应类型(如,x1、x2、x8、x16等)的重定时器,具体此处不予赘述。需要说明的是,同一个重定时器内部的物理通道上正在传输的并行数据流互相之间是不交互的,但是各个正在传输的数据流的物理通道之间必须保持传输的同步。还需要说明的是,重定时器内部的所有物理通道在传输数据流时并不要求全部被使用,例如,对于一个x16类型的重定时器,在传输数据时,可以只使用其中的10个物理通道进行数据的传输。The above-mentioned Figures 2 to 4 introduce the application of the retimer in practice. The internal structure of the retimer is introduced below. As shown in Figure 5, it is a typical structure inside the retimer. The retimer The device includes a serializer/deserializer (Serializer and De-serializer, Serdes) 501, a
串行/解串器501将串行的数据流处理成并行的数量流以后,就会将该并行数据流写入缓存器502(也可称为接收缓存器502),缓存器502是数据通路的接收缓存,每个物理通道上都对应有一个缓存器,如,若串行/解串器501内有8个物理通道,那么缓存器502就是指对应每个物理通道上的缓存器的集合(即有8个缓存器),如图6所示,串行/解串器601中具有N+1个用于传输数据的物理通道,那么对应的缓存器602就是缓存器10至缓存器1N的集合。由于缓存器502的写时钟是串行/解串器501中由CDR恢复出来的时钟,而缓存器502的读时钟是本地工作时钟,即缓存器502的读写时钟是异步时钟,因此被写入到缓存器502中的并行数据流会存在频偏。为消除频偏的影响,缓存器502从串行/解串器501接收到并行数据流后,要先进行频偏处理,即要保证每个正在传输数据的物理通道对应的接收缓存器不溢出(即不丢失数据),其处理的方式是通过字符码(SKP,物理层的一种字符码)增删规则来保证对应的接收缓存器不溢出(如,按照预设规则在对应的接收缓存器中删除SKP数据)。After the serial/
缓存器502对并行数据流进行频偏处理之后,进一步将并行数据流传输至偏差处理模块503,类似的,偏差处理模块503内也具有与串行/解串器501内数量相同的物理通道(如,图6中偏差处理模块603中具有Lane0至LaneN共N+1个物理通道)用于接收经由缓存器502包括的各个缓存器传输过来的并行数据流,由于并行数据流是由各个不同的物理通道所对应的缓存器传输至偏差处理模块503,那么经由不同缓存器所传输的并行数据流会由于时延偏差、物理路径的长短不同等原因导致偏差处理模块503接收到的各个缓存器发送的数据并不同步(即有先有后,并不会严格同步到达),偏差处理模块503的作用之一就是将其内部各个物理通道上获取到的并行数据流对齐。After the
需要说明的是,偏差处理模块503在对获取到的各个物理通道的数据流进行对齐之前,还需要将各个物理通道的状态(如哪些物理通道处于传输并行数据流的状态、哪些物理通道传输了物理的特定数据流、哪些物理通道传输了什么样的数据流等)发送至链路协商状态机(Link Training and Status State Machine,LTSSM)504,由链路协商状态机504根据各个物理通道的状态进行链路协商(链路协商的方式在PCIe协议中都有明确定义,此处不予赘述)。之后,链路协商状态机504将协商结果(如,协商成功、协商失败等)发送至偏差处理模块503,若协商结果为协商成功,那么响应于该协商结果,偏差处理模块503会将从缓存器502获取到的各个物理通道上的并行数据流进行对齐,之后将对齐后的并行数据流进一步写入至缓存器505(也可称为发送缓存器505)。It should be noted that before the
与缓存器502类似,缓存器505是数据通路的发送缓存,每个物理通道上都对应有一个缓存器,如,若串行/解串器501内有8个物理通道,那么缓存器505就是指对应每个物理通道上的缓存器的集合,如图6所示,串行/解串器601中具有N+1个用于传输数据的物理通道,那么对应的缓存器605就是缓存器20至缓存器2N的集合。类似地,缓存器505中获取到的并行数据流也存在频偏,因此其也需对获取到的并行数据流进行频偏处理,即要保证每个正在传输数据的物理通道对应的发送缓存器不断流(即不丢失数据),其处理的方式也是通过SKP增删规则来保证对应的发送缓存器不断流(如,按照预设规则在对应的发送缓存器中增加SKP数据)。Similar to the
缓存器505对并行数据流进行频偏处理之后,将进一步将并行数据流写入串行/解串器506(也可称为发送串行/解串器506),类似的,串行/解串器506内也具有与串行/解串器501内数量相同的物理通道(如,图6中串行/解串器506中具有Lane0至LaneN共N+1个物理通道),串行/解串器506将获取到的各个物理通道上的并行数据流转换为串行数据流后再经由PCIe链路发送出去。After the
由上述可知,数据流在重定时器内部的传输是经由多个物理通道进行的,并且各个物理通道之间传输的数据不交互,但重定时器内部各个物理通道上所传输的数据需要进行同步。目前,重定时器只能针对自身内部的各个物理通道上传输的数据进行同步,并且多个重定时器只能通过类似串联的连接方式(如图3所示的方式)以延长PCIe链路的长度。但在实际应用中,若PCIe链路需要更多物理通道(如,32通道),而该PCIe链路中对应的重定时器(如,该重定时器只有8通道)不能满足PCIe链路的带宽需求,就需要更换该重定时器(如,更换为具有32通道的重定时器),若PCIe链路中以类似串联的形式接入的重定时器越多,更换就越麻烦。It can be seen from the above that the transmission of the data stream inside the retimer is carried out through multiple physical channels, and the data transmitted between the physical channels does not interact, but the data transmitted on each physical channel inside the retimer needs to be synchronized . At present, the retimer can only synchronize the data transmitted on each physical channel within itself, and multiple retimers can only be connected in series (as shown in Figure 3) to extend the PCIe link. length. However, in practical applications, if the PCIe link requires more physical channels (for example, 32 channels), and the corresponding retimer in the PCIe link (for example, the retimer has only 8 channels) cannot meet the requirements of the PCIe link. If the bandwidth requirement is high, the retimer needs to be replaced (for example, replaced with a retimer with 32 channels). If more retimers are connected in a similar series-connected form in the PCIe link, the replacement will be more troublesome.
基于此,本申请实施例提供了一种装置,其实现思路是,在多个重定时器之间,通过管脚发送同步信息,进而实时同步各个重定时器内部传输的数据的状态,从而达到多个重定时器内部的物理通道合并为一个PCIe链路上的物理通道的目的。为便于理解,可参阅图7,假设图7中的每个重定时器均为4个物理通道的重定时器,若PCIe链路只要一个重定时器,如(a)中的连接方式,那么此时构成的PCIe链路就为x4类型的PCIe链路;如(b)所示,两个具有4个物理通道的重定时器通过管脚01进行同步信息的传递就可以实现x8类型的PCIe链路;类似地,如(c)所示,四个分别具有4个物理通道的重定时器通过管脚02、管脚03、管脚04进行同步信息的传递就可以实现x16类型的PCIe链路;通过采用不同数量、不同类型的重定时器按照上述所述的实现思路进行堆叠,就可以实现对已有的PCIe链路拓展成满足用户需求的具有各种物理通道的PCIe链路。需要说明的是,在上述实现方式中,管脚01、管脚02、管脚03或管脚04是一个或多个管脚的集合,并不限定只是一个管脚。Based on this, the embodiment of the present application provides a device, the idea of which is to send synchronization information through the pins between multiple retimers, and then synchronize the state of the data transmitted inside each retimer in real time, so as to achieve The purpose of merging the physical channels inside multiple retimers into one physical channel on the PCIe link. For ease of understanding, please refer to Figure 7, assuming that each retimer in Figure 7 is a retimer with 4 physical channels, if the PCIe link only needs one retimer, such as the connection method in (a), then The PCIe link formed at this time is a x4-type PCIe link; as shown in (b), two retimers with 4 physical channels transmit synchronization information through pin 01 to implement x8-type PCIe Link; similarly, as shown in (c), four retimers with 4 physical channels respectively transmit synchronization information through pin 02, pin 03, and pin 04 to realize x16 type PCIe chain By adopting different numbers and different types of retimers to stack according to the implementation idea mentioned above, the existing PCIe link can be expanded into a PCIe link with various physical channels to meet user needs. It should be noted that, in the above implementation manner, the pin 01 , the pin 02 , the pin 03 or the pin 04 is a set of one or more pins, and is not limited to only one pin.
为便于理解,下面以两个重定时器为例,详细介绍本申请实施例所提供的一种装置如何通过管脚同步数据,具体请参阅图8,以数据流由设备1向设备2传输为例,具体阐述第一重定时器与第二重定时器内部各个不同模块在同步的过程中所起到的作用:For ease of understanding, the following uses two retimers as an example to describe in detail how a device provided in the embodiment of the present application synchronizes data through pins. For details, please refer to Figure 8, where the data stream is transmitted from device 1 to device 2. For example, specifically explain the role played by different modules inside the first retimer and the second retimer in the synchronization process:
一、第一重定时器与第二重定时器如何通过第一管脚同步进行数据的对齐。1. How the first retimer and the second retimer perform data alignment synchronously through the first pin.
在本申请实施例中,该用于数据同步的装置具体可以包括第一重定时器以及第二重定时器,其中,第一重定时器包括有第一偏差处理模块803、第二重定时器包括有第二偏差处理模块703,第二偏差处理模块703用于获取在第二重定时器内进行传输的数据(可称为第二传输数据)传输至第二偏差处理模块703的时刻点(可称为第二时刻点),并将该第二时刻点通过第一管脚同步至第一偏差处理模块803,类似地,该第一偏差处理模块803也用于获取在第一重定时器内进行传输的数据(可称为第一传输数据)传输至第一偏差处理模块803的时刻点(可称为第一时刻点),之后,第一偏差处理模块803就用于根据该第一时刻点以及第二时刻点确定一个目标时刻点,该目标时刻点为在该第一时刻点以及第二时刻点之后的时刻点,并进一步通过第一管脚将该目标时刻点同步至第二偏差处理模块703,这样,第一偏差处理模块703以及第二偏差处理模块803就可在达到该目标时刻点时分别将第一传输数据以及第二传输数据发送出去,也就是说,第一偏差处理模块803以及第二偏差处理模块703在目标时刻点将各自内部各个物理通道传输的数据进行对齐后再同步进行数据传输。In this embodiment of the application, the device for data synchronization may specifically include a first retimer and a second retimer, wherein the first retimer includes a first deviation processing module 803, a second retimer A second deviation processing module 703 is included, and the second deviation processing module 703 is used to obtain the time point ( can be referred to as the second time point), and synchronize the second time point to the first deviation processing module 803 through the first pin, similarly, the first deviation processing module 803 is also used to obtain The time point at which the data to be transmitted within (may be called the first transmission data) is transmitted to the first deviation processing module 803 (may be called the first time point), and then the first deviation processing module 803 is used to The time point and the second time point determine a target time point, the target time point is a time point after the first time point and the second time point, and further synchronize the target time point to the second time point through the first pin Deviation processing module 703, so that the first deviation processing module 703 and the second deviation processing module 803 can respectively send the first transmission data and the second transmission data when the target time point is reached, that is, the first deviation The processing module 803 and the second deviation processing module 703 align the data transmitted by each internal physical channel at the target time point and then perform data transmission synchronously.
需要说明的是,在本申请的一些实施方式中,第二偏差处理模块703用于获取第二传输数据传输至第二偏差处理模块703的第二时刻点,并将该第二时刻点通过第一管脚同步至第一偏差处理模块803的步骤可以由第一偏差处理模块803通过第一管脚向第二偏差处理模块703发送的触发指令(可称为第一触发指令)触发而执行,该第一触发指令就用于指示第二偏差处理模块703获取第二时刻点并将该第二时刻点通过第一管脚同步至第一偏差处理模块803的步骤;也可以是第二偏差处理模块一旦获取到第二传输数据,就自动确定该第二传输数据传输至第二偏差处理模块703的第二时刻点,并自动通过该第一管脚将第二时刻点同步至第一偏差处理模块803,具体此处对触发第二偏差处理模块703获取第二时刻点并通过第一管脚向第一偏差处理模块803发送该第二时刻点的方式不做限定。It should be noted that, in some implementations of the present application, the second
还需要说明的是,在本申请的一些实施方式中,上述第一触发指令可以是第一偏差处理模块803获取到的第一传输数据传输至第一偏差处理模块803的第一时刻点,也可以是第一偏差处理模块803获取到第一时刻点后随即生成的一个目标信息,该目标信息用于指示第二偏差处理模块703获取第二时刻点并向第一偏差处理模块803发送该第二时刻点,具体此处对第一触发指令的具体形式不做限定。It should also be noted that, in some embodiments of the present application, the above-mentioned first trigger instruction may be the first time point when the first transmission data acquired by the first
还需要说明的是,在本申请的一些实施方式中,第一管脚可以是一个,也可以是多个,第一管脚也可以是单比特(bit)管脚,也可以是多bit管脚,具体此处不做限定。It should also be noted that, in some embodiments of the present application, there may be one or more first pins, and the first pin may also be a single-bit (bit) pin or a multi-bit pin. The feet are not limited here.
为便于理解上述方案,下面以第一管脚包括四个管脚进行信息同步为例,对第一偏差处理模块803以及第二偏差处理模块703对同步进行数据对齐的方式进行说明,详细示意图请参阅图9,第一管脚包括管脚11、管脚12、管脚13、管脚14,其中,第一偏差处理模块803输出两个管脚(即管脚11和管脚12),第二偏差处理模块703通过管脚11和管脚12获取第一偏差处理模块803发送的信息,第二偏差处理模块703输出两个管脚(即管脚13和管脚14),第一偏差处理模块803通过管脚13和管脚14获取第二偏差处理模块703发送的信息。由于重定时器内部偏差处理模块进行数据对齐的方式是在特定时间内,偏差处理模块获取到各个正在物理通道上传输的数据所携带的协议特定字符(该协议特定字符就表示各个物理通道的数据被同时发出的标志,如训练序列有序集TS1/TS2,其在PCIe协议中有定义,此处不予赘述),偏差处理模块根据该协议特定字符进行数据对齐后再同时将各个通道的数据进行传输。以x4类型的单个重定时器为例进行说明:如图10所示,重定时器内各个模块(如,偏差处理模块、缓存器等)内部均有4个物理通道(如,图10中的Lan0至Lan4),每个物理通道内的数据由接收缓存器发出时,会在同时发出的时刻点在传输的数据上携带协议特定字符TS1,该协议特定字符TS1包括一个COM和后面15个8bit数据。在发送端(即重定时器的接收缓存器),4个物理通道是同时发送的COM,4个物理通道上的数据传输至偏差处理模块时,可能会出现如图10所示的情形,即COM不对齐,物理通道与物理通道之间,数据存在偏差(即数据到达偏差处理模块的时间不同导致的),那么在偏差处理模块中进行偏差处理使得各个物理通道上的数据被对齐,如图11所示即为对齐后的数据所携带的协议特定字符TS1,之后,偏差处理模块就可以将对齐后的数据再次传输至重定时器内的下一个模块。因此,在具有两个重定时器的情形中,当第一重定时器内通过各个物理通道进行传输的第一传输数据传输至第一偏差处理模块803时,也会有先后之差,那么当第一偏差处理模块803获取到物理通道中第一个传输的数据中携带的协议特定字符(可称为第一个协议特定字符A1)时,就会确定获取到该第一个协议特定字符A1传输至第一偏差处理模块803的时刻点1,并将该时刻点1通过管脚11同步至第二偏差处理模块703;当第一偏差处理模块803获取到物理通道中最后一个传输的数据中携带的协议特定字符(可称为最后一个协议特定字符A2)时,就会确定获取到该最后一个协议特定字符A2传输至第一偏差处理模块803的时刻点2,并将该时刻点2通过管脚12同步至第二偏差处理模块703。类似地,In order to facilitate the understanding of the above solution, the following takes the first pin including four pins for information synchronization as an example, and describes how the first
当第二重定时器内通过各个物理通道进行传输的第二传输数据传输至第二偏差处理模块703时,同样会有先后之差,那么当第二偏差处理模块703获取到物理通道中第一个传输的数据中携带的协议特定字符(可称为第一个协议特定字符B1)时,就会确定获取到该第一个协议特定字符B1传输至第二偏差处理模块703的时刻点3,并将该时刻点3通过管脚13同步至第一偏差处理模块803;当第二偏差处理模块703获取到物理通道中最后一个传输的数据中携带的协议特定字符(可称为最后一个协议特定字符B2)时,就会确定获取到该最后一个协议特定字符B2传输至第二偏差处理模块703的时刻点4,并将该时刻点4通过管脚14同步至第一偏差处理模块803。之后,第一偏差处理模块803可以判断时刻点1、时刻点2、时刻点3、时刻点4之间的时间差是否在协议规定的标准时间差内(如果计算得到时间差大于协议规定的标准时间差,则说明数据传输出现错误或延迟,此时不可对数据进行对齐),若确定计算得到的时间差小于标准时间差,那么第一偏差处理模块803将确定一个进行数据对齐的时刻点(即目标时刻点),并将该目标时刻点通过管脚11或管脚12发送至第二偏差处理模块703,之后,等达到目标时刻点时,第一偏差处理模块803以及第二偏差处理模块703同时对各自物理通道上的数据进行对齐,再分别同时在该目标时刻点将各个物理通道上的数据发送出去,从而达到两个重定时器内的数据同步对齐的目的。When the second transmission data transmitted through each physical channel in the second retimer is transmitted to the second
需要说明的是,第一管脚也可以只包括两个管脚,如可只包括管脚11(或管脚12)和管脚13(或管脚14),第一偏差处理模块803获取到的时刻点1和时刻点2均可通过管脚11(或管脚12)同步至第二偏差处理模块703,类似地,第二偏差处理模块703获取到的时刻点3和时刻点4也均可通过管脚13(或管脚14)同步至第一偏差处理模块803。还需要说明的是,第一管脚也可以只包括一个管脚,第一偏差处理模块803以及第二偏差处理模块703可以采用分时复用的方式利用这一个管脚将时刻1、时刻2、时刻3、时刻4同步至对方,具体此处对第一管脚所包括的管脚数量以及如何同步的具体方式不做限定。It should be noted that the first pin may only include two pins, for example, it may only include pin 11 (or pin 12) and pin 13 (or pin 14), and the first
在本申请上述实施方式中,第一重定时器和第二重定时器通过第一管脚分别获取到对方各个物理通道上传输的数据传输至各自内部的偏差处理模块时的时刻点,并由第一重定时器根据各时刻点确定出一个目标时刻点,并进一步将该目标时刻点同步至第二重定时器,当达到该目标时刻点时,启动所有跨重定时器的各个物理通道的数据对齐操作,完成所有重定时器内物理通道上数据的对齐。In the above-mentioned embodiments of the present application, the first retimer and the second retimer respectively obtain the time point when the data transmitted on each physical channel of the other party is transmitted to the respective internal deviation processing module through the first pin, and the The first retimer determines a target time point according to each time point, and further synchronizes the target time point to the second retimer, and when the target time point is reached, all physical channels across the retimer are started The data alignment operation completes the data alignment on the physical channel in all retimers.
二、第一重定时器与第二重定时器如何通过第二管脚同步进行链路协商。2. How the first retimer and the second retimer perform link negotiation synchronously through the second pin.
第一重定时器除了包括有第一偏差处理模块803、第二重定时器除了包括有第二偏差处理模块703以外,第一重定时器具体还可以包括第一链路协商状态机804、第二重定时器具体还可以包括第二链路协商状态机704。需要说明的是,在本申请的一些实施方式中,第一偏差处理模块803以及第二偏差处理模块703在进行数据对齐之前,还需要分别将各自用于传输数据的物理通道的状态发送至第一链路协商状态机804以及第二链路协商状态机704,该第一链路协商状态机804以及第二链路协商状态机704用于在第一偏差处理模块803确定目标时刻点之前先进行链路协商。In addition to the first retimer including the first
下面对第一链路协商状态机804以及第二链路协商状态机704如何通过第二管脚同步进行链路协商进行说明:第二链路协商状态机704用于获取第二偏差处理模块703内各个物理通道的状态(如哪些物理通道处于传输并行数据流的状态、哪些物理通道传输了物理的特定数据流、哪些物理通道传输了什么样的数据流等),该状态可称为第二状态,之后第二链路协商状态机704还用于将该第二状态通过第二管脚同步至第一链路协商状态机804,类似地,该第一链路协商状态机804也用于获取第一偏差处理模块803内各个物理通道的状态(可称为第一状态),之后,该第一链路协商状态机804就用于根据该第一状态以及第二状态确定跳转时刻,并用于进一步通过第二管脚将跳转时刻同步至第二链路协商状态机704,这样,第一链路协商状态机804以及第二链路协商状态机704,还用于在跳转时刻同时进行链路协商。如,可以是第一链路协商状态机804获取到第二状态后开始计时,计时达到特定时长后,第一链路协商状态机804以及第二链路协商状态机704同时进行链路协商。The following describes how the first link
需要说明的是,在本申请的一些实施方式中,第二链路协商状态机704用于获取第二偏差处理模块703内各个物理通道的第二状态,并将该第二状态同步至第一链路协商状态机804的步骤可以由第一链路协商状态机804通过第二管脚向第二链路协商状态机704发送的第一状态触发而执行,经由第二管脚发送至第二链路协商状态机704的第一状态就用于指示第二链路协商状态机704执行获取第二状态的步骤。It should be noted that, in some embodiments of the present application, the second link
还需要说明的是,若第一链路协商状态机804也用于将第一状态通过第二管脚同步至第二链路协商状态机704,由于重定时器内的链路协商状态机进行链路协商的方式在PCIe协议中都有明确定义,即协议中明确定义了如何根据各个不同的物理通道的状态进行何种形式的链路协商,因此第一链路协商状态机804以及第二链路协商状态机704用于在跳转时刻同时进行链路协商的方式可以是:第一链路协商状态机804用于在确定的跳转时刻根据第一状态以及第二状态进行链路协商;第二链路协商状态机704用于在同样的跳转时刻根据第一状态以及第二状态进行链路协商,根据PCIe协议的定义可知,只要确定了同样的跳转时刻(即保证两个链路协商状态机同步工作),第一链路协商状态机804以及第二链路协商状态机704就可以同时进行完全一致的链路协商方式,从而达到两个重定时器合并为一个链路进行链路协商的目的。It should also be noted that if the first link
需要说明的是,在本申请的一些实施方式中,第二管脚可以是一个管脚,也可以是多个管脚,具体此处不做限定。若第二管脚为一个管脚时,以单bit管脚为例说明:第一链路协商状态机804以及第二链路协商状态机704分时复用该第二管脚,如第一链路协商状态机804先使用该第二管脚传输信息(如向第二链路协商状态机704发送第一状态),传输完成后,释放该第二管脚,由第二链路协商状态机704使用该第二管脚传输信息(如向第一链路协商状态机804发送第二状态)。如图12所示,假设管脚信号(即通过第二管脚传输的信号,如第一状态、第二状态)在重定时器内以1GHz产生,在第二管脚上以100MHz传输,那么每bit的状态有效10ns。在本申请的一些实施方式中,可以默认管脚电平为高(也可以默认为管脚电平为低),当第一重定时器控制管脚电平置为低电平时,则第一重定时器拥有对该管脚的使用权,此时意味着一个传输命令开始,如,可先传输4bit地址,代表命令类型,然后是发送最多16bit的数据,当数据传输完成后,管脚置高电平,表示本次传输命令完成,第一重定时器交出管脚的使用权给第二重定时器使用。若第二管脚为多个管脚时,那么也可以不采用分时复用的方式,此时就可以采用独立的同步信号,比如第一链路协商状态机804通过一个管脚给第二链路协商状态机704传输同步信号,第二链路协商状态机704通过另外一个管脚给第一链路协商状态机804传输同步信号,每组同步信号可以是单位信号或多位信号,具体此处不做限定。It should be noted that, in some implementation manners of the present application, the second pin may be one pin, or may be multiple pins, which are not specifically limited here. If the second pin is a pin, take a single-bit pin as an example: the first link
在本申请上述实施方式中,第一重定时器和第二重定时器通过第二管脚分别获取到对方各个物理通道的状态(如,第一状态以及第二状态),并由第一重定时器根据这两个重定时器内的所有物理通道的状态确定出一个跳转时刻,并进一步将该跳转时刻同步至第二重定时器,当达到该跳转时刻时,由第一重定时器内的第一链路协商状态机804和第二重定时器内的第二链路协商状态机704启动所有跨重定时器的链路协商,从而达到两个重定时器合并为一个链路进行链路协商的目的。In the above-mentioned embodiments of the present application, the first retimer and the second retimer obtain the states (such as the first state and the second state) of each physical channel of the other party respectively through the second pin, and the first retimer The timer determines a jump time according to the states of all physical channels in the two retimers, and further synchronizes the jump time to the second retimer. When the jump time is reached, the first retimer The first link
三、第一重定时器与第二重定时器如何通过第三管脚同步处理频偏。3. How the first retimer and the second retimer process the frequency offset synchronously through the third pin.
第一重定时器除了包括有第一偏差处理模块803和/或第一链路协商状态机804、第二重定时器除了包括有第二偏差处理模块703和/或第二链路协商状态机704以外,第一重定时器具体还可以包括第一缓存器、第二重定时器具体还可以包括第二缓存器。如图8所示,第一缓存器具体可以包括接收缓存器802以及发送缓存器805,第二缓存器具体可以包括接收缓存器702以及发送缓存器705。需要说明的是,在本申请的一些实施方式中,各重定时器内的数据传输至各自内部的缓存器时,缓存器还需要对获取到的数据进行频偏处理,即要保证每个正在传输数据的物理通道对应的接收缓存器不溢出(即不丢失数据),同时要保证每个正在传输数据的物理通道对应的发送缓存器不断流(即不丢失数据)。其处理的方式就是通过SKP增删规则来保证对应的接收缓存器不溢出以及对应的发送缓存器不断流(如,按照预设规则在对应的接收缓存器中增加SKP数据、按照预设规则在对应的发送缓存器中删除SKP数据)。The first retimer includes the first
需要说明的是,缓存器如何通过获取SKP数据并根据SKP增删规则保证缓存器内的数据不溢出或不断流是已有的(即如何处理频偏),此处不予赘述,在本申请实施例中,重点阐述第一重定时器以及第二重定时器如何通过第三管脚同步处理频偏。首先,第二缓存器用于确定第二SKP数据的状态(可称为第四状态),并将第四状态通过第三管脚同步至第一缓存器,类似地,第一缓存器也用于获取第一SKP数据的状态(可称为第三状态),之后,该第一缓存器就用于根据第三状态以及第四状态确定SKP增删规则,并用于进一步通过第三管脚将确定的SKP增删规则同步至第二缓存器,这样,第一缓存器以及第二缓存器,还用于根据所述相同的SKP增删规则分别调整第一传输数据以及第二传输数据。It should be noted that how the buffer obtains SKP data and ensures that the data in the buffer does not overflow or continue to flow according to the SKP addition and deletion rules is existing (that is, how to deal with frequency offset), which will not be described here, and will be implemented in this application. In the example, it focuses on how the first retimer and the second retimer process the frequency deviation synchronously through the third pin. First, the second buffer is used to determine the state of the second SKP data (can be called the fourth state), and synchronize the fourth state to the first buffer through the third pin, similarly, the first buffer is also used for Obtain the state of the first SKP data (which can be called the third state), and then the first buffer is used to determine the SKP addition and deletion rules according to the third state and the fourth state, and is used to further determine through the third pin The SKP addition and deletion rules are synchronized to the second buffer, so that the first buffer and the second buffer are also used to respectively adjust the first transmission data and the second transmission data according to the same SKP addition and deletion rules.
为便于理解,下面以图8为例对如何同步处理频偏详细进行说明:为了保证第一重定时器内的接收缓存器802、第二重定时器内的接收缓存器702不溢出,并且还要保证两个重定时器内的接收缓存器同步处理频偏,那么该SKP增删规则可以是接收缓存器802每收到一组SKP数据,则固定删除一个单位的SKP(即固定删除一个8bit的SKP数据,PCIe中协议有定义,此处不予赘述),接收缓存器802确定了所述SKP增删规则之后,就可以通过第三管脚将该SKP增删规则同步至接收缓存器702,接收缓存器702获取到该增删规则后,也将根据该增删规则与接收缓存器802同步进行频偏处理。类似地,为了保证第一重定时器内的发送缓存器805、第二重定时器内的发送缓存器705不断流,并且还要保证两个重定时器内的发送缓存器同步处理频偏,那么该SKP增删规则可以是第一重定时器和第二重定时器分别监控发送缓存器805和发送缓存器705的下水线,下水线分两级,第一级加一个单位的SKP,第二级加两个单位的SKP(增加两个单位的SKP可以保证覆盖到协议定义的频偏,保证在增加SKP后,发送缓存器会是非空状态,这样发送缓存器内就有数据,可以达到不断流的目的),其他情况不增加。发送缓存器805确定了所述SKP增删规则之后,就可以通过第三管脚将该SKP增删规则同步至发送缓存器705,发送缓存器705获取到该增删规则后,也将根据该增删规则与接收缓存器805同步进行频偏处理。For ease of understanding, the following uses Fig. 8 as an example to describe in detail how to process frequency offset synchronously: in order to ensure that the receiving
需要说明的是,在本申请的一些实施方式中,第二缓存器用于确定第二SKP数据的第四状态,并将该第四状态通过第三管脚同步至第一缓存器的步骤可以由第一缓存器通过第三管脚向第二缓存器发送的触发指令(可称为第二触发指令)触发而执行,该第二触发指令就用于指示第二缓存器执行获取所述第四状态并将该第四状态通过第三管脚同步至第一缓存器的步骤;也可以是第二缓存器一旦获取到第二SKP数据,就自动确定该第二SKP数据的第四状态,并自动通过该第三管脚将第四状态同步至第一缓存器,具体此处对触发第二缓存器获取第四状态并通过第三管脚向第一缓存器发送该第四状态的方式不做限定。It should be noted that, in some embodiments of the present application, the second buffer is used to determine the fourth state of the second SKP data, and the step of synchronizing the fourth state to the first buffer through the third pin can be performed by The first buffer is triggered to be executed by a trigger instruction (which may be referred to as a second trigger instruction) sent to the second buffer by the third pin, and the second trigger instruction is used to instruct the second buffer to execute the acquisition of the fourth State and the step of synchronizing the fourth state to the first buffer through the third pin; it may also be that once the second buffer acquires the second SKP data, it automatically determines the fourth state of the second SKP data, and The fourth state is automatically synchronized to the first buffer through the third pin. Specifically, the method of triggering the second buffer to obtain the fourth state and sending the fourth state to the first buffer through the third pin is different. Do limited.
还需要说明的是,在本申请的一些实施方式中,上述第二触发指令可以是第一缓存器获取到的第一SKP数据的第三状态,也可以是第一缓存器获取到第三状态后随即生成的一个目标信息,该目标信息用于指示第二缓存器获取第四状态并向第一缓存器发送该第四状态,具体此处对第二触发指令的具体形式不做限定。It should also be noted that, in some embodiments of the present application, the above-mentioned second trigger instruction may be the third state of the first SKP data obtained by the first buffer, or may be the third state obtained by the first buffer. A piece of target information is generated immediately thereafter, and the target information is used to instruct the second buffer to acquire the fourth state and send the fourth state to the first buffer. Specifically, the specific form of the second trigger instruction is not limited here.
还需要说明的是,需要说明的是,在本申请的一些实施方式中,与上述第二管脚类似,第三管脚也可以是一个管脚,也可以是多个管脚,具体此处不做限定。It should also be noted that, in some embodiments of the present application, similar to the above-mentioned second pin, the third pin may also be one pin or multiple pins, specifically here No limit.
在本申请上述实施方式中,第一重定时器和第二重定时器通过第三管脚分别获取各自缓存器(如,接收缓存器、发送缓存器)接收到的SKP数据的状态(如,第三状态以及第四状态),并由第一重定时器根据这两个重定时器内的缓存器接收到的SKP数据的状态确定出一个SKP增删规则,并进一步将该SKP增删规则同步至第二重定时器,由第一重定时器内的第一缓存器和第二重定时器内的第二缓存器同时根据该SKP增删规则分别调整各自的传输数据,从而达到两个重定时器合并为一个链路进行频偏处理的目的。In the above-mentioned embodiments of the present application, the first retimer and the second retimer obtain the status of the SKP data received by the respective buffers (such as the receiving buffer and the sending buffer) respectively through the third pin (such as, the third state and the fourth state), and determine a SKP addition and deletion rule by the first retimer according to the state of the SKP data received by the buffer in the two retimers, and further synchronize the SKP addition and deletion rule to the The second retimer, the first buffer in the first retimer and the second buffer in the second retimer adjust the respective transmission data according to the SKP addition and deletion rules at the same time, so as to achieve two retimers The purpose of combining them into one link for frequency offset processing.
需要说明的是,上述实施例所述的用于数据同步的装置均是以包括两个重定时器为例进行说明的,在本申请的一些实施方式中,用于数据同步的装置还可以包括两个以上的重定时器,从而达到对多个重定时器内的数据进行同步的目的,即可以按照上述类似的方式将更多个重定时器进行堆叠,以实现拓展PCIe链路宽度的目的。It should be noted that the devices for data synchronization described in the above-mentioned embodiments are all described as including two retimers as an example. In some embodiments of the present application, the devices for data synchronization may also include More than two retimers, so as to achieve the purpose of synchronizing data in multiple retimers, that is, more retimers can be stacked in a similar manner to the above to achieve the purpose of expanding the width of the PCIe link .
此外,本申请实施例还提供了一种数据同步的方法,具体如图13所示。In addition, the embodiment of the present application also provides a data synchronization method, as shown in FIG. 13 .
1301、第二重定时器获取第二时刻点。1301. The second retimer acquires a second time point.
首先,第二重定时器会获取到第二传输数据传输至第二重定时器内第二偏差处理模块的第二时刻点。Firstly, the second retimer will obtain the second time point when the second transmission data is transmitted to the second deviation processing module in the second retimer.
1302、第二重定时器通过第一管脚将第二时刻点发送至第一重定时器。1302. The second retimer sends the second time point to the first retimer through the first pin.
之后,第二重定时器通过第一管脚将获取到的该第二时刻点同步至第一重定时器。Afterwards, the second retimer synchronizes the obtained second time point to the first retimer through the first pin.
1303、第一重定时器通过第一时刻点及第二时刻点确定目标时刻点。1303. The first retimer determines the target time point through the first time point and the second time point.
第一重定时器获取到第二重定时器通过第一管脚发送的第一时刻点以后,就可以根据预先通过自身获取的第一时刻点以及第二时刻点确定目标时刻点,其中,第一时刻点为第一重定时器内的第一传输数据传输至第一重定时器内第一偏差处理模块的时刻点。After the first retimer obtains the first time point sent by the second retimer through the first pin, it can determine the target time point according to the first time point and the second time point obtained by itself in advance, wherein the first A time point is a time point when the first transmission data in the first retimer is transmitted to the first deviation processing module in the first retimer.
1304、第一重定时器通过第一管脚发送目标时刻点至第二重定时器。1304. The first retimer sends the target time point to the second retimer through the first pin.
第一重定时器确定好目标时刻点之后,会将该目标时刻点通过第一管脚同步至第二重定时器。这样,第一重定时器以及第二重定时器内就都存在该目标时刻点。After the first retimer determines the target time point, it will synchronize the target time point to the second retimer through the first pin. In this way, the target time point exists in both the first retimer and the second retimer.
1305、第二重定时器在目标时刻点发送第二传输数据。1305. The second retimer sends the second transmission data at the target time point.
最后,第二重定时器根据获取到的目标时刻点在目标时刻点发送第二传输数据。Finally, the second retimer sends the second transmission data at the target time point according to the acquired target time point.
1306、第一重定时器在目标时刻点发送第一传输数据。1306. The first retimer sends the first transmission data at the target time point.
类似地,第一重定时器也会在目标时刻点发送第一传输数据。Similarly, the first retimer will also send the first transmission data at the target time point.
需要说明的是,在本申请上述实施例中,步骤1305与步骤1306是同时发生的,即第一重定时器以及第二重定时器均是在目标时刻点对各自内部传输的第一传输数据以及第二传输数据进行发送,即第一重定时器以及第二重定时器在目标时刻点对各自物理通道上传输的数据进行对齐后再发送出去。It should be noted that, in the above-mentioned embodiments of the present application, step 1305 and step 1306 occur simultaneously, that is, the first retimer and the second retimer are both internally transmitted first transmission data at the target time point And the second transmission data is sent, that is, the first retimer and the second retimer align the data transmitted on the respective physical channels at the target time point and then send them out.
在本申请上述实施方式中,第一重定时器和第二重定时器通过第一管脚分别获取到对方各个物理通道上传输的数据传输至各自内部的偏差处理模块时的时刻点,并由第一重定时器根据各时刻点确定出一个目标时刻点,并进一步将该目标时刻点同步至第二重定时器,当达到该目标时刻点时,启动所有跨重定时器的各个物理通道的数据对齐操作,完成所有重定时器内物理通道上数据的对齐。In the above-mentioned embodiments of the present application, the first retimer and the second retimer respectively obtain the time point when the data transmitted on each physical channel of the other party is transmitted to the respective internal deviation processing module through the first pin, and the The first retimer determines a target time point according to each time point, and further synchronizes the target time point to the second retimer, and when the target time point is reached, all physical channels across the retimer are started The data alignment operation completes the data alignment on the physical channel in all retimers.
优选的,在本申请的一些实施方式中,在第二重定时器通过第一管脚将第二重定时器内第二偏差处理模块获取到第二传输数据的第二时刻点同步至第一重定时器之前,所述方法还可以包括:第一重定时器通过第一管脚向第二重定时器发送第一触发指令,第一触发指令用于指示第二重定时器执行获取该第二时刻点的步骤。也可以是第二重定时器内的第二偏差处理模块一旦获取到第二传输数据,就自动确定该第二传输数据传输至第二偏差处理模块的第二时刻点,之后第二重定时器自动通过该第一管脚将第二时刻点同步至第一重定时器,具体此处对触发第二重定时器获取第二时刻点并通过第一管脚向第一重定时器发送该第二时刻点的方式不做限定。Preferably, in some embodiments of the present application, the second retimer synchronizes the second time point when the second deviation processing module in the second retimer obtains the second transmission data through the first pin to the first Before the re-timer, the method may further include: the first re-timer sends a first trigger instruction to the second re-timer through the first pin, and the first trigger instruction is used to instruct the second re-timer to perform acquisition of the first re-timer. Step two. It can also be that once the second deviation processing module in the second retimer acquires the second transmission data, it automatically determines the second time point when the second transmission data is transmitted to the second deviation processing module, and then the second retimer Automatically synchronize the second time point to the first retimer through the first pin, specifically here to trigger the second retimer to obtain the second time point and send the first time point to the first retimer through the first pin The method of the second time point is not limited.
优选的,在本申请的一些实施方式中,上述第一触发指令可以是第一重定时器获取到的第一传输数据传输至第一偏差处理模块的第一时刻点,也可以是第一重定时器获取到第一时刻点后随即生成的一个目标信息,该目标信息用于指示第二重定时器获取第二时刻点并向第一重定时器发送该第二时刻点,具体此处对第一触发指令的具体形式不做限定。Preferably, in some embodiments of the present application, the above-mentioned first trigger instruction may be the first time point when the first transmission data acquired by the first retimer is transmitted to the first deviation processing module, or it may be the first time point when the first retimer A target information generated immediately after the timer obtains the first time point, the target information is used to instruct the second retimer to obtain the second time point and send the second time point to the first retimer, specifically here The specific form of the first trigger instruction is not limited.
需要说明的是,在本申请的一些实施方式中,第一重定时器以及第二重定时器在进行数据对齐之前(即在第一重定时器根据获取到的第一时刻点以及第二时刻点确定目标时刻点之前),还需要分别将各自用于传输数据的物理通道的状态发送至第一重定时器内的第一链路协商状态机以及第二重定时器内的第二链路协商状态机,使得该第一链路协商状态机以及第二链路协商状态机在第一偏差处理模块确定目标时刻点之前先进行链路协商。It should be noted that, in some embodiments of the present application, before the first retimer and the second retimer perform data alignment (that is, before the first retimer obtains the first time point and the second time point according to point before determining the target time point), it is also necessary to send the states of the physical channels used to transmit data to the first link negotiation state machine in the first retimer and the second link in the second retimer respectively. The negotiation state machine is such that the first link negotiation state machine and the second link negotiation state machine perform link negotiation before the first deviation processing module determines the target time point.
优选的,在本申请的一些实施方式中,第一链路协商状态机以及第二链路协商状态机进行链路协商的方式可以是:第二重定时器获取用于传输第二传输数据的通道的第二状态(如哪些物理通道处于传输并行数据流的状态、哪些物理通道传输了物理的特定数据流、哪些物理通道传输了什么样的数据流等),并将第二状态通过第二管脚同步至第一重定时器;之后,由该第一重定时器根据获取到的第一状态以及第二状态确定跳转时刻,并通过第二管脚将该跳转时刻同步至第二重定时器,其中,第一状态为第一重定时器中传输第一传输数据的通道的状态;最后,第一链路协商状态机以及第二链路协商状态机在跳转时刻进行链路协商。如,可以是第一链路协商状态机获取到第二状态后开始计时,计时达到特定时长后,第一链路协商状态机以及第二链路协商状态机同时进行链路协商。Preferably, in some embodiments of the present application, the link negotiation method of the first link negotiation state machine and the second link negotiation state machine may be: the second retimer acquires The second state of the channel (such as which physical channels are in the state of transmitting parallel data streams, which physical channels transmit specific physical data streams, which physical channels transmit what kind of data streams, etc.), and pass the second state through the second The pin is synchronized to the first retimer; after that, the first retimer determines the jump time according to the acquired first state and the second state, and synchronizes the jump time to the second through the second pin The retimer, wherein, the first state is the state of the channel that transmits the first transmission data in the first retimer; finally, the first link negotiation state machine and the second link negotiation state machine perform link negotiate. For example, the first link negotiation state machine may start timing after acquiring the second state, and after the timing reaches a specific duration, the first link negotiation state machine and the second link negotiation state machine simultaneously perform link negotiation.
优选的,在本申请的一些实施方式中,在第二重定时器获取用于传输第二传输数据的通道的第二状态,并将第二状态通过第二管脚同步至所述第一重定时器之前,所述方法还可以包括:第一重定时器通过第二管脚向第二链路协商状态机发送第一状态,该第一状态用于触发第二重定时器执行获取第二状态的步骤,经由第二管脚发送至第二链路协商状态机的第一状态就用于指示第二链路协商状态机行获取第二状态的步骤。Preferably, in some embodiments of the present application, the second retimer obtains the second state of the channel used to transmit the second transmission data, and synchronizes the second state to the first retimer through the second pin. Before the timer, the method may further include: the first retimer sends a first state to the second link negotiation state machine through a second pin, and the first state is used to trigger the second retimer to perform acquisition of the second In the step of state, the first state sent to the second link negotiation state machine via the second pin is used to instruct the second link negotiation state machine to perform the step of acquiring the second state.
优选的,若第一链路协商状态机将第一状态通过第二管脚同步至第二链路协商状态机,由于重定时器内的链路协商状态机进行链路协商的方式在PCIe协议中都有明确定义,即协议中明确定义了如何根据各个不同的物理通道的状态进行何种形式的链路协商,因此第一链路协商状态机以及第二链路协商状态机在跳转时刻同时进行链路协商的方式可以是:第一链路协商状态机在确定的跳转时刻根据第一状态以及第二状态进行链路协商;第二链路协商状态机也在同样的跳转时刻根据第一状态以及第二状态进行链路协商,根据PCIe协议的定义可知,只要确定了同样的跳转时刻(即保证两个链路协商状态机同步工作),第一链路协商状态机以及第二链路协商状态机就可以同时进行完全一致的链路协商方式,从而达到两个重定时器合并为一个链路进行链路协商的目的。Preferably, if the first link negotiation state machine synchronizes the first state to the second link negotiation state machine through the second pin, because the link negotiation state machine in the retimer performs link negotiation in the PCIe protocol There are clear definitions in the protocol, that is, the protocol clearly defines how to perform link negotiation according to the state of each different physical channel, so the first link negotiation state machine and the second link negotiation state machine The way of performing link negotiation at the same time may be: the first link negotiation state machine performs link negotiation according to the first state and the second state at the determined jump moment; the second link negotiation state machine also performs the link negotiation at the same jump moment Carry out link negotiation according to the first state and the second state, according to the definition of the PCIe protocol, as long as the same jump moment is determined (that is, to ensure that the two link negotiation state machines work synchronously), the first link negotiation state machine and The second link negotiation state machine can simultaneously perform a completely consistent link negotiation mode, thereby achieving the purpose of merging two retimers into one link for link negotiation.
在本申请上述实施方式中,第一重定时器和第二重定时器通过第二管脚分别获取到对方各个物理通道的状态(如,第一状态以及第二状态),并由第一重定时器根据这两个重定时器内的所有物理通道的状态确定出一个跳转时刻,并进一步将该跳转时刻同步至第二重定时器,当达到该跳转时刻时,由第一重定时器内的第一链路协商状态机和第二重定时器内的第二链路协商状态机启动所有跨重定时器的链路协商,从而达到两个重定时器合并为一个链路进行链路协商的目的。In the above-mentioned embodiments of the present application, the first retimer and the second retimer obtain the states (such as the first state and the second state) of each physical channel of the other party respectively through the second pin, and the first retimer The timer determines a jump time according to the states of all physical channels in the two retimers, and further synchronizes the jump time to the second retimer. When the jump time is reached, the first retimer The first link negotiation state machine in the timer and the second link negotiation state machine in the second retimer start all link negotiations across retimers, so that two retimers can be merged into one link for The purpose of link negotiation.
还需要说明的是,在本申请的一些实施方式中,第一重定时器与第二重定时器还需要对流经各个重定时器内缓存器的数据进行频偏处理,即要保证每个正在传输数据的物理通道对应的接收缓存器不溢出(即不丢失数据),同时要保证每个正在传输数据的物理通道对应的发送缓存器不断流(即不丢失数据)。其处理的方式就是通过SKP增删规则来保证对应的接收缓存器不溢出以及对应的发送缓存器不断流(如,按照预设规则在对应的接收缓存器中增加SKP数据、按照预设规则在对应的发送缓存器中删除SKP数据)。首先,第二重定时器获取第二重定时器中第二缓存器内的第二SKP数据的状态(可称为第四状态),并将第四状态通过第三管脚同步至第一重定时器,类似地,第一重定时器也将获取第一SKP数据的状态(可称为第三状态,该第三状态为第一重定时器中第一缓存器内的第一SKP数据的状态),之后,该第一重定时器就根据第三状态以及第四状态确定SKP增删规则,并进一步通过第三管脚将确定的SKP增删规则同步至第二重定时器,这样,第一重定时器以及第二重定时器就根据所述相同的SKP增删规则分别调整第一传输数据以及第二传输数据。It should also be noted that, in some embodiments of the present application, the first retimer and the second retimer also need to perform frequency offset processing on the data flowing through the buffers in each retimer, that is, to ensure that each The receiving buffer corresponding to the physical channel transmitting data does not overflow (that is, no data is lost), and at the same time, it is necessary to ensure that the sending buffer corresponding to each physical channel that is transmitting data is continuously flowing (that is, no data is lost). The processing method is to ensure that the corresponding receiving buffer does not overflow and the corresponding sending buffer does not flow through the SKP addition and deletion rules (for example, add SKP data in the corresponding receiving buffer according to the preset rules, and add SKP data in the corresponding receiving buffer according to the preset rules. delete the SKP data in the send buffer). First, the second retimer acquires the state of the second SKP data in the second buffer in the second retimer (which can be called the fourth state), and synchronizes the fourth state to the first retimer through the third pin. timer, similarly, the first retimer will also obtain the state of the first SKP data (can be referred to as the third state, and this third state is the first SKP data in the first buffer in the first retimer) state), after that, the first retimer determines the SKP addition and deletion rules according to the third state and the fourth state, and further synchronizes the determined SKP addition and deletion rules to the second retimer through the third pin, so that the first The retimer and the second retimer respectively adjust the first transmission data and the second transmission data according to the same SKP addition and deletion rule.
优选的,在本申请的一些实施方式中,在第二重定时器确定第二重定时器中第二缓存器内的第二SKP数据的第四状态,并将第四状态通过第三管脚同步至第一重定时器之前,所述方法还可以包括:可以是第一重定时器通过第三管脚向第二重定时器发送第二触发指令,该第二触发指令用于指示第二重定时器执行获取第四状态的步骤。也可以是第二重定时器一旦获取到第二SKP数据,就自动确定该第二SKP数据的第四状态,并自动通过该第三管脚将第四状态同步至第一重定时器,具体此处对触发第二重定时器获取第四状态并通过第三管脚向第一重定时器发送该第四状态的方式不做限定。Preferably, in some embodiments of the present application, the fourth state of the second SKP data in the second buffer in the second retimer is determined in the second retimer, and the fourth state is passed through the third pin Before synchronizing to the first retimer, the method may further include: the first retimer may send a second trigger instruction to the second retimer through the third pin, and the second trigger instruction is used to indicate the second The retimer performs the steps of obtaining the fourth state. It can also be that once the second retimer acquires the second SKP data, it automatically determines the fourth state of the second SKP data, and automatically synchronizes the fourth state to the first retimer through the third pin, specifically Here, there is no limitation on the manner of triggering the second retimer to obtain the fourth state and sending the fourth state to the first retimer through the third pin.
优选的,在本申请的一些实施方式中,上述第二触发指令可以是第一重定时器获取到的第一SKP数据的第三状态,也可以是第一重定时器获取到第三状态后随即生成的一个目标信息,该目标信息用于指示第二重定时器获取第四状态并向第一重定时器发送该第四状态,具体此处对第二触发指令的具体形式不做限定。Preferably, in some embodiments of the present application, the above-mentioned second trigger instruction may be the third state of the first SKP data obtained by the first retimer, or it may be after the first retimer obtains the third state A target information is generated immediately, and the target information is used to instruct the second retimer to obtain the fourth state and send the fourth state to the first retimer. Specifically, the specific form of the second trigger instruction is not limited here.
优选的,在本申请的一些实施方式中,第一缓存器可以包括第一接收缓存器以及第一发送缓存器;第二缓存器可以包括第二接收缓存器以及第二发送缓存器。Preferably, in some embodiments of the present application, the first buffer may include a first receiving buffer and a first sending buffer; the second buffer may include a second receiving buffer and a second sending buffer.
还需要说明的是,上述实施例所述的数据同步的方法中包括两个重定时器为例进行说明的,在本申请的一些实施方式中,用于数据同步的方法中还可以包括两个以上的重定时器,从而达到对多个重定时器内的数据进行同步的目的,即可以按照上述类似的方式将更多个重定时器进行堆叠,以实现拓展PCIe链路宽度的目的。It should also be noted that the data synchronization method described in the above embodiment includes two retimers as an example. In some embodiments of the present application, the data synchronization method may also include two retimers. The above retimers achieve the purpose of synchronizing data in multiple retimers, that is, more retimers can be stacked in a similar manner to the above to achieve the purpose of expanding the width of the PCIe link.
在本申请上述实施方式中,第一重定时器和第二重定时器通过第三管脚分别获取各自缓存器(如,接收缓存器、发送缓存器)接收到的SKP数据的状态(如,第三状态以及第四状态),并由第一重定时器根据这两个重定时器内的缓存器接收到的SKP数据的状态确定出一个SKP增删规则,并进一步将该SKP增删规则同步至第二重定时器,由第一重定时器内的第一缓存器和第二重定时器内的第二缓存器同时根据该SKP增删规则分别调整各自的传输数据,从而达到两个重定时器合并为一个链路进行频偏处理的目的。In the above-mentioned embodiments of the present application, the first retimer and the second retimer obtain the status of the SKP data received by the respective buffers (such as the receiving buffer and the sending buffer) respectively through the third pin (such as, the third state and the fourth state), and determine a SKP addition and deletion rule by the first retimer according to the state of the SKP data received by the buffer in the two retimers, and further synchronize the SKP addition and deletion rule to the The second retimer, the first buffer in the first retimer and the second buffer in the second retimer adjust the respective transmission data according to the SKP addition and deletion rules at the same time, so as to achieve two retimers The purpose of combining them into one link for frequency offset processing.
在上述实施例中,可以全部或部分地通过硬件、固件或者其任意组合来实现。In the above embodiments, all or part of the implementation may be implemented by hardware, firmware or any combination thereof.
Claims (24)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2019/120976 WO2021102688A1 (en) | 2019-11-26 | 2019-11-26 | Data synchronization method and apparatus |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN114556870A CN114556870A (en) | 2022-05-27 |
| CN114556870B true CN114556870B (en) | 2023-04-04 |
Family
ID=76129086
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201980101283.XA Active CN114556870B (en) | 2019-11-26 | 2019-11-26 | Data synchronization method and device |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN114556870B (en) |
| WO (1) | WO2021102688A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119629775B (en) * | 2025-02-11 | 2025-05-27 | 安徽蔚来智驾科技有限公司 | Wireless communication method, terminal device, server and readable storage medium |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105793715A (en) * | 2013-12-26 | 2016-07-20 | 英特尔公司 | Interconnect Retimer Enhancements |
| CN109992548A (en) * | 2017-12-29 | 2019-07-09 | 德克萨斯仪器股份有限公司 | Link width scaling across multiple retimer equipment |
| CN110366842A (en) * | 2017-03-31 | 2019-10-22 | 英特尔公司 | Adjustable Retimer Buffer |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9875210B2 (en) * | 2014-06-27 | 2018-01-23 | Intel Corporation | Method and apparatus of USB 3.1 retimer presence detect and index |
| US9559905B2 (en) * | 2014-12-24 | 2017-01-31 | Intel Corporation | Type-C retimer state machine and a protocol for inband control and configuration |
| US10747688B2 (en) * | 2016-12-22 | 2020-08-18 | Intel Corporation | Low latency retimer |
| CN110445569B (en) * | 2019-07-18 | 2021-03-23 | 广州健飞通信有限公司 | Integrated system with timing and instruction synchronization function |
-
2019
- 2019-11-26 CN CN201980101283.XA patent/CN114556870B/en active Active
- 2019-11-26 WO PCT/CN2019/120976 patent/WO2021102688A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105793715A (en) * | 2013-12-26 | 2016-07-20 | 英特尔公司 | Interconnect Retimer Enhancements |
| CN110366842A (en) * | 2017-03-31 | 2019-10-22 | 英特尔公司 | Adjustable Retimer Buffer |
| CN109992548A (en) * | 2017-12-29 | 2019-07-09 | 德克萨斯仪器股份有限公司 | Link width scaling across multiple retimer equipment |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114556870A (en) | 2022-05-27 |
| WO2021102688A1 (en) | 2021-06-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9219560B2 (en) | Multi-protocol SerDes PHY apparatus | |
| US9229897B2 (en) | Embedded control channel for high speed serial interconnect | |
| EP1958404B1 (en) | Alignment and deskew for multiple lanes of serial interconnect | |
| WO2015120149A1 (en) | Increasing throughput on multi-wire and multi-lane interfaces | |
| JP5568089B2 (en) | Method, apparatus and system for automatic data aligner for multiple serial receivers | |
| EP2928108A1 (en) | System, method and apparatus for multi-lane auto-negotiation over reduced lane media | |
| WO2013155893A1 (en) | Method and system for aligning high speed serial communication channels | |
| CN102946294A (en) | Method for removing deviation among high-speed serial communication channels | |
| CN114556870B (en) | Data synchronization method and device | |
| US9178692B1 (en) | Serial link training method and apparatus with deterministic latency | |
| WO2016000376A1 (en) | Signal processing method and signal processing apparatus based on pci-e interfaces | |
| JP2015076883A (en) | Communication device utilizing interrupting alignment pattern | |
| CN102821458A (en) | Dynamic link adjustment method and link management equipment | |
| US6990538B2 (en) | System comprising a state machine controlling transition between deskew enable mode and deskew disable mode of a system FIFO memory | |
| WO2024086657A1 (en) | Low latency pcie retimer with skew correction | |
| CN111970499B (en) | A data demultiplexing method for multiple 3G-SDI optical transceivers based on RGIF VDMA | |
| JP2011071579A (en) | PCI Express (R) COMMUNICATION SYSTEM | |
| RU2700560C1 (en) | Gigaspacewire communication interface device | |
| EP4616298A1 (en) | Retimer training and status state machine synchronization across multiple integrated circuit dies | |
| WO2025112916A1 (en) | Multi-channel alignment method, device and system | |
| EP4605835A1 (en) | Data lane deskew and rate adaptation in a package containing multiple circuit dies | |
| WO2024086639A1 (en) | Pcie retimer providing failover to redundant endpoint and multiple endpoint switching using synchronized multi-tile data interface | |
| RU187642U1 (en) | GIGASPACEWIRE COMMUNICATION INTERFACE DEVICE | |
| US10084488B1 (en) | Chip-to-chip port coherency without overhead | |
| EP0602345A1 (en) | Synchronous communication system having multiplexed information transfer and transition phases |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |