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

文档序号:9579212阅读:来源:国知局
N、DIR、LIDL、和DIDL的LLS通常被大量重复发送,因此适当地丢弃重复的LLS不会造成后续对接收数据的译码错误。本发明根据参考值控制丢弃重复LLS的频率,使得弹性缓冲器的水位线既不会太高以至于接近满溢,也不会太低以至于接近变空。为此,根据实施例,接收器100可以进一步包括寄存器(未示出),用于设置所述参考值,用于特定类型的空闲数据单元。在一实施例中,参考值是由空闲数据单元的持续时间决定的,特别地,是由空闲数据单元中持续时间最短的空闲数据单元的持续时间决定的。例如,DIR的持续时间最短,为N_LSS_DIR*8 (例如,N_LSS_DIR可以等于8),可以将参考值设定为16,即每当接收到16个重复的空闲数据单元(包括SYN、DIR、LIDLjP DIDL的全部或部分类型)时,丢弃一个持续时间最短的DIR便足以将缓冲器104的水位线维持在较低水平而不会满溢,并且不会影响后续对接收数据的译码,那么则丢弃一个任意类型的空闲数据单元便一定都足以将缓冲器104的水位线降低到较低水平且不会造成译码错误。另一方面,参考值还由第一时钟域与第二时钟域的时钟源差异(包括相位差异和/或频率差异)决定,时钟源的差异越大,所述参考值越小,但通常时钟源差异的影响较小。在其他实施例中,甚至可以将所述参考值设定为高达256,即,每256个重复的空闲数据单元才丢弃一个,仍足以迅速将水位线降低到较低的水平,且不会造成译码错误。
[0035]根据实施例,接收器100可以包括多个数据通路,此时,每个数据通路可以包括单独的计数器102和缓冲器104。在半双工模式下,可以在每个缓冲器104中分别丢弃空闲数据单元来消除数据歪斜,使得各个通路的缓冲器104的水位线平齐,以便于数据的合并。
[0036]图2是示出根据本发明的实施例的用于高速串行总线的接收数据的方法的流程图。
[0037]参照图2,在步骤S201,可以确定接收数据中的控制数据单元的类型。如上所述,在 UHS-1I 中,控制数据单元可以是 LLS,包括:SYN、BSYN、DIR、LIDL、DIDL、SDB、EDB、SOP、EOP等。可以通过LLS的信号样式来确定其类型。
[0038]在步骤S202,如果控制数据单元的类型属于特定类型的控制数据单元,则可以在步骤S203对特定类型的控制数据单元的重复次数进行计数,否则,进入步骤S206。如上所述,以UHS-1I为例,特定类型的控制数据单元可以包括以下LSS中的至少一种或全部:SYN、LIDL、DIDL、和DIR。然而这只是示例,本发明不限于此。另外,根据实施例,也可以对除了空闲数据单元之外的其他特定类型的控制数据单元的重复次数进行计数。
[0039]在步骤S204,如果重复次数达到参考值,则可以在步骤S205从接收数据中丢弃至少一个重复的特定类型的控制数据单元(或其他控制数据单元),否则,可以回到步骤S203继续计数。
[0040]在步骤S206,存储经过处理的接收数据,以便向第二时钟域提供。
[0041]如上所述,为了精确地控制缓冲器中的水位线,可以根据特定类型的控制数据单元(例如,包括SYN、DIR、LIDL、和DIDL)的持续时间以及第一时钟域与第二时钟域的时钟源差异来确定所述参考值。所述参考值可以为16至256。
[0042]此外,根据实施例,在通过多个数据通路传输时,可以对每个数据通路单独执行计数和缓存。在半双工模式下,可以在每个数据通路中分别丢弃空闲数据单元来消除数据歪斜,使得水位线平齐,以便于数据的合并。
[0043]图3是示出根据本发明的实施例的用于高速串行总线的弹性缓冲器300的框图。图3的弹性缓冲器300不同于图1的缓冲器104,其自身具有对空闲数据单元进行计数和丢弃的功能。
[0044]参照图3,弹性缓冲器300可以包括输入接口 301、控制器302、存储器303、和输出接口 304。
[0045]控制器302可以对通过输入接口 301接收的来自第一时钟域的数据中的空闲数据单元进行识别,并对识别到的空闲数据单元的重复次数进行计数,当该重复次数达到参考值时,从接收数据中丢弃至少一个重复的空闲数据单元,并将经过处理的接收数据存储在存储器303中。在一实施例中,存储器303为一先进先出缓冲器(FIFO buffer)。
[0046]输出接口 304可以向第二时钟域输出存储在存储器303中的经过上述控制器302处理的接收数据。
[0047]如上所述,所述高速串行总线可以为UHS-1I总线,所述空闲数据单元可以包括以下LSS中的至少一种或全部:SYN、LIDL、DIDLJPDIR。
[0048]此外,根据实施例,为了精确地控制水位线,弹性缓冲器300可以进一步包括寄存器(未示出),用于设置所述参考值。具体地,可以根据空闲数据单元(包括SYN、DIR、LIDL、和DIDL)的持续时间和/或第一时钟域与第二时钟域的时钟源差异来确定所述参考值。所述参考值可以为16至256。
[0049]图4是示出根据本发明的实施例的用于高速串行总线的弹性缓冲的方法的流程图。
[0050]参照图4,在步骤S401,接收来自第一时钟域的数据。
[0051]在步骤S402,对接收数据中的空闲数据单元进行识别,并对识别到的空闲数据单元的重复次数进行计数。对于UHS-1I总线,所述空闲数据单元可以包括以下LSS中的至少一种或全部:SYN、LIDL、DIDL、和 DIR。
[0052]在步骤S403,如果重复次数达到参考值,则在步骤S404从接收数据中丢弃至少一个重复的空闲数据单元,否则,可以回到步骤S402继续计数。
[0053]在步骤S405,存储经过处理的接收数据。
[0054]在步骤S406,向第二时钟域输出已存储的经过处理的接收数据。
[0055]根据实施例,可以根据空闲数据单元的持续时间和/或第一时钟域与第二时钟域的时钟源差异来确定所述参考值。所述参考值可以为16至256。
[0056]如上所述,已经在上面具体地描述了本发明的各个实施例,但是本发明不限于此。本领域的技术人员应该理解,可以根据设计要求或其它因素进行各种修改、组合、子组合或者替换,而它们在所附权利要求书及其等效物的范围内。
【主权项】
1.一种用于高速串行总线的接收器,包括: 解码器,用于确定接收数据中的控制数据单元的类型; 计数器,用于对特定类型的控制数据单元的重复次数进行计数; 控制器,根据通过该解码器确定的所述控制数据单元的类型,控制该计数器对所述特定类型的控制数据单元的重复次数进行计数,当该重复次数达到参考值时,从该接收数据中丢弃至少一个重复的所述特定类型的控制数据单元;以及 缓冲器,用于存储经过处理的该接收数据。2.如权利要求1所述的接收器,其中,当所述控制数据单元的类型属于空闲数据单元时,该控制器控制该计数器对属于空闲数据单元的上述特定类型的控制数据单元的重复次数进行计数。3.如权利要求1所述的接收器,其中,所述高速串行总线为超高速II(UHS-1I)总线,所述特定类型的控制数据单元包括以下链路符号集(LSS)中的至少一种:同步(SYN)、逻辑空闲(LIDL)、数据传输逻辑空闲(DIDL)、和方向切换(DIR)。4.如权利要求1所述的接收器,进一步包括: 寄存器,用于设置所述参考值。5.如权利要求1所述的接收器,其中,所述参考值是由所述特定类型的控制数据单元的持续时间决定的。6.如权利要求1所述的接收器,其中,所述参考值为16至256。7.如权利要求1所述的接收器,包括多个数据通路,每个数据通路包括单独的所述计数器和所述缓冲器。8.如权利要求1所述的接收器,其中该缓冲器是弹性缓冲器。9.如权利要求1所述的接收器,其中该接收器根据从该接收数据中恢复的第一时钟接收该接收数据,且根据第二时钟输出存储在该缓冲器中的所述经过处理的该接收数据,其中所述参考值是由所述第一时钟和所述第二时钟的差异决定的。10.一种用于高速串行总线的接收数据的方法,包括: 确定接收数据中的控制数据单元的类型; 根据所述控制数据单元的类型,对特定类型的控制数据单元的重复次数进行计数,当该重复次数达到参考值时,从该接收数据中丢弃至少一个重复的所述特定类型的控制数据单元;以及 存储经过处理的该接收数据。
【专利摘要】提供一种用于高速串行总线的接收器和接收数据的方法。该接收器包括:解码器,用于确定接收数据中的控制数据单元的类型;计数器,用于对特定类型的控制数据单元的重复次数进行计数;控制器,根据通过该解码器确定的控制数据单元的类型,控制该计数器对特定类型的控制数据单元的重复次数进行计数,当该重复次数达到参考值时,从接收数据中丢弃至少一个重复的特定类型的控制数据单元;以及缓冲器,用于存储经过处理的接收数据。
【IPC分类】G06F13/40
【公开号】CN105335324
【申请号】CN201510885448
【发明人】冀晓亮, 惠志强
【申请人】上海兆芯集成电路有限公司
【公开日】2016年2月17日
【申请日】2015年12月4日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1