用于高速串行总线的接收器和接收数据的方法

文档序号:9579212阅读:312来源:国知局
用于高速串行总线的接收器和接收数据的方法
【技术领域】
[0001]本发明涉及高速串行总线传输技术,更具体地,涉及用于高速串行总线的接收器和接收数据的方法。
【背景技术】
[0002]随着数字设备在各种领域的广泛应用,需要更大的数据存储量和更高的带宽,已经开发了诸如串行高级技术附件(SATA)、外围组件快速互连(PCIe)、以及超高速I (UHS-1)和超高速II (UHS-1I)的高速串行总线技术。以UHS-1I为例,通过两个通路(lane)可以在主机与存储卡之间实现高达156MB/S (全双工)或312MB/S (半双工)的传输速率。
[0003]在物理层传输中,主机与存储卡之间的接口两侧处于不同的时钟域。处于不同的时钟域的发送和接收双方的时钟源之间通常有相位差,甚至频率上也有细微的差别。当为了减少电磁干扰而使用扩频时钟(SSC)技术时,时钟源之间的上述差异可能更严重。
[0004]为此,通常采用弹性缓冲器来解决上述问题。即,将来自第一时钟域的接收数据推送(push)到弹性缓冲器中,并弹出(pop)到第二时钟域。然而,如果第二时钟域的时钟频率长时间低于第一时钟域的时钟频率,则弹性缓冲器可能满溢,使得无法进一步接收数据。目前,UHS-1I并未规定如何解决缓冲器满溢问题。通常,需要设计额外的硬件配置来应对缓冲器满溢。此外,当在半双工模式下同时使用两个通路传输数据时,还会产生另外的问题,即,不同通路的时钟源之间也存在差异,导致各个通路的弹性缓冲器中的水位线(water mark)不同,这称为数据歪斜(data skew) 0数据歪斜会对各通路的数据的合并造成困难。因而,进一步需要诸如缓冲器的额外的硬件配置用于消除通路之间的数据歪斜。上述额外的硬件配置提高了设计复杂度,同时使得制造成本更为高昂。

【发明内容】

