弹性缓冲装置及补偿时钟差异的方法

文档序号:7646014阅读:358来源:国知局
专利名称:弹性缓冲装置及补偿时钟差异的方法
技术领域
本发明涉及位于高速外设部件互连(PCI Express, Peripheral Component Interconnect)物理接口的弹性缓沖装置及应用该弹性缓沖装置补偿时钟差异 的方法。
背景技术
高速夕卜设部件互连(PCI Express, Peripheral Component Interconnect)是一 种芯片之间的互连技术以及一种板卡扩展的接口技术,与传统PCI以及更早期 的计算机总线的共享并行架构相比,PCI Express采用设备间的点对点串行连 接(serial interface)。如此一来即允许每个设备都有自己的专用连接,是独占的, 并不需要向整个总线请求带宽,同时利用串行的连接特点将能轻松将数据传 输速度提到一个很高的频率,达到远超出PCI总线的传输速率。单个基本的PCI Express连接是一种单双单工连接, 一个单独的基本的PCI Express串行连接就 是两个独立的通过不同的低电压对驱动信号实现的连接, 一个接收对和一个 发送对(共四组线路)。不会和诸如USB 2.0、 InfmiBand、 Ethernet以及正EE 1394/1394b造成冲突。因此PCI Express界面传输速度比传统的PCI界面更快, 具有设备之间的高速串行点对点传输和灵活可调的总线宽度等等优点。
PCIExpress采用了类似于网络体系结构中OSI七层参考模型的分层体系结 构设计方案,从下到上分别为物理层(Physical Layer)、数据链路层(Data Link Layer)、事务处理层(Transaction Layer)和软件层(Software layer)。而物理层还 可以细分为媒体访问层(Media Access Layer)、物理编码子层(Physical Coding Sublayer)详口4勿J里+某体it问层(Physical Media Attachment Layer)。例》口PCI Express Base Specification Revision l.Oa中介绍了 一种在物理编码子层和媒 体访问层间进行数据传输的物理接口 ( PIPE, PHY Interface for PCI Express ),如图1所示,该物理接口包括一个弹性緩冲装置(Elastic Buffer)。由于一般来 说,在高速数据传输中,数据每到一层都会先被写入弹性緩沖装置,然后再 从弹性緩冲装置中被读出。写入数据的写指针是受恢复时钟控制的,而读出 数据的读指针是受本地时钟控制的。恢复时钟(Recovered clock)是PIPE从接 收数据中恢复出来的发送方时钟,发送方时钟与接受方时钟是相同频率的, 但经过了数据传播和恢复过程,可能造成从接收数据中恢复出来的发送方时 钟与本地时钟存在差异。因此写指针的速度和读指针的速度就会存在差异, 而这样就可能导致数据传输产生错误。弹性緩冲装置的作用就是通过控制读 指针对于所述的时钟差异进行补偿。另外,如图5A、图5B所示,对于多通道 的数据传输来说,各通道的数据都是同时发送,但由于每个通道的传输速度 会有所不同,所以各通道数据到达接收端的时间就会有所不同,这种情况被 称为各数据通道间的偏斜。因此在PCI Express Base Specification Revision l.Oa中还介绍了 一种位于媒体访问层中用来消除指针偏斜的偏斜消除緩冲装 置,如图1所示。该偏斜消除緩沖装置接收如图6A所示的存在偏斜的各数据通 道数据,通过控制各数据通道的数据读指针来使得各数据通道数据恢复到如 图6B所示的各数据通道无偏斜状态。根据对于弹性緩沖装置和偏移消除緩冲 装置的功能研究可以发现两者的功能相近似,并且它们之间的位置也较接近, 而现有技术中分别设计这两种緩冲装置会使得PCI Express设计面积较大。发明内容本发明要解决的问题是现有技术中PCI Express设计面积较大的问题。 为解决上述问题,本发明提供一种弹性緩冲装置,所述弹性緩沖装置包括,若干个先入先出单元,用于对应数据通道的数据包数据的写入和读取; 若干个先入先出单元控制器,用于控制写指针在恢复时钟下向对应数据 通道的先入先出单元写入数据,控制读指针在本地时钟下从对应数据通道的先入先出单元读出数据;以及根据探测到的对应数据通道的先入先出单元的 读写指针的位置计算读写指针的距离,并根据设定的读写指针的距离范围来
调整读指针的位置来补偿时钟差异;以及对于对应数据通道接收的数据包的
数据头标识进行计数,将计数结果通知多通道偏斜控制器,纟艮据多通道偏斜 控制器的反馈调整对应数据通道的先入先出单元的读指针的位置来消除偏
斜;
多通道偏斜控制器,用于从各个先入先出单元控制器发送的数据头标识 计数结果中选取中间值,并结合中间值和各个先入先出单元控制器发送的数 据头标识结果向各个先入先出单元控制器发送读指针继续运行或维持不动的 反馈信号。
所述先入先出单元控制器还包括,
写指针控制器,用于在恢复时钟下控制写指针将数据包中数据写入先入 先出单元;
读指针控制器,用于在接收到读指针使能控制器传递的本地时钟时,控 制读指针从先入先出单元中读出数据;在未接收到读指针使能控制器传递的 本地时钟时,维持读指针不动;在接收到读写指针距离计算器发送的移除偏 移指令时,控制读指针跳一格;在接收到数据头标识计数器传输的反馈信号 时,控制读指针从先入先出单元中读出数据或维持读指针不动;
同步标识探测器,用于探测弹性緩冲装置接收的数据包中的同步标识, 并在探测到同步标识后将数据包发送给数据头标识计数器;
数据头标识计数器,用于在同步标识探测器探测到同步标识后,对于弹 性緩冲装置接收的数据包中的数据头标识进行计数,将数据头标识计数结果 通知多通道偏斜控制器,并接收多通道偏斜控制器的反馈信号传输给读指针 控制器和读指针使能控制器;
读指针使能控制器,用于在接收到读写指针距离计算器提供的使能信号时,向读指针控制器传递本地时钟;在未接收到读写指针距离计算器提供的 使能信号时,停止向读指针控制器传递本地时钟;在接收到数据头标识计数
器传输的反馈信号时,向读指针控制器传递本地时钟或停止向读指针控制器
传递本地时4中;
读写指针距离计算器,用于通过探测读写指针的位置计算读写指针的距 离,并根据计算结果结合设定的读写指针的距离范围相应发送移除偏移指令、 发送使能信号和停止发送使能信号。
相应地,本发明还提供了一种补偿时钟差异的方法,包括,
探测读写指针的位置;
才艮据读写指针的位置计算读写指针的距离;
如果读写指针的距离大于设定的距离范围,则通过移除偏移指令使得读
指针沿前进方向跳一格;
如果读写指针的距离小于设定的距离范围,则维持读指针不动。
与现有技术相比,本发明弹性緩冲装置根据探测到的读写指针位置来调 整读写指针距离进行时钟差异的补偿,减小了所需緩冲单元的面积。并且本
发明弹性緩冲装置通过调整读指针位置来消除偏斜,因而无需再在^(某体访问 层中加入偏斜消除緩冲装置,从而节省了 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 ,用于从各个先入先出单元控制器发送的数据头标识 计数结果中选取中间值,并结合中间值和各个先入先出单元控制器发送的数 据头标识结果向各个先入先出单元控制器发送读指针继续运行或维持不动的 反馈信号。本发明弹性緩冲装置的先入先出单元可以与数据通道一一对应,例如第 一数据通道的先入先出单元与第 一数据通道对应,第二^t据通道的先入先出 单元与第二数据通道对应。当然,本发明弹性緩冲装置的先入先出单元也可以根据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在恢复 时钟的控制下给写指针赋值,控制写指针从下往上一格一格地将数据写入先 入先出单元l。而与此同时,读写指针距离计算器24开始计算读写指针之间 的距离。根据上述介绍,初始时读写指针位于同一个位置,读写指针距离计 算器24不向读指针使能控制器23发送使能信号,读指针使能控制器23没有得到使能信号也不会向读指针控制器25传递本地时钟,从而读指针控制器25也不会给读指针赋值来控制读指针从先入先出单元1中读出数据。当读写指针距离计算器24计算到读写指针之间的距离为一格时,会向读指针使能控制 器23发送使能信号,读指针使能控制器23在接收到使能信号之后,会将本 地时钟传递给读指针控制器25,读指针控制器25就会在本地时钟的控制下给 读指针赋值,控制读指针开始从下往上一格一格地将数据从先入先出单元1 中读出。结合图4和图7可以看到,此时,写指针控制器26已经控制写指针 开始进行第六次数据写入,所以写指针在写完了先入先出单元1的五格之后 又回到了先入先出单元1的第一格继续进行数据写入。而此时读指针控制器 25控制读指针读到了第四格位置,因此,写指针和读指针所指向的位置之间 还有先入先出单元的第五格位置,所以写指针和读指针之间的距离为 一格, 这种读写指针的位置情况就是上述定义的读写指针的有效距离(Valid )。本发明实施例的四通道弹性緩沖装置在数据到达it据通道时,会先进行各个数据通道的时钟差异的补偿,然后才会对于各个数据通道的存在的偏斜 进行消除,当然对于时钟差异的补偿和消除偏斜的操作也可以同时进行。下面首先详细说明对于各数据通道的时钟差异的补偿,本发明弹性缓冲 装置采用了一种补偿时钟差异的方法,通过读写指针距离计算器24对于读写 指针的位置进行探测,计算读写指针的距离,当发现读写指针的距离由于时 钟差异而小于或大于设定的距离范围时,就通过相应的操作使读写指针距离 恢复到设定范围内来补偿时钟差异。所述的设定范围是基于先入先出单元的 容量的,如前所述的,当先入先出单元的容量为5格时,读写指针的有效距 离为1,而先入先出单元的容量增大时,读写指针的有效距离也随之增大,例 如先入先出单元的容量为9格时,读写指针的有效距离就为l格至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将保持其计数值,当所有数据通道的读指针都读到同步标识 后,各个数据通道的计数值将清零,当下一个数据包的数据头标识来的时候, 再重复所述的计数过程。同样地,其他三个数据通道的凄t据头标识计数器也 会根据来到各自数据通道的数据包中的数据头标识进行计数。
而多通道偏斜控制器3则会调取各个数据通道的数据头标识计数器的计
数结果,并从中选全一个中间值作为参考值,根据参考值向各个数据通道反 馈该数据通道是否应该维持读指针不动的反馈结果。各数据通道的数据头标 识计数器在接收到反馈结果,会将反馈结果分别传递给读指针控制器和读指 针使能信号控制器,使得读指针控制器和读指针使能信号控制器能够根据反 馈结果对读指针作出调整。
下面就以 一个具体的例子来详细讲述消除数据通道偏斜的梯:作。如图10A 所示为某一时刻各数据通道的读写情况图,读写指针的方向为从右往左。因 为如前所述的,数据头标识计数器只有在同步标识探测器探测到同步标识的 情况下才开始根据数据头标识计数,并且当读指针读到同步标识时,数据头 标识计数器将保持其计数值。
对于第一数据通道来说,该数据通道的数据头标识计数结果为三,写指 针写到了第七格位置,而读指针正巧也读到了第五格位置处的同步标识,此
时数据头标识计数器22的计数值就保持为三。对于第二数据通道来说,该数 据通道的数据头标识计数结果为二,写指针写到了第七格位置,而读指针读 到了第五格位置,但还未读到第六格位置处的同步标识。对于第三数据通道 来说,该数据通道的数据头标识计数结果为一,写指针写到了第七格位置处 的同步标识,而读指针读到了第五格位置,但还未读到第七格位置处的同步 标识。对于第四数据通道来说,该数据通道的数据头标识计数结果为三,写 指针写到了第八格位置,而读指针读到了第六格位置处的同步标识,因此与 第一数据通道相同,此时该数据通道的数据头标识的计^t结果也保持为三。根据上述的数据头标识的计数结果,多通道偏斜控制器3就将第一数据 通道和第四数据通道作为参考数据通道,则发送给第 一数据通道和第四数据 通道的反馈结果为维持读指针不动,而发送给第二数据通道和第三数据通道 的反馈结果为读指针继续前进,并且各数据通道的写指针因为受恢复时钟控 制而不受影响,继续前进。第一数据通道和第四数据通道的读指针使能控制 器在接收到反馈结果后,就会停止向读指针控制器传递本地时钟,从而读指 针控制器使读指针停止不动。在下一个时钟周期的上跳沿之后,第二数据通道的数据头标识计数结果 为三,并且第二数据通道的读指针也读到了同步标识,此时该数据通道的数 据头标识的计数结果也保持为三。而第三数据通道的数据头标识计数结果为 二,该数据通道的读指针还差一格才能读到同步标识。多通道偏斜控制器3 就会将第一数据通道、第二数据通道和第四数据通道作为参考数据通道,则 发送给第 一数据通道、第二数据通道和第四数据通道的反馈结果为维持读指 针不动,而发送给第三数据通道的反馈结果为读指针继续前进,并且各数据 通道的写指针因为受恢复时钟控制而不受影响,继续前进。第一数据通道、第二数据通道和第四数据通道的读指针使能控制器在接收到反馈结果后,就 会停止向读指针控制器传递本地时钟,从而读指针控制器使读指针停止不动。在接下来的一个时钟周期的上跳沿之后,如图10B所示,第三数据通道 的数据头标识计数结果为三时,该数据通道的读指针也读到了同步标识,第 三数据通道的数据头标识计数结果保持为三。如之前所述,当所有数据通道 的读指针都读到同步标识后,各个数据通道的计数值将清零。在接下来的一 个时钟周期的上跳沿之后,各个数据通道的读指针将同时工作,从而保证了 数据的同步,消除了各个数据通道间的偏斜。在原先的设计中,对于恢复时钟和本地时钟差异的补偿是通过一个类似 于读写指针距离计算器的部件对于读写指针距离进行计算,并通过偏移指令第调整设置(SKP ordered-set)来控制读指针的跳转来达到补偿时钟差异的目的, 因此位于高速外设部件互连物理接口的弹性緩冲装置至少需要8格。而位于 媒体访问层的偏斜消除緩冲单元也至少需要5格,因此总共的设计需要13格。 对于而本发明高速外设部件互连物理接口的弹性緩冲装置在对于补偿本地时 钟频率比发送方时钟频率快的情况时,采用了关闭读指针控制器的本地时钟 维持读指针不动来调整读写指针的距离来实现补偿时钟差异的目的。并且, 本发明弹性緩冲装置综合了时钟补偿和消除各数据通道偏斜这两个功能,只 使用一个先入先出单元来进行数据存储,因此先入先出单元的面积减小到了 9 格,而先入先出单元的面积减小了,存储数据的时间自然也减小了。如图2 所示,由于本发明弹性緩沖装置综合了时钟补偿和消除各数据通道偏斜的功 能,因而无需再在媒体访问层中加入偏斜消除缓冲单元,从而节省了 PCI Express的i殳计面禾只。
权利要求
1.一种弹性缓冲装置,其特征在于,包括,若干个先入先出单元,用于对应数据通道的数据包数据的写入和读取;若干个先入先出单元控制器,用于控制写指针在恢复时钟下向对应数据通道的先入先出单元写入数据,控制读指针在本地时钟下从对应数据通道的先入先出单元读出数据;以及根据探测到的对应数据通道的先入先出单元的读写指针的位置计算读写指针的距离,并根据设定的读写指针的距离范围来调整读指针的位置来补偿时钟差异;以及对于对应数据通道接收的数据包的数据头标识进行计数,将计数结果通知多通道偏斜控制器,根据多通道偏斜控制器的反馈调整对应数据通道的先入先出单元的读指针的位置来消除偏斜;多通道偏斜控制器,用于从各个先入先出单元控制器发送的数据头标识计数结果中选取中间值,并结合中间值和各个先入先出单元控制器发送的数据头标识结果向各个先入先出单元控制器发送读指针继续运行或维持不动的反馈信号。
2. 如权利要求1所述的弹性緩冲装置,其特征在于,所述先入先出单元控制 器进一步包括,写指针控制器,用于在恢复时钟下控制写指针将数据包中数据写入先入 先出单元;读指针控制器,用于在接收到读指针使能控制器传递的本地时钟时,控 制读指针从先入先出单元中读出数据;在未接收到读指针使能控制器传递的 本地时钟时,维持读指针不动;在接收到读写指针距离计算器发送的移除偏 移指令时,控制读指针跳一格;在接收到数据头标识计数器传输的反馈信号 时,控制读指针从先入先出单元中读出数据或维持读指针不动;同步标识探测器,用于探测弹性緩冲装置接收的数据包中的同步标识, 并在探测到同步标识后将数据包发送给数据头标识计数器;数据头标识计数器,用于在同步标识探测器探测到同步标识后,对于弹 性缓冲装置接收的数据包中的数据头标识进行计数,将数据头标识计数结果 通知多通道偏斜控制器,并接收多通道偏斜控制器的反馈信号传输给读指针控制器和读指针使能控制器;读指针使能控制器,用于在接收到读写指针距离计算器提供的使能信号 时,向读指针控制器传递本地时钟;在未接收到读写指针距离计算器提供的 使能信号时,停止向读指针控制器传递本地时钟;在接收到数据头标识计数 器传输的反馈信号时,向读指针控制器传递本地时钟或停止向读指针控制器 传递本地时钟;读写指针距离计算器,用于通过探测读写指针的位置计算读写指针的距 离,并根据计算结果结合设定的读写指针的距离范围相应发送移除偏移指令、 发送使能信号和停止发送使能信号。
3. 如权利要求2所述的弹性緩冲装置,其特征在于,所述格为一个具有设定 字节大小的存储空间。
4. 如权利要求2或3所述的弹性緩冲装置,其特征在于,所述设定的距离范 围为1至5格。
5. 如权利要求4所述的弹性緩冲装置,其特征在于,所述设定字节的大小为 10bit。
6. —种补偿时钟差异的方法,其特征在于,包括,探测读写指针的位置;根据读写指针的位置计算读写指针的距离;如果读写指针的距离大于设定的距离范围,则通过移除偏移指令使得读 指针沿前进方向跳一格;如果读写指针的距离小于设定的距离范围,则维持读指针不动。
7. 如权利要求6所述的补偿时钟差异的方法,其特征在于,所述格为一个具 有设定字节大小的存储空间。
8. 如权利要求6或7所述的补偿时钟差异的方法,其特征在于,所述设定的 距离范围为1至5格。
9. 如权利要求8所述的补偿时钟差异的方法,其特征在于,所述设定字节的 大小为10bit。
10. 如权利要求6所述的补偿时钟差异的方法,其特征在于,通过关闭读指针 控制器的时钟来维持读指针不动。
全文摘要
本发明弹性缓冲装置包括,若干个先入先出单元,用于对应数据通道的数据包数据的写入和读取;若干个先入先出单元控制器,用于控制读指针或写指针从对应先入先出单元写入和读取数据,根据探测到的对应数据通道的读写指针的位置计算读写指针的距离,并根据设定的读写指针的距离范围来调整读指针的位置;以及对于对应数据通道接收的数据包的数据头标识进行计数,将计数结果通知多通道偏斜控制器,根据多通道偏斜控制器的反馈调整该数据通道先入先出单元的读指针的位置;多通道偏斜控制器,用于根据各个先入先出单元控制器发送的数据头标识计数结果进行综合分析,并向各个先入先出单元控制器发送反馈信号,从而使得PCI Express的面积较小。
文档编号H04L12/56GK101296217SQ20071004024
公开日2008年10月29日 申请日期2007年4月24日 优先权日2007年4月24日
发明者唐世庆, 昊 张, 萧健群 申请人:中芯国际集成电路制造(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1