数据块同步设备、系统和方法 【技术领域】
在此被公开的主题涉及数据通信。在此被公开的主题特别涉及处理在目的地被接收的数据。
背景技术
在数据传输媒体中,数据通常被作为离散量的数据或数据块量传输到目的地。数据块典型地包括在传输前的一个源上已经被编码和/或被扰码的数据。一旦在目的地接收到这种数据块,被接收的数据块可以被解扰码或者解码以便恢复所述被传输的数据。在数据流中数据块可以被传输到目地地,其中连续的数据块被所述数据流中的一个同步标题分开。数据块可以被从所述数据流分析或者通过定位一个预定的在所述数据流中分开所述数据块的同步标题被“对准”。所述被分析的或被对准的数据块随后可以被解扰码或被解码。
【发明内容】
根据本发明的第一方面,提供了一种系统,包括:一个XGXS设备;和一个物理编码子层设备,它包括:一个被耦合到所述XGXS设备的XGMII;一个响应于被同步的数据来给所述XGMII提供数据帧的解码器;和一个响应于数据流来给所述解码器提供所述被同步的数据的数据同步部分,该数据同步部分包括:一个检测器,该检测器在每个连续的固定字增量的设定部分的公共位置中检测多个连续的固定字增量的每一个中的同步标题;和一个齿轮箱逻辑电路,该齿轮箱逻辑电路响应于在被接收的固定字增量的设定部分的公共位置中检测到所述同步标题的缺乏,用固定的比特数量滑动所述数据流。
根据本发明的第二方面,提供了一种方法,包括:在设定的数据字增量上接收数据流;在每个连续的数据字增量的设定部分的公共位置中检测多个连续的被接收的数据字增量的每一个中的同步标题的存在;以及响应于在至少一个被接收的数据字增量的设定部分的公共位置中检测到所述同步标题的缺乏,用固定的比特数量滑动所述数据流。
根据本发明的第三方面,提供了一种设备,包括:一个在数据字增量上接收数据流的接口;一个在每个连续的数据字增量的设定部分的公共位置中检测多个被接收的连续的数据字增量的每一个中的同步标题的检测器;以及一个响应于在被接收的数据字增量的设定部分的公共位置中检测到所述同步标题的缺乏,用固定的比特数量滑动所述数据流的齿轮箱。
根据本发明的第四方面,提供了一种设备,包括:在设定的数据字增量上接收数据流的装置;在每个连续的数据字增量的设定部分的公共位置中检测多个连续的被接收的数据字增量的每一个中的同步标题的存在的装置;以及响应于在至少一个被接收的数据字增量中的设定部分的公共位置中检测到所述同步标题的缺乏而用固定的比特数量滑动所述数据流的装置。
【附图说明】
参考下列附图将描述本发明的非限制和不详尽的实施方案,其中除非另外规定,否则相同的编号指各图中相同的部分。
图1显示根据本发明的一个实施方案的在两点之间传输数据的一种系统。
图2显示根据在图1中显示的系统的实施方案的在一个物理编码子层(PCS)设备和物理媒体附件(PMA)设备之间的一个接口。
图3显示根据在图1中显示的系统的实施方案的一种数据接收机。
图4显示根据在图3中显示的块同步部分的实施方案的在一个PCS设备上同步接收数据块的一种算法。
图5显示根据在图4中表示的算法的实施方案的一个说明在数据帧中定位同步标题的算法中状态转移的示意图。
【具体实施方式】
贯穿这个说明书的对于“一个实施方案”或者“实施方案”的参考意味着结合所述实施方案被描述的特殊的特点、结构、或特性被包括在本发明的至少一个实施方案中。因此,显然,在贯穿这个说明书的各个位置中的短语“在一个实施方案中”或者“实施方案”不必全部指相同的实施方案。而且,特殊的特点、结构、或特性可以被包括在一个或多个实施方案中。
在此提到的“机器可读取的”指令指可以被一个或多个机器理解的用于执行一个或多个逻辑操作的表达式。例如,机器可读取的指令可以包括是处理器编译程序可解释的用于在一个或多个数据对象上执行一个或多个操作的指令。然而,这仅仅是机器可读取的指令的一个例子,并且本发明的实施方案未被限制在这个方面中。
在此提到的“存储媒体”指能够维护一个或多个机器可察觉的表达式的媒体。例如,机器可读取的媒体可以包括一个或多个用于存储机器可读取的指令或数据的存储设备。这种存储设备可以包括诸如光学的、磁性的或半导体存储媒体的存储媒体。然而,这仅仅是机器可读取的媒体的一个例子,并且本发明的实施方案未被限制在这个方面中。
在此提到的“逻辑电路”指用于执行一个或多个逻辑操作的结构。例如,逻辑电路可以包括基于一个或多个输入信号提供一个或多个输出信号的电路。这种电路可以包括接收数字输入并且提供数字输出的有限状态机,或者响应于一个或多个模拟输入信号提供一个或多个模拟输出信号的电路。这种电路可以在专用集成电路(ASIC)或现场可编程门阵列(FPGA)中被提供。而且,逻辑电路可以包括被存储在存储媒体中的机器可读取的指令,与处理电路共同执行这种机器可读取的指令。然而,这些仅仅是可以提供逻辑电路的结构的例子,并且本发明的实施方案未被限制在这个方面中。
在此提到的“数据字”指固定数量的数据。例如,一个数据字可以包括固定数量的有序数据比特。一个数据字可以有包括16个比特、32个比特、64个比特或更多比特的预定的长度。然而,这些仅仅是数据字的例子,并且本发明的实施方案未被限制在这些方面中。
在此提到的“数据流”指在一个时间周期中以顺序地被传输的数据单元的方式被传输到目的地的数据。数据流可以以均匀的数据率给目的地提供数据。数据流还可以在一个时间周期中以数据字增量的方式被提供给目的地。然而,这些仅仅是数据流的例子,并且本发明的实施方案未被限制在这些方面中。
在此提到的“数据帧”指在目的地被接收的数据单元。一个数据传输可以被划分成多个有序数据帧用于传输到所述目的地。然而,这仅仅是数据帧的一个例子,并且本发明未被限制在这些方面中。
在此提到的“数据块”指可以在数据帧中被传输的数据数量。数据块可以包括一些已经被扰码或编码的数据。在数据流中和多个数据帧一起被传输的每个数据帧可以包括“同步标题”以便表示所述数据帧的开始并且把所述数据帧的数据块部分和前面的数据帧的数据块部分分开。然而,这些仅仅是数据块和同步标题的例子,并且本发明的实施方案未被限制在这些方面中。
在此提到的“齿轮箱”指在一个第一数据宽度上接收并行数据并且在一个不同于所述第一数据宽度的第二数据宽度上按照并行数据提供所述被接收的数据的一种设备。在齿轮箱的一个例子中,在具有所述第一数据宽度的输入端的数据吞吐量可以和在具有所述第二数据宽度的输出端的数据吞吐量相同。然而,这仅仅是齿轮箱的一个例子,并且本发明的实施方案未被限制在这个方面中。
在此提到的“滑动”指在数据流中被接收的比特的暂时移动。例如,通过删除固定的比特数,数据流中的比特可以被用所述固定的比特数滑动。然而,这仅仅是数据流如何可以被滑动的一个例子,并且本发明的实施方案未被限制在这个方面中。
简单地说,本发明的一个实施方案涉及在数据流中同步被接收的块数据的一种方法和设备,其中所述数据流在设定的数据字增量上被接收。在多个连续的数据字增量的每一个中的同步标题可以在每个连续的固定字增量的设定部分的公共位置中被检测。响应于在被接收的数据字增量的设定部分的公共位置中检测所述同步标题的缺乏,所述数据流可以被滑动固定的比特数量。然而,这仅仅是一个实施方案的例子,并且在这些方面本发明的其它实施方案未被限制。
图1显示根据本发明的一个实施方案的在数据通道中两点之间传输数据的系统10。数据收发信机12可以通过媒体依赖接口(MDI)22传输数据到一个传输媒体或者从一个传输媒体接收数据。例如,数据收发信机12可以包括一个物理媒体附件(PMA)设备25、物理媒体依赖(PMD)设备26和一个物理编码子层(PCS)设备24,以便根据IEEE标准802.3ae-2002,条款48到51与一个光学传输媒体通信。
系统10还可以包括一个媒体接入控制(MAC)设备14以便通过诸如根据IEEE标准802.3ae-2002,条款46形成的10吉比特MII(XGMII)20的媒体独立接口(MII)与数据收发信机12通信。MAC设备14还可以被耦合到几种类型的输入/输出系统之一,例如,一个多路复用数据总线或一个交换结构。然而,这些仅仅是MAC设备如何可以被与一个通信平台集成的例子,并且本发明的实施方案未被限制在这个方面。
通过诸如根据IEEE标准802.3ae,条款47和48形成的10吉比特附件单元接口(XAUI)16的一个串行数据链路,MAC设备14和PCS设备24可以被耦合到数据收发信机12。XAUI 16可以被耦合在第一和第二XGMII扩展器子层(XGXS)电路18之间。通过在一个底板配置中伸展到大约50cm的迹线(trace),所述第一和第二XGXS电路18可以被耦合在一个打印电路板上。然而,这仅仅是MAC设备如何可以通过一个数据链路被耦合到数据收发信机的例子,并且本发明的实施方案未被限制在这些方面中。在一个可替代的实施方案中,例如,PCS设备24可以在一个与XAUI或XGXS设备无关的XGMII上直接被耦合到一个MAC设备。此外,这些仅仅是MAC设备如何可以被耦合到数据收发信机的例子,并且其它的实施方案未被限制在这个方面。
在被表示的实施方案中,XGXS电路18可以在多个数据通道中通过XAUI 16传输数据,其中每个数据通道以一个朝向或者离开数据收发信机12的特殊的方向传输数据。在被表示的实施方案中,在一个时间周期中在不同的通道上被传输到XGXS电路18的数据可以被重新结合。因此,XGXS电路18可以抗扭斜(deskew)在不同的数据通道上被传输的数据以保持在所述不同的数据通道上被接收的数据的正确对准。
图2显示根据图1中被显示的系统的实施方案在一个PCS设备64和一个PMA设备52之间的一个接口。PMA和PCS设备52和64可以在不同的半导体器件中被形成。可替代地,PMA和PCS设备52和64可以在一个公共半导体器件中被形成。PMA设备52包括一个输出接口68以便从一个串行数据流中提供一个固定宽度数据字(例如,如被表示的一个16比特字)。PCS设备64包括一个输入接口66以便在离散间隔上从所述输出接口接收所述固定宽度数据字。
根据一个实施方案,PMA设备52可以输出不对准的数据帧到PCS设备64。例如,66比特数据帧可以被以16比特数据字的方式提供给接口66。每个数据帧可以包括一个被与一个两比特同步标题连接的64比特数据块部分。因此,一个两比特同步标题可以分开在接口66上以16比特增量的方式被接收的连续的66比特帧。
图3显示根据在图1中被显示的系统的实施方案的一种数据接收机。如上面在图2中所讨论的,PMA设备112可以以16比特字增量的方式给PCS设备124提供66比特数据帧。PCS设备124可以包括一个齿轮箱部分142以便接收所述16比特字,并且包括一个解码部分130以便按照在IEEE标准802.3ae-2002的条款49中规定的来给XGMII120提供以太网帧。基于两比特宽同步标题,块同步部分140可以识别所述66比特数据帧。随后,解扰码部分132可以解扰码所述64比特数据块部分以便按照在IEEE标准802.3ae-2002的条款49中规定的来给所述解码部分130提供被解扰码的数据。
根据一个实施方案,在每个数据间隔上,齿轮箱部分142可以从接收自PMA部分112的所述16比特字提供一个66比特数据字到所述块同步部分140。例如,齿轮箱部分142可以从由连接来自所述被接收的16比特数据字的比特形成的数据流提供所述66比特数据字(例如,由连接四个被接收的16比特数据字的比特和第五个被接收的16比特数据字的两比特部分构成一个66比特字)。在提供所述66比特数据字中,响应于来自块同步部分140的一个信号,齿轮箱部分142可以在所述被接收的数据流(也就是来自所述被连接的16比特数据字的数据流)中选择性地滑动设定的比特数量。例如,齿轮箱部分142可以截断或丢弃在构成所述66比特数据字中被使用的数据流的一个固定部分。
图4和图5中的状态图显示根据图3中显示的块同步部分140的一个实施方案的在一个PCS设备上同步接收数据块的过程。一个复位事件(例如,一个加电事件)可以转移到无条件转移到FRAME_ALIGN状态204的LOCK_INIT状态202。如参考图5所讨论的,所述FRAME_ALIGN状态204可以在从齿轮箱部分142接收的66比特数据字的公共位置中检测两比特同步标题的位置。基于在每个66比特数据帧中被检测的所述同步标题的位置,一个64比特数据块可以被从所述66比特数据帧提取。
状态206到214涉及监控设定数量的连续的66比特数据帧(例如,64个连续的66比特数据帧)的误码率(BER)。在每个连续的66比特数据帧中的同步标题可以在状态208被测试。如果设定数量的连续的66比特数据帧中的每一个在无同步标题误差的情况下被接收,则所述同步标题的位置可以在状态214被验证。如果一个无效的比特同步标题在状态208被检测,则状态210可以增加无效同步标题检测的计数,并且如果小于已经被测试的连续的66比特数据帧的设定数量,则选择性地返回到状态208。如果所述设定数量的连续66比特数据帧已经被测试并且无效同步标题检测数量低于一个阈值(例如,在0和16之间),则状态212和212将转移到状态206。如果无效同步标题的阈值在所述设定数量的连续的66比特数据帧中被检测,则所述帧定位过程通过从状态210转移到204被启动。
图5中的状态图显示根据在图4中显示的过程中的状态204的实施方案,对准66比特数据帧的过程。状态252可以被从来自状态202的转移启动(图4)。根据一个实施方案,状态256尝试在设定数量的连续的66比特数据字(例如,如现在被表示的实施方案中显示的64个连续的数据字)的每一个中检测一个两比特同步标题的存在。所述同步标题可以包括一个设定的位模式,例如,“10”或“01”。然而,这些仅仅是可以在一个数据帧中被用作同步标题以便标记一个数据帧开始的位模式的例子,并且本发明的实施方案未被限制在这些方面。
状态256可以在每个连续的66比特数据字的一个设定部分或窗口的公共位置中搜寻所述同步标题的存在,而不是在全部66个比特数据字中搜寻所述同步标题(一次一个同步标题位置)。现在被表示的实施方案中,例如,状态256可以只尝试在设定数量的66比特数据字中的每一个的前16比特中的公共位置中检测所述同步标题的存在。例如,对于一个两比特同步标题,所述同步标题的公共位置可以在所述16比特窗口中的16个位置中的任何一个位置。
如果在设定数量的66比特数据字中的每一个的16比特窗口的相同位置检测到所述同步标题,则所述数据帧的对准可以在状态258被确定。一个输出值“对准_输出”可以代表在每个66比特数据字中同步标题的公共位置,由解扰码部分132(图3)用于在66比特数据字的数据流中识别64个比特数据块。
状态256还可以在一个或多个设定数量的66比特数据字的窗口的公共位置中检测所述同步标题的缺乏。例如,通过未能在设定数量的66比特数据字的每一个的前16比特的相同位置中检测到所述同步标题的存在,状态256可以检测到所述同步标题的缺乏。因此,状态256可以在任何所述66比特数据字的公共位置中检测到所述同步标题的缺乏。响应于检测到所述同步标题的缺乏,到状态260的转移随后可以导致块同步部分140提供一个滑动信号到齿轮箱部分142。响应于所述滑动信号,齿轮箱部分142可以用设定数量的比特(例如,相当于用于定位一个同步标题的窗口长度的16个比特)滑动所述被接收的数据流(例如,被用于构成所述66比特数据字的数据流)。
通过根据所述窗口的大小滑动所述数据流,状态256可以在后来的设定数量的连续的66比特数据字(例如,后来的64个连续的66比特数据字)的每一个的下一个16比特窗口部分中搜寻所述同步标题。同时,状态256可以继续在被从齿轮箱部分142接收的每个66比特数据字的前16比特的窗口中搜寻所述同步标题,响应于在状态260的滑动,所述数据流已经被16个比特移动。如果一个代表所述同步标题的比特顺序在设定数量的66比特数据字的每一个中的16比特窗口的一个以上的位置被检测到,则数据字计数器“sh_cnt”可以被复位为0以便能够测试另一个设定数量的连续的66比特数据字。
尽管本发明实施方案的例子已经被表示和描述,但是本领域技术人员应该理解,在不背离本发明的真实范围的情况下,各种其它的修改可以被进行,并且等价物可以被代替。另外,在不背离在此被描述的本发明概念的情况下,很多修改可以被进行以便使得一个特定情况适合于本发明的示教。因此,本发明未被限于被公开的特殊的实施方案,而是本发明包括落在附加权利要求书的范围内的全部实施方案。