用于高速串行总线的弹性缓冲器和弹性缓冲的方法技术

技术编号:13191411 阅读:63 留言:0更新日期:2016-05-11 19:11
提供一种用于高速串行总线的弹性缓冲器和弹性缓冲的方法。该弹性缓冲器,包括:输入接口,用于接收来自第一时钟域的数据;控制器,用于对接收数据中的空闲数据单元进行识别,并对识别到的空闲数据单元的重复次数进行计数,当该重复次数达到参考值时,从接收数据中丢弃至少一个重复的空闲数据单元;存储器,用于存储经过处理的接收数据;以及输出接口,用于向第二时钟域输出存储在该存储器中的经过处理的接收数据。

【技术实现步骤摘要】

本专利技术涉及高速串行总线传输技术,更具体地,涉及。
技术介绍
随着数字设备在各种领域的广泛应用,需要更大的数据存储量和更高的带宽,已经开发了诸如串行高级技术附件(SATA)、外围组件快速互连(PCIe)、以及超高速I(UHS-1)和超高速II (UHS-1I)的高速串行总线技术。以UHS-1I为例,通过两个通路(lane)可以在主机与存储卡之间实现高达156MB/S(全双工)或312MB/S(半双工)的传输速率。在物理层传输中,主机与存储卡之间的接口两侧处于不同的时钟域。处于不同的时钟域的发送和接收双方的时钟源之间通常有相位差,甚至频率上也有细微的差别。当为了减少电磁干扰而使用扩频时钟(SSC)技术时,时钟源之间的上述差异可能更严重。为此,通常采用弹性缓冲器来解决上述问题。即,将来自第一时钟域的接收数据推送(push)到弹性缓冲器中,并弹出(pop)到第二时钟域。然而,如果第二时钟域的时钟频率长时间低于第一时钟域的时钟频率,则弹性缓冲器可能满溢,使得无法进一步接收数据。目前,UHS-1I并未规定如何解决缓冲器满溢问题。通常,需要设计额外的硬件配置来应对缓冲器满溢。此外,当在半双工模式下同时使用两个通路传输数据时,还会产生另外的问题,即,不同通路的时钟源之间也存在差异,导致各个通路的弹性缓冲器中的水位线(water mark)不同,这称为数据歪斜(data skew)。数据歪斜会对各通路的数据的合并造成困难。因而,进一步需要诸如缓冲器的额外的硬件配置用于消除通路之间的数据歪斜。上述额外的硬件配置提高了设计复杂度,同时使得制造成本更为高昂。【专利技术内容】因此,为了解决上述问题,本专利技术提供能够防止缓冲器满溢和数据歪斜的用于高速串行总线的接收器和接收数据的方法。根据本专利技术的一个实施例,提供一种用于高速串行总线的弹性缓冲器,包括:输入接口,用于接收来自第一时钟域的数据;控制器,用于对接收数据中的空闲数据单元进行识另IJ,并对识别到的空闲数据单元的重复次数进行计数,当该重复次数达到参考值时,从接收数据中丢弃至少一个重复的空闲数据单元;存储器,用于存储经过处理的接收数据;以及输出接口,用于向第二时钟域输出存储在该存储器中的经过处理的接收数据。根据实施例,所述高速串行总线可以为超高速II(UHS-1I)总线,所述空闲数据单元包括以下链路符号集(LSS)中的至少一种:同步(SYN)、逻辑空闲(LIDL)、数据传输逻辑空闲(DIDL)、和方向切换(DIR)。根据实施例,该弹性缓冲器可以进一步包括寄存器,用于设置所述参考值。根据实施例,所述参考值可以是根据空闲数据单元的持续时间确定的。根据实施例,所述参考值可以为16至256。根据实施例,该存储器可以为先进先出存储器。根据实施例,该输入接口可以根据从该接收数据中恢复的第一时钟接收该接收数据,该输出接口可以根据第二时钟输出存储在该存储器中的经过处理的该接收数据,其中所述参考值可以是根据所述第一时钟和所述第二时钟的差异决定的。根据本专利技术的另一实施例,提供一种用于高速串行总线的弹性缓冲的方法,包括:接收来自第一时钟域的数据;对接收数据中的空闲数据单元进行识别,并对识别到的所述空闲数据单元的重复次数进行计数,当该重复次数达到参考值时,从接收数据中丢弃至少一个重复的空闲数据单元;存储经过处理的接收数据;以及向第二时钟域输出已存储的经过处理的接收数据。根据实施例,所述高速串行总线可以为超高速II(UHS-1I)总线,所述空闲数据单元包括以下链路符号集(LSS)中的至少一种:同步(SYN)、逻辑空闲(LIDL)、数据传输逻辑空闲(DIDL)、和方向切换(DIR)。根据实施例,该方法可以进一步包括:设置所述参考值。根据实施例,所述参考值可以是根据空闲数据单元的持续时间确定的。根据实施例,所述参考值可以为16至256。根据实施例,可以在先进先出存储器中存储经过处理的接收数据。根据实施例,可以根据从该接收数据中恢复的第一时钟接收该接收数据,且可以根据第二时钟输出已存储的经过处理的该接收数据,其中所述参考值可以是根据所述第一时钟和所述第二时钟的差异决定的。根据本专利技术的实施例,在跨时钟域接收数据时,通过对特定类型的控制数据单元(例如,空闲数据单元)的重复次数进行计数并丢弃至少一个重复的控制数据单元,可以有效地控制缓冲器中的水位线以防止缓冲器满溢而无需增加硬件设计复杂度。此外,在通过多个通路接收数据的情况下,可以进一步解决不同通路之间由于时钟频率差异而发生数据歪斜的问题。【附图说明】图1是示出根据本专利技术的实施例的用于高速串行总线的接收器100的框图;图2是示出根据本专利技术的实施例的用于高速串行总线的接收数据的方法的流程图;图3是示出根据本专利技术的实施例的用于高速串行总线的弹性缓冲器300的框图;以及图4是示出根据本专利技术的实施例的用于高速串行总线的弹性缓冲的方法的流程图。【具体实施方式】下面参照附图详细描述根据本专利技术的示范性实施例。附图中,将相同或类似的附图标记赋予结构以及功能基本相同的组成部分,并且为了使说明书更加简明,省略了关于基本上相同的组成部分的冗余描述。下文中,将以超高速II(UHS-1I)作为高速串行总线的示例来描述本专利技术的实施例。然而,本专利技术不限于此。本专利技术的方案也可以应用于在不同时钟域之间使用弹性缓冲器的其他高速串行总线(例如SATA或PCI e总线)技术。图1是示出根据本专利技术的实施例的用于高速串行总线的接收器100的框图。参照图1,接收器100可以包括解码器101、计数器102、控制器103、和缓冲器104。在一实施例中,接收器100可以设置于主机或存储卡的物理层中。接收器100从第一时钟域接收数据,并输出经过处理的的接收数据到第二时钟域。例如,接收器100的一侧经由时钟数据恢复(CDR)从自发送器(图未绘示)接收的数据中产生恢复时钟源,并根据所产生的恢复时钟源将接收数据推送(push)到接收器100中,接收器的100另一侧弹出(pop)经过处理的接收数据到第二时钟域,第二时钟域例如为主机或存储卡本地的时钟源。解码器101可以确定接收的数据中的控制数据单元的类型。例如,在UHS-1I中,控制数据单元可以是链路符号集(LLS),包括:同步(SYN)、自举同步(BSYN)、方向切换(DIR)、逻辑空闲(LIDL)、数据传输逻辑空闲(DIDL)、数据突发开始(SDB)、数据突发结束(EDB)、分组开始(S0P)、分组结束(EOP)等。每个LLS具有各自的信号样式,解码器101通过LLS的信号样式来确定其类型。例如,LIDL可以包括两个符号,第一个符号是逗号(COM) (K28.5),第二个符号可以是从LIDLO (K28.3)和LIDLl (D16.7)中随机选择的符号WHS-1I物理层规范4.0中详细规定了各种LLS的信号样式和作用,这里不再赘述。计数器102可以对特定类型的控制数据单元的重复次数进行计数。根据本专利技术的实施例,当控制数据单元的类型被解码器101确定为属于空闲数据单元时,控制器103可以控制计数器102对类型被确定为属于空闲数据单元的控制数据单元的重复次数进行计数。在UHS-1I中,空闲数据单元可以是以下LLS中的至少一个或全部:SYN、DIR、LIDL本文档来自技高网...

【技术保护点】
一种用于高速串行总线的弹性缓冲器,包括:输入接口,用于接收来自第一时钟域的数据;控制器,用于对接收数据中的空闲数据单元进行识别,并对识别到的所述空闲数据单元的重复次数进行计数,当该重复次数达到参考值时,从该接收数据中丢弃至少一个重复的所述空闲数据单元;存储器,用于存储经过处理的该接收数据;以及输出接口,用于向第二时钟域输出存储在该存储器中的所述经过处理的接收数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:冀晓亮惠志强
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1