[0005]因此,为了解决上述问题,本发明提供能够防止缓冲器满溢和数据歪斜的用于高速串行总线的接收器和接收数据的方法。
[0006]根据本发明的一个实施例,提供一种用于高速串行总线的接收器,包括:解码器,用于确定接收数据中的控制数据单元的类型;计数器,用于对特定类型的控制数据单元的重复次数进行计数;控制器,根据通过该解码器确定的控制数据单元的类型,控制该计数器对所述特定类型的控制数据单元的重复次数进行计数,当该重复次数达到参考值时,从接收数据中丢弃至少一个重复的所述特定类型的控制数据单元;以及缓冲器,用于存储经过处理的接收数据。
[0007]根据实施例,当控制数据单元的类型属于空闲数据单元时,该控制器可以控制该计数器对属于空闲数据单元的上述特定类型的控制数据单元的重复次数进行计数。
[0008]根据实施例,所述高速串行总线可以为超高速II(UHS-1I)总线,所述特定类型的控制数据单元可以包括以下链路符号集(LSS)中的至少一种:同步(SYN)、逻辑空闲(LIDL)、数据传输逻辑空闲(DIDL)、和方向切换(DIR)。
[0009]根据实施例,该接收器可以进一步包括寄存器,用于设置所述参考值。
[0010]根据实施例,所述参考值可以由所述特定类型的控制数据单元的持续时间决定。
[0011]根据实施例,所述参考值可以为16至256。
[0012]根据实施例,该接收器可以包括多个数据通路,每个数据通路可以包括单独的计数器和缓冲器。
[0013]根据实施例,该缓冲器可以是弹性缓冲器。
[0014]根据实施例,该接收器可以根据从该接收数据中恢复的第一时钟接收该接收数据,且可以根据第二时钟输出存储在该缓冲器中的所述经过处理的该接收数据,其中所述参考值可以由所述第一时钟和所述第二时钟的差异决定。
[0015]根据本发明的另一实施例,提供一种用于高速串行总线的接收数据的方法,包括:确定接收数据中的控制数据单元的类型;根据控制数据单元的类型,对特定类型的控制数据单元的重复次数进行计数,当该重复次数达到参考值时,从接收数据中丢弃至少一个重复的所述特定类型的控制数据单元;以及存储经过处理的接收数据。
[0016]根据实施例,当控制数据单元的类型属于空闲数据单元时,可以对属于空闲数据单元的上述特定类型的控制数据单元的重复次数进行计数。
[0017]根据实施例,所述高速串行总线可以为超高速II(UHS-1I)总线,所述特定类型的控制数据单元可以包括以下链路符号集(LSS)中的至少一种:同步(SYN)、逻辑空闲(LIDL)、数据传输逻辑空闲(DIDL)、和方向切换(DIR)。
[0018]根据实施例,该方法可以进一步包括:设置所述参考值。
[0019]根据实施例,所述参考值可以由所述特定类型的控制数据单元的持续时间决定。
[0020]根据实施例,所述参考值可以为16至256。
[0021]根据实施例,可以根据从该接收数据中恢复的第一时钟接收该接收数据,且可以根据第二时钟输出存储在该缓冲器中的所述经过处理的该接收数据,其中所述参考值可以由所述第一时钟和所述第二时钟的差异决定。
[0022]根据本发明的实施例,在跨时钟域接收数据时,通过对特定类型的控制数据单元(例如,空闲数据单元)的重复次数进行计数并丢弃至少一个重复的控制数据单元,可以有效地控制缓冲器中的水位线以防止缓冲器满溢而无需增加硬件设计复杂度。此外,在通过多个通路接收数据的情况下,可以进一步解决不同通路之间由于时钟频率差异而发生数据歪斜的问题。
【附图说明】
[0023]图1是示出根据本发明的实施例的用于高速串行总线的接收器100的框图;
[0024]图2是示出根据本发明的实施例的用于高速串行总线的接收数据的方法的流程图;
[0025]图3是示出根据本发明的实施例的用于高速串行总线的弹性缓冲器300的框图;以及
[0026]图4是示出根据本发明的实施例的用于高速串行总线的弹性缓冲的方法的流程图。
【具体实施方式】
[0027]下面参照附图详细描述根据本发明的示范性实施例。附图中,将相同或类似的附图标记赋予结构以及功能基本相同的组成部分,并且为了使说明书更加简明,省略了关于基本上相同的组成部分的冗余描述。
[0028]下文中,将以超高速II(UHS-1I)作为高速串行总线的示例来描述本发明的实施例。然而,本发明不限于此。本发明的方案也可以应用于在不同时钟域之间使用弹性缓冲器的其他高速串行总线(例如SATA或PCIe总线)技术。
[0029]图1是示出根据本发明的实施例的用于高速串行总线的接收器100的框图。
[0030]参照图1,接收器100可以包括解码器101、计数器102、控制器103、和缓冲器104。在一实施例中,接收器100可以设置于主机或存储卡的物理层中。接收器100从第一时钟域接收数据,并输出经过处理的的接收数据到第二时钟域。例如,接收器100的一侧经由时钟数据恢复(CDR)从自发送器(图未绘示)接收的数据中产生恢复时钟源,并根据所产生的恢复时钟源将接收数据推送(push)到接收器100中,接收器的100另一侧弹出(pop)经过处理的接收数据到第二时钟域,第二时钟域例如为主机或存储卡本地的时钟源。
[0031]解码器101可以确定接收的数据中的控制数据单元的类型。例如,在UHS-1I中,控制数据单元可以是链路符号集(LLS),包括:同步(SYN)、自举同步(BSYN)、方向切换(DIR)、逻辑空闲(LIDL)、数据传输逻辑空闲(DIDL)、数据突发开始(SDB)、数据突发结束(EDB)、分组开始(SOP)、分组结束(EOP)等。每个LLS具有各自的信号样式,解码器101通过LLS的信号样式来确定其类型。例如,LIDL可以包括两个符号,第一个符号是逗号(COM) (K28.5),第二个符号可以是从LIDLO (K28.3)和LIDLl (D16.7)中随机选择的符号。UHS-1I物理层规范4.0中详细规定了各种LLS的信号样式和作用,这里不再赘述。
[0032]计数器102可以对特定类型的控制数据单元的重复次数进行计数。根据本发明的实施例,当控制数据单元的类型被解码器101确定为属于空闲数据单元时,控制器103可以控制计数器102对类型被确定为属于空闲数据单元的控制数据单元的重复次数进行计数。在UHS-1I中,空闲数据单元可以是以下LLS中的至少一个或全部:SYN、DIR、LIDL、和DIDL。然而,这仅仅是示例,本发明不限于此。此外,根据实施例,也可以对除了空闲数据单元之外的其他控制数据单元的重复次数进行计数。
[0033]当该重复次数达到参考值时,控制器103可以从接收数据中丢弃至少一个重复的前述特定类型的控制数据单元,并将经过处理的接收数据存储在缓冲器104中,以便向第二时钟域提供。根据实施例,缓冲器104可以是弹性缓冲器。由于仅输入数据中特定类型控制数据单元的很小一部分被丢弃,可以有效地控制缓冲器104的水位线,以便预防缓冲器104的满溢。为了避免影响传输信令,可以只丢弃空闲数据单元。
[0034]在UHS-1I中,作为空闲数据单元的诸如SY
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1