CN101296217B - 弹性缓冲装置 - Google Patents
弹性缓冲装置 Download PDFInfo
- Publication number
- CN101296217B CN101296217B CN2007100402461A CN200710040246A CN101296217B CN 101296217 B CN101296217 B CN 101296217B CN 2007100402461 A CN2007100402461 A CN 2007100402461A CN 200710040246 A CN200710040246 A CN 200710040246A CN 101296217 B CN101296217 B CN 101296217B
- Authority
- CN
- China
- Prior art keywords
- read
- pointer
- data
- controller
- read pointer
- 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
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明弹性缓冲装置包括,若干个先入先出单元,用于对应数据通道的数据包数据的写入和读取;若干个先入先出单元控制器,用于控制读指针或写指针从对应先入先出单元写入和读取数据,根据探测到的对应数据通道的读写指针的位置计算读写指针的距离,并根据设定的读写指针的距离范围来调整读指针的位置;以及对于对应数据通道接收的数据包的数据头标识进行计数,将计数结果通知多通道偏斜控制器,根据多通道偏斜控制器的反馈调整该数据通道先入先出单元的读指针的位置;多通道偏斜控制器,用于根据各个先入先出单元控制器发送的数据头标识计数结果进行综合分析,并向各个先入先出单元控制器发送反馈信号,从而使得PCI Express的面积较小。
Description
技术领域
本发明涉及位于高速外设部件互连(PCI Express,Peripheral ComponentInterconnect)物理接口的弹性缓冲装置及应用该弹性缓冲装置补偿时钟差异的方法。
背景技术
高速外设部件互连(PCI Express,Peripheral Component Interconnect)是一种芯片之间的互连技术以及一种板卡扩展的接口技术,与传统PCI以及更早期的计算机总线的共享并行架构相比,PCI Express采用设备间的点对点串行连接(serial interface)。如此一来即允许每个设备都有自己的专用连接,是独占的,并不需要向整个总线请求带宽,同时利用串行的连接特点将能轻松将数据传输速度提到一个很高的频率,达到远超出PCI总线的传输速率。单个基本的PCIExpress连接是一种单双单工连接,一个单独的基本的PCI Express串行连接就是两个独立的通过不同的低电压对驱动信号实现的连接,一个接收对和一个发送对(共四组线路)。不会和诸如USB2.0、InfiniBand、Ethernet以及IEEE1394/1394b造成冲突。因此PCI Express界面传输速度比传统的PCI界面更快,具有设备之间的高速串行点对点传输和灵活可调的总线宽度等等优点。
PCI Express采用了类似于网络体系结构中OSI七层参考模型的分层体系结构设计方案,从下到上分别为物理层(Physical Layer)、数据链路层(Data LinkLayer)、事务处理层(Transaction Layer)和软件层(Software layer)。而物理层还可以细分为媒体访问层(Media Access Layer)、物理编码子层(Physical CodingSub layer)和物理媒体访问层(Physical Media Attachment Layer)。例如PCIExpressTMBase Specification Revision1.0a中介绍了一种在物理编码子层和媒体访问层间进行数据传输的物理接口(PIPE,PHY Interface for PCI Express), 如图1所示,该物理接口包括一个弹性缓冲装置(Elastic Buffer)。由于一般来说,在高速数据传输中,数据每到一层都会先被写入弹性缓冲装置,然后再从弹性缓冲装置中被读出。写入数据的写指针是受恢复时钟控制的,而读出数据的读指针是受本地时钟控制的。恢复时钟(Recovered clock)是PIPE从接收数据中恢复出来的发送方时钟,发送方时钟与接受方时钟是相同频率的,但经过了数据传播和恢复过程,可能造成从接收数据中恢复出来的发送方时钟与本地时钟存在差异。因此写指针的速度和读指针的速度就会存在差异,而这样就可能导致数据传输产生错误。弹性缓冲装置的作用就是通过控制读指针对于所述的时钟差异进行补偿。另外,如图5A、图5B所示,对于多通道的数据传输来说,各通道的数据都是同时发送,但由于每个通道的传输速度会有所不同,所以各通道数据到达接收端的时间就会有所不同,这种情况被称为各数据通道间的偏斜。因此在PCI ExpressTM Base Specification Revision1.0a中还介绍了一种位于媒体访问层中用来消除指针偏斜的偏斜消除缓冲装置,如图1所示。该偏斜消除缓冲装置接收如图6A所示的存在偏斜的各数据通道数据,通过控制各数据通道的数据读指针来使得各数据通道数据恢复到如图6B所示的各数据通道无偏斜状态。根据对于弹性缓冲装置和偏移消除缓冲装置的功能研究可以发现两者的功能相近似,并且它们之间的位置也较接近,而现有技术中分别设计这两种缓冲装置会使得PCI Express设计面积较大。
发明内容
本发明要解决的问题是现有技术中PCI Express设计面积较大的问题。
为解决上述问题,本发明提供一种弹性缓冲装置,所述弹性缓冲装置包括,
若干个先入先出单元,用于对应数据通道的数据包数据的写入和读取;
若干个先入先出单元控制器,用于控制写指针在恢复时钟下向对应数据通道的先入先出单元写入数据,控制读指针在本地时钟下从对应数据通道的 先入先出单元读出数据;以及根据探测到的对应数据通道的先入先出单元的读写指针的位置计算读写指针的距离,并根据设定的读写指针的距离范围来调整读指针的位置来补偿时钟差异;以及对于对应数据通道接收的数据包的数据头标识进行计数,将计数结果通知多通道偏斜控制器,根据多通道偏斜控制器的反馈调整对应数据通道的先入先出单元的读指针的位置来消除偏斜;
多通道偏斜控制器,用于从各个先入先出单元控制器发送的数据头标识计数结果中选取中间值,并结合中间值和各个先入先出单元控制器发送的数据头标识结果向各个先入先出单元控制器发送读指针继续运行或维持不动的反馈信号。
所述先入先出单元控制器还包括,
写指针控制器,用于在恢复时钟下控制写指针将数据包中数据写入先入先出单元;
读指针控制器,用于在接收到读指针使能控制器传递的本地时钟时,控制读指针从先入先出单元中读出数据;在未接收到读指针使能控制器传递的本地时钟时,维持读指针不动;在接收到读写指针距离计算器发送的移除偏移指令时,控制读指针跳一格;在接收到数据头标识计数器传输的反馈信号时,控制读指针从先入先出单元中读出数据或维持读指针不动;
同步标识探测器,用于探测弹性缓冲装置接收的数据包中的同步标识,并在探测到同步标识后将数据包发送给数据头标识计数器;
数据头标识计数器,用于在同步标识探测器探测到同步标识后,对于弹性缓冲装置接收的数据包中的数据头标识进行计数,将数据头标识计数结果通知多通道偏斜控制器,并接收多通道偏斜控制器的反馈信号传输给读指针控制器和读指针使能控制器;
读指针使能控制器,用于在接收到读写指针距离计算器提供的使能信号 时,向读指针控制器传递本地时钟;在未接收到读写指针距离计算器提供的使能信号时,停止向读指针控制器传递本地时钟;在接收到数据头标识计数器传输的反馈信号时,向读指针控制器传递本地时钟或停止向读指针控制器传递本地时钟;
读写指针距离计算器,用于通过探测读写指针的位置计算读写指针的距离,并根据计算结果结合设定的读写指针的距离范围相应发送移除偏移指令、发送使能信号和停止发送使能信号。
相应地,本发明还提供了一种补偿时钟差异的方法,包括,
探测读写指针的位置;
根据读写指针的位置计算读写指针的距离;
如果读写指针的距离大于设定的距离范围,则通过移除偏移指令使得读指针沿前进方向跳一格;
如果读写指针的距离小于设定的距离范围,则维持读指针不动。
与现有技术相比,本发明弹性缓冲装置根据探测到的读写指针位置来调整读写指针距离进行时钟差异的补偿,减小了所需缓冲单元的面积。并且本发明弹性缓冲装置通过调整读指针位置来消除偏斜,因而无需再在媒体访问层中加入偏斜消除缓冲装置,从而节省了PCI Express的设计面积。
附图说明
图1是现有技术的PCI Express的物理接口示意图;
图2是本发明PCI Express的物理接口示意图;
图3是本发明弹性缓冲装置结构示意图;
图4是本发明实施例弹性缓冲装置的结构示意图;
图5A至图5B是现有技术各数据通道间偏斜产生示意图;
图6A至图6B是现有技术各数据通道偏斜消除示意图;
图7是本发明实施例弹性缓冲装置的读写指针运行示意图;
图8A至图8B是本发明实施例弹性缓冲装置对于接收时钟过快进行时钟补偿的操作示意图;
图9A至图9B是本发明实施例弹性缓冲装置对于发送时钟过快进行时钟补偿的操作示意图;
图10A是本发明实施例各数据通道消除偏斜前状况示意图;
图10B是本发明实施例各数据通道消除偏斜后状况示意图。
具体实施方式
本发明弹性缓冲装置根据探测到的读写指针位置来调整读写指针距离进行时钟差异的补偿,减小了所需缓冲单元的面积。并且本发明弹性缓冲装置通过调整读指针位置来消除偏斜。
本发明弹性缓冲装置如图3所示,包括,
先入先出单元1、先入先出单元111至先入先出单元1111,用于对应数据通道的数据包数据的写入和读取;
先入先出单元控制器2、先入先出单元控制器222至先入先出单元控制器2222,用于控制写指针在恢复时钟下向对应数据通道的先入先出单元写入数据,控制读指针在本地时钟下从对应数据通道的先入先出单元读出数据;以及根据探测到的对应数据通道的先入先出单元的读写指针的位置计算读写指针的距离,并根据设定的读写指针的距离范围来调整读指针的位置来补偿时钟差异;以及对于对应数据通道接收的数据包的数据头标识进行计数,将计数结果通知多通道偏斜控制器3,根据多通道偏斜控制器3的反馈调整对应数据通道的先入先出单元的读指针的位置来消除偏斜;
多通道偏斜控制器3,用于从各个先入先出单元控制器发送的数据头标识计数结果中选取中间值,并结合中间值和各个先入先出单元控制器发送的数据头标识结果向各个先入先出单元控制器发送读指针继续运行或维持不动的反馈信号。
本发明弹性缓冲装置的先入先出单元可以与数据通道一一对应,例如第一数据通道的先入先出单元与第一数据通道对应,第二数据通道的先入先出单元与第二数据通道对应。当然,本发明弹性缓冲装置的先入先出单元也可以根据PCI Express机制的调配与其他数据通道对应,例如第一数据通道的先入先出单元与第二数据通道对应,第二数据通道的先入先出单元与第三数据通道对应。
下面以四通道的弹性缓冲装置为例进行详细说明,如图4所示,因为各数据通道的先入先出单元和先入先出单元控制器的结构均完全相同,图4中仅以第一数据通道的先入先出单元1和先入先出单元控制器2为例。如图4所示,本发明实施例的弹性缓冲装置的第一数据通道的先入先出单元控制器2进一步包括,
写指针控制器26,用于在恢复时钟下控制写指针将数据包中数据写入先入先出单元;
读指针控制器25,用于在接收到读指针使能控制器23传递的本地时钟时,控制读指针从先入先出单元1中读出数据;在未接收到读指针使能控制器23传递的本地时钟时,维持读指针不动;在接收到读写指针距离计算器24发送的移除偏移指令时,控制读指针跳一格;在接收到数据头标识计数器22传输的反馈信号时,控制读指针从先入先出单元1中读出数据或维持读指针不动;
同步标识探测器21,用于探测弹性缓冲装置接收的数据包中的同步标识,并在探测到同步标识后将数据包发送给数据头标识计数器22;
数据头标识计数器22,用于在同步标识探测器21探测到同步标识后,对 于弹性缓冲装置接收的数据包中的数据头标识进行计数,将数据头标识计数结果通知多通道偏斜控制器3,并接收多通道偏斜控制器3的反馈信号传输给读指针控制器25和读指针使能控制器23;
读指针使能控制器23,用于在接收到读写指针距离计算器24提供的使能信号时,向读指针控制器25传递本地时钟;在未接收到读写指针距离计算器24提供的使能信号时,停止向读指针控制器25传递本地时钟;在接收到数据头标识计数器22传输的反馈信号时,向读指针控制器25传递本地时钟或停止向读指针控制器25传递本地时钟;
读写指针距离计算器24,用于通过探测读写指针的位置计算读写指针的距离,并根据计算结果结合设定的读写指针的距离范围相应发送移除偏移指令、发送使能信号和停止发送使能信号。
由于之前所述的,本发明弹性缓冲装置是分别通过调整读指针位置和调整读写指针距离实现了消除偏斜和补偿时钟差异的功能的,下面首先介绍一下本发明实施例的读写指针运行情况。结合图4和图7所示,读写指针的运行方向为自下到上,并且读写指针的初始位置都在自下往上的第一格,定义当先入先出单元的容量为五格时,读写指针之间的有效距离为一格,这里所说的格是指一个标准大小的存储空间,具有设定的字节大小。由于弹性缓冲装置是在PIPE中的,而PIPE中的输入数据是经过物理编码子层8b/10b编码的数据流,所以弹性缓冲装置中格的大小是10bit。设置读写指针之间的有效距离是为了防止读指针和写指针位于同一格位置造成数据混乱。当数据到达弹性缓冲装置的数据通道时,以第一数据通道为例,写指针控制器26在恢复时钟的控制下给写指针赋值,控制写指针从下往上一格一格地将数据写入先入先出单元1。而与此同时,读写指针距离计算器24开始计算读写指针之间的距离。根据上述介绍,初始时读写指针位于同一个位置,读写指针距离计算器24不向读指针使能控制器23发送使能信号,读指针使能控制器23没有 得到使能信号也不会向读指针控制器25传递本地时钟,从而读指针控制器25也不会给读指针赋值来控制读指针从先入先出单元1中读出数据。当读写指针距离计算器24计算到读写指针之间的距离为一格时,会向读指针使能控制器23发送使能信号,读指针使能控制器23在接收到使能信号之后,会将本地时钟传递给读指针控制器25,读指针控制器25就会在本地时钟的控制下给读指针赋值,控制读指针开始从下往上一格一格地将数据从先入先出单元1中读出。结合图4和图7可以看到,此时,写指针控制器26已经控制写指针开始进行第六次数据写入,所以写指针在写完了先入先出单元1的五格之后又回到了先入先出单元1的第一格继续进行数据写入。而此时读指针控制器25控制读指针读到了第四格位置,因此,写指针和读指针所指向的位置之间还有先入先出单元的第五格位置,所以写指针和读指针之间的距离为一格,这种读写指针的位置情况就是上述定义的读写指针的有效距离(Valid)。
本发明实施例的四通道弹性缓冲装置在数据到达数据通道时,会先进行各个数据通道的时钟差异的补偿,然后才会对于各个数据通道的存在的偏斜进行消除,当然对于时钟差异的补偿和消除偏斜的操作也可以同时进行。
下面首先详细说明对于各数据通道的时钟差异的补偿,本发明弹性缓冲装置采用了一种补偿时钟差异的方法,通过读写指针距离计算器24对于读写指针的位置进行探测,计算读写指针的距离,当发现读写指针的距离由于时钟差异而小于或大于设定的距离范围时,就通过相应的操作使读写指针距离恢复到设定范围内来补偿时钟差异。所述的设定范围是基于先入先出单元的容量的,如前所述的,当先入先出单元的容量为5格时,读写指针的有效距离为1,而先入先出单元的容量增大时,读写指针的有效距离也随之增大,例如先入先出单元的容量为9格时,读写指针的有效距离就为1格至5格。
补偿时钟差异的详细步骤如下,仍假设先入先出单元的容量为五格单元,以第一数据通道为例,当数据包到达第一数据通道时,写指针控制器26如之 前介绍的,在发送时钟的控制下,控制写指针将数据包中的数据写入先入先出单元1中的第一格位置。而在数据被写入先入先出单元1后,读指针控制器25也会在之前所述的写指针和读指针之间距离为一格的有效距离的时候开始控制读指针从先入先出单元1的第一格位置处将数据读出。如之前所述的有效状态为写指针和读指针之间的距离为一格的情况,例如写指针写到第三格位置,而读指针读到第一格位置,则写指针和读指针之间的距离为一格,此时为有效距离。而当写指针和读指针之间的距离小于一格时,为无效状态(Invalid),例如,写指针写到了第三格位置,而读指针也读到了第二格位置,在下一时刻,读指针很可能与写指针处于同一格位置,这样就会造成数据混乱,此时为无效状态。
当读写指针在各自的控制器的控制下开始进行读写操作的时候,读写指针距离计算器24也会继续探测写指针和读指针的位置,并计算写指针和读指针之间的距离。例如之前所述的,写指针写到了第三格位置,而读指针读到了第一格位置,读写指针距离计算器24在探测到读写指针的位置后,就会计算得到写指针和读指针之间的距离为一格,并将使能信号发送给读指针使能控制器23,而读指针使能控制器23在接收到使能信号之后就会依旧向读指针控制器25传递本地时钟,使得读指针能够在读指针控制器25的控制下从先入先出单元1中读取数据。
而如果如图8A所示,读写指针距离计算器24探测到写指针写到了第六格位置,读指针也读到了第五格位置,在下一时刻,读指针很可能与写指针处于同一格位置。出现这种情况说明读指针控制器25控制读指针从先入先出单元1中读取数据的频率过快,而造成这种情况的原因就是之前所说,由于写指针和读指针是分别由恢复时钟和本地时钟控制的,当本地时钟频率快于恢复时钟频率时,读指针控制器25控制读指针读取数据的频率就会快于写指针控制器26控制写指针写入数据的频率。此时,如果读指针没有读取到同步 标识,那么读写指针距离计算器24不会对读指针控制器25进行操作。如果读指针已经读取到了同步标识,如图8A所示,读写指针距离计算器24就会因为写指针和读指针之间的距离小于一格而停止向读指针使能控制器23发送使能信号,停止的时间一般维持一个本地时钟的周期。读指针使能控制器23没有接收到使能信号,就会停止向读指针控制器25传递本地时钟。而读指针控制器25因为没有本地时钟提供就会停止向读指针赋值来控制读指针的运行。如图8B所示,读指针就会在原来的位置保持不动,持续时间是一个周期。而在这一个周期内,写指针因为受恢复时钟控制还是如常运行的,这样的话,在一个周期之后,写指针和读指针之间的距离又恢复到了一格。从而,通过上述的操作将读指针保持不动一个周期,就能够补偿由于本地时钟快于发送方时钟而可能造成的数据传输问题。
而如果如图9A所示,读写指针距离计算器24探测到写指针写到了第六格位置,而读指针才读到了第三格位置。这种情况下,虽然写指针和读指针之间的距离大于一格,但由于先入先出单元1是有容量限制的,如图9A所示的先入先出单元容量为八格,读写指针的运行方向为从右往左,可以预计到当写指针在将数据写满缓冲单元的八格之后,会重新追上读指针,同样可能造成读写指针位于同一格位置的状况,这种状况同样是需要避免的。造成这种状况的原因是由于写指针和读指针是分别由恢复时钟和本地时钟控制的,当恢复时钟频率快于本地时钟频率时,写指针控制器26控制写指针写入数据的频率就会快于读指针控制器25控制读指针读取数据的频率。为了缩小写指针和读指针之间的距离,一个有效的方法就是使读指针往左跳一格。由于发送到弹性缓冲装置的数据包通常由数据头标识(COM)+偏移指令(SKP)+数据组成,因此,读写指针距离计算器24会向读指针控制器25发送从数据包中去除一个偏移指令的信号。如图9B所示,而读指针控制器25在读取到了同步标识之后,就会控制读指针跳过接下来的一个偏移指令信号所处的 位置,而改为读取该偏移指令之后的位置上的数据,实现了往左跳一格的功能,从而写指针和读指针之间的距离又恢复到了一。因此,通过去除偏移指令使得读指针往前跳一格,从而补偿了由于发送方时钟快于本地时钟而可能造成的数据传输问题。
以上的说明具体讲述了对于第一数据通道,弹性缓冲装置的先入先出单元控制器2补偿恢复时钟和本地时钟频率不一致而可能造成的数据传输问题的操作。对于多数据通道的弹性缓冲装置来说,由于每个数据通道的先入先出单元1和先入先出单元控制器2的结构完全相同,所以对于其他数据通道的补偿操作与第一数据通道也完全相同,这里就不再重复说明了。
下面对于本发明实施例弹性缓冲装置消除各数据通道的偏斜的功能运作情况作详细说明。
当数据包到达本发明实施例的四通道弹性缓冲装置前,已被分成了四组对应于各个数据通道的数据包,并且对应于每一个数据通道的每一组数据包都应当包含同步标识。例如,当第一个数据包中的第一组数据包到达第一数据通道时,同步标识探测器21会先探测所接收的数据中有没有同步标识(SYNC)。如果没有同步标识,则同步标识探测器21会使先入先出单元控制器2处于等待状态直到同步标识探测器21探测到数据包中的同步标识为止;如果同步标识探测器21探测到数据包中的同步标识时,会将数据包发送给数据头标识计数器22。而数据头标识计数器22会先探测数据包中的数据头标识(COM)。当数据头标识计数器22探测到数据包中的数据头标识时,就知道该数据包中的数据即将来到。因此,在稍后来到的第一个本地时钟上跳沿之后,数据头标识计数器22就会记一,代表第一数据通道已经接收到了数据包中的数据。
依次类推,当第二个本地时钟上跳沿之后,第一数据通道的数据头标识计数器就会记二。这样直到该数据通道上的读指针再次读到同步标识,数据 头标识计数器22将保持其计数值,当所有数据通道的读指针都读到同步标识后,各个数据通道的计数值将清零,当下一个数据包的数据头标识来的时候,再重复所述的计数过程。同样地,其他三个数据通道的数据头标识计数器也会根据来到各自数据通道的数据包中的数据头标识进行计数。
而多通道偏斜控制器3则会调取各个数据通道的数据头标识计数器的计数结果,并从中选全一个中间值作为参考值,根据参考值向各个数据通道反馈该数据通道是否应该维持读指针不动的反馈结果。各数据通道的数据头标识计数器在接收到反馈结果,会将反馈结果分别传递给读指针控制器和读指针使能信号控制器,使得读指针控制器和读指针使能信号控制器能够根据反馈结果对读指针作出调整。
下面就以一个具体的例子来详细讲述消除数据通道偏斜的操作。如图10A所示为某一时刻各数据通道的读写情况图,读写指针的方向为从右往左。因为如前所述的,数据头标识计数器只有在同步标识探测器探测到同步标识的情况下才开始根据数据头标识计数,并且当读指针读到同步标识时,数据头标识计数器将保持其计数值。
对于第一数据通道来说,该数据通道的数据头标识计数结果为三,写指针写到了第七格位置,而读指针正巧也读到了第五格位置处的同步标识,此时数据头标识计数器22的计数值就保持为三。对于第二数据通道来说,该数据通道的数据头标识计数结果为二,写指针写到了第七格位置,而读指针读到了第五格位置,但还未读到第六格位置处的同步标识。对于第三数据通道来说,该数据通道的数据头标识计数结果为一,写指针写到了第七格位置处的同步标识,而读指针读到了第五格位置,但还未读到第七格位置处的同步标识。对于第四数据通道来说,该数据通道的数据头标识计数结果为三,写指针写到了第八格位置,而读指针读到了第六格位置处的同步标识,因此与第一数据通道相同,此时该数据通道的数据头标识的计数结果也保持为三。
根据上述的数据头标识的计数结果,多通道偏斜控制器3就将第一数据通道和第四数据通道作为参考数据通道,则发送给第一数据通道和第四数据通道的反馈结果为维持读指针不动,而发送给第二数据通道和第三数据通道的反馈结果为读指针继续前进,并且各数据通道的写指针因为受恢复时钟控制而不受影响,继续前进。第一数据通道和第四数据通道的读指针使能控制器在接收到反馈结果后,就会停止向读指针控制器传递本地时钟,从而读指针控制器使读指针停止不动。
在下一个时钟周期的上跳沿之后,第二数据通道的数据头标识计数结果为三,并且第二数据通道的读指针也读到了同步标识,此时该数据通道的数据头标识的计数结果也保持为三。而第三数据通道的数据头标识计数结果为二,该数据通道的读指针还差一格才能读到同步标识。多通道偏斜控制器3就会将第一数据通道、第二数据通道和第四数据通道作为参考数据通道,则发送给第一数据通道、第二数据通道和第四数据通道的反馈结果为维持读指针不动,而发送给第三数据通道的反馈结果为读指针继续前进,并且各数据通道的写指针因为受恢复时钟控制而不受影响,继续前进。第一数据通道、第二数据通道和第四数据通道的读指针使能控制器在接收到反馈结果后,就会停止向读指针控制器传递本地时钟,从而读指针控制器使读指针停止不动。
在接下来的一个时钟周期的上跳沿之后,如图10B所示,第三数据通道的数据头标识计数结果为三时,该数据通道的读指针也读到了同步标识,第三数据通道的数据头标识计数结果保持为三。如之前所述,当所有数据通道的读指针都读到同步标识后,各个数据通道的计数值将清零。在接下来的一个时钟周期的上跳沿之后,各个数据通道的读指针将同时工作,从而保证了数据的同步,消除了各个数据通道间的偏斜。
在原先的设计中,对于恢复时钟和本地时钟差异的补偿是通过一个类似于读写指针距离计算器的部件对于读写指针距离进行计算,并通过偏移指令 调整设置(SKP ordered-set)来控制读指针的跳转来达到补偿时钟差异的目的,因此位于高速外设部件互连物理接口的弹性缓冲装置至少需要8格。而位于媒体访问层的偏斜消除缓冲单元也至少需要5格,因此总共的设计需要13格。对于而本发明高速外设部件互连物理接口的弹性缓冲装置在对于补偿本地时钟频率比发送方时钟频率快的情况时,采用了关闭读指针控制器的本地时钟维持读指针不动来调整读写指针的距离来实现补偿时钟差异的目的。并且,本发明弹性缓冲装置综合了时钟补偿和消除各数据通道偏斜这两个功能,只使用一个先入先出单元来进行数据存储,因此先入先出单元的面积减小到了9格,而先入先出单元的面积减小了,存储数据的时间自然也减小了。如图2所示,由于本发明弹性缓冲装置综合了时钟补偿和消除各数据通道偏斜的功能,因而无需再在媒体访问层中加入偏斜消除缓冲单元,从而节省了PCIExpress的设计面积。
Claims (5)
1.一种弹性缓冲装置,其特征在于,包括,
若干个先入先出单元,用于对应数据通道的数据包数据的写入和读取;
若干个先入先出单元控制器,用于控制写指针在恢复时钟下向对应数据通道的先入先出单元写入数据,控制读指针在本地时钟下从对应数据通道的先入先出单元读出数据;以及根据探测到的对应数据通道的先入先出单元的读写指针的位置计算读写指针的距离,并根据设定的读写指针的距离范围来调整读指针的位置来补偿时钟差异;以及对于对应数据通道接收的数据包的数据头标识进行计数,将计数结果通知多通道偏斜控制器,根据多通道偏斜控制器的反馈调整对应数据通道的先入先出单元的读指针的位置来消除偏斜;
多通道偏斜控制器,用于从各个先入先出单元控制器发送的数据头标识计数结果中选取中间值,并结合中间值和各个先入先出单元控制器发送的数据头标识结果向各个先入先出单元控制器发送读指针继续运行或维持不动的反馈信号。
2.如权利要求1所述的弹性缓冲装置,其特征在于,所述先入先出单元控制器进一步包括,
写指针控制器,用于在恢复时钟下控制写指针将数据包中数据写入先入先出单元;
读指针控制器,用于在接收到读指针使能控制器传递的本地时钟时,控制读指针从先入先出单元中读出数据;在未接收到读指针使能控制器传递的本地时钟时,维持读指针不动;在接收到读写指针距离计算器发送的移除偏移指令时,控制读指针跳一格;在接收到数据头标识计数器传输的反馈信号时,控制读指针从先入先出单元中读出数据或维持读指针不动;
同步标识探测器,用于探测弹性缓冲装置接收的数据包中的同步标识,并在探测到同步标识后将数据包发送给数据头标识计数器;
数据头标识计数器,用于在同步标识探测器探测到同步标识后,对于弹性缓冲装置接收的数据包中的数据头标识进行计数,将数据头标识计数结果通知多通道偏斜控制器,并接收多通道偏斜控制器的反馈信号传输给读指针控制器和读指针使能控制器;
读指针使能控制器,用于在接收到读写指针距离计算器提供的使能信号时,向读指针控制器传递本地时钟;在未接收到读写指针距离计算器提供的使能信号时,停止向读指针控制器传递本地时钟;在接收到数据头标识计数器传输的反馈信号时,向读指针控制器传递本地时钟或停止向读指针控制器传递本地时钟;
读写指针距离计算器,用于通过探测读写指针的位置计算读写指针的距离,并根据计算结果结合设定的读写指针的距离范围相应发送移除偏移指令、发送使能信号和停止发送使能信号。
3.如权利要求2所述的弹性缓冲装置,其特征在于,所述格为一个具有设定字节大小的存储空间。
4.如权利要求2或3所述的弹性缓冲装置,其特征在于,所述设定的距离范围为1至5格。
5.如权利要求4所述的弹性缓冲装置,其特征在于,所述设定字节的大小为10bit。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100402461A CN101296217B (zh) | 2007-04-24 | 2007-04-24 | 弹性缓冲装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100402461A CN101296217B (zh) | 2007-04-24 | 2007-04-24 | 弹性缓冲装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101296217A CN101296217A (zh) | 2008-10-29 |
CN101296217B true CN101296217B (zh) | 2011-07-06 |
Family
ID=40066232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100402461A Active CN101296217B (zh) | 2007-04-24 | 2007-04-24 | 弹性缓冲装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101296217B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115426066B (zh) * | 2022-08-29 | 2024-03-29 | 苏州联芸科技有限公司 | 数据同步电路、多端口以太网收发器及数据同步方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102394823B (zh) * | 2011-11-03 | 2017-10-27 | 中兴通讯股份有限公司 | 一种多通道对齐去偏移的方法及装置 |
US9621331B2 (en) | 2012-06-18 | 2017-04-11 | Qualcomm Incorporated | Adaptive offset synchronization of data based on ring buffers |
CN104063352B (zh) * | 2013-03-20 | 2017-03-15 | 上海华虹集成电路有限责任公司 | Pipe的弹性缓冲电路及其状态同步方法 |
CN103713689A (zh) * | 2013-12-24 | 2014-04-09 | 江苏华丽网络工程有限公司 | 一种适用于pcie3.0的时钟偏差补偿的方法 |
CN104536924B (zh) * | 2014-12-11 | 2017-08-04 | 中国人民解放军国防科学技术大学 | 面向板级高速传输总线的多通道延迟斜偏纠正方法及装置 |
CN106484631A (zh) * | 2015-08-25 | 2017-03-08 | 安徽大学 | 一种新弹性缓冲器结构及skp添加方法 |
CN105718412B (zh) * | 2016-01-14 | 2018-10-26 | 深圳市紫光同创电子有限公司 | 一种通道频差补偿方法、通道控制方法、装置及系统 |
CN105718413B (zh) * | 2016-01-14 | 2018-08-21 | 深圳市紫光同创电子有限公司 | 一种通道对齐方法、装置及系统 |
CN108089834B (zh) * | 2017-11-07 | 2021-04-30 | 潍坊歌尔电子有限公司 | 一种播放同步方法、装置和usb声卡 |
CN112783421A (zh) * | 2019-11-07 | 2021-05-11 | 北京京东尚科信息技术有限公司 | 一种基于环形缓冲区的异步消费方法和装置 |
CN112286489A (zh) * | 2020-10-21 | 2021-01-29 | 深圳市紫光同创电子有限公司 | Fifo存储器及fifo存储器的处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1192306A (zh) * | 1995-05-31 | 1998-09-02 | Dsc通讯有限公司 | 数字去同步器 |
CN1205815A (zh) * | 1995-11-06 | 1999-01-20 | 艾利森电话股份有限公司 | 一个关于传输缓冲区的系统 |
CN1377160A (zh) * | 2001-03-22 | 2002-10-30 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种在成帧器中实现高速率数据复接的方法 |
CN1684405A (zh) * | 2004-04-06 | 2005-10-19 | 沃福森微电子股份有限公司 | 时钟同步器以及时钟与数据恢复装置和方法 |
-
2007
- 2007-04-24 CN CN2007100402461A patent/CN101296217B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1192306A (zh) * | 1995-05-31 | 1998-09-02 | Dsc通讯有限公司 | 数字去同步器 |
CN1205815A (zh) * | 1995-11-06 | 1999-01-20 | 艾利森电话股份有限公司 | 一个关于传输缓冲区的系统 |
CN1377160A (zh) * | 2001-03-22 | 2002-10-30 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种在成帧器中实现高速率数据复接的方法 |
CN1684405A (zh) * | 2004-04-06 | 2005-10-19 | 沃福森微电子股份有限公司 | 时钟同步器以及时钟与数据恢复装置和方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115426066B (zh) * | 2022-08-29 | 2024-03-29 | 苏州联芸科技有限公司 | 数据同步电路、多端口以太网收发器及数据同步方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101296217A (zh) | 2008-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101296217B (zh) | 弹性缓冲装置 | |
EP1629392B1 (en) | Memory module architecture daisy chain topology detects and reports presence of outer memory module to inner module | |
EP1629394B1 (en) | Memory channel with unidirectional links | |
US7093076B2 (en) | Memory system having two-way ring topology and memory device and memory module for ring-topology memory system | |
US8654864B2 (en) | System and method for selectively performing single-ended and differential signaling | |
US5058132A (en) | Clock distribution system and technique | |
US7093061B2 (en) | FIFO module, deskew circuit and rate matching circuit having the same | |
EP1585247B1 (en) | System and method of phase-locking a transmit clock signal phase with a receive clock signal phase | |
CN1315066C (zh) | 用于校正并行/串行接口中的波动的缓冲网 | |
US20050108458A1 (en) | Lane testing with variable mapping | |
CN101689156A (zh) | 用于初始化存储器系统的系统与方法以及使用其的存储器装置和基于处理器的系统 | |
EP1629393B1 (en) | Memory interface protocol for distinguishing status information from read data | |
KR20030085141A (ko) | 지연 시간 보상 코어, 병렬-직렬 구조 시스템 및 지연시간 보상 방법 | |
US20060004953A1 (en) | Method and apparatus for increased memory bandwidth | |
US20060209735A1 (en) | Auto realignment of multiple serial byte-lanes | |
US20050276150A1 (en) | Memory agent core clock aligned to lane | |
EP2355431B1 (en) | Reception circuit, information processing device, and buffer control method | |
CN103729333A (zh) | 多路时隙共享的背板总线结构及其实现方法 | |
US8401043B1 (en) | Hardware interface utilizing alignment symbols for demultiplexing | |
CN101206631B (zh) | 高速外设部件互连接口及信号处理方法 | |
KR100473814B1 (ko) | 직병렬 버스정합을 이용한 이중화시스템 및 방법 | |
US20080065967A1 (en) | System for controlling high-speed bidirectional communication | |
US8503292B2 (en) | Data transfer system, a reception device of the data transfer system and a control method of the data transfer system | |
JP3989376B2 (ja) | 通信システム | |
CN103888227B (zh) | 一种基于vl的数据帧接收分析设备和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |