用于实现有损协议的无损包间间隙的系统和方法与流程

文档序号:19535904发布日期:2019-12-27 15:53阅读:361来源:国知局
用于实现有损协议的无损包间间隙的系统和方法与流程

本公开一般涉及通信系统和方法,且更具体地,涉及物理编码子层(pcs)协议。



背景技术:

某些通信协议要求或限定由发射侧媒体访问控制(mac)发送的最小数量的包间间隙(ipg)。作为一个实例,ieee以太网要求由发射mac发送的最小ipg为12字节。当业务遍历协调子层(rs层)和物理编码子层(pcs层)时,12字节的ipg可以减少到最小值,业务沿着此点被发射到媒体相关接口(mdi)。当业务遍历到远端网络远程装置时,需要这种ipg损失的最小降级阈值以促进端到端的互操作性。作为一个更具体的实例,对于mii(10m/100m)和gmii(1g)以太网,发射mdi处的最小ipg应该是大约11字节。作为另一个实例,对于xgmii,发射mdi处的最小ipg应该是大约9字节。



技术实现要素:

在一个方面中,本申请涉及一种通信装置,其包括:至少一个数据端口,其经配置以促进依照通信协议的经由通信网络的数据传输或接收;以及无损包间间隙(ipg)电路,其经配置以检测数据流内的ipg间隔,并且将所述ipg间隔中的空闲列与填充列交换,所述填充列含有描述对所述ipg间隔进行的操纵的信息。

在另一方面中,本申请涉及一种用无损包间间隙(ipg)电路处理数据流的方法,所述方法包括:分析所述数据流;检测所述数据流内的包间间隙ipg间隔;以及将空闲列与填充列交换,所述填充列含有描述对所述ipg间隔进行的操纵的信息。

在另一方面中,本申请涉及一种数据传输系统,其包括:第一端口,其包括:第一mac,其经配置以根据第一通信协议操作;第二mac,其经配置以根据与所述第一通信协议不同的第二通信协议操作;映射电路,其经配置以将从所述第二mac接收的数据转换为所述第一通信协议;以及无损包间间隙(ipg)插入电路,其经配置以在数据流的ipg间隔中检测预定数量的连续空闲列,并且响应于此,从所述ipg间隔移除所述预定数量的连续空闲列并进一步将另外的空闲列与填充列交换;第二端口,其包括:第三mac,其经配置以根据所述第一通信协议操作;第四mac,其经配置以根据所述第二通信协议操作;第二映射电路,其经配置以将针对所述第四mac接收的数据从所述第一通信协议转换为所述第二通信协议;以及无损ipg移除电路,其经配置以检测所述填充列,将所述填充列与空闲列交换,并且进一步将所述预定数量的连续空闲列重新插回到所述ipg间隔中。

附图说明

结合附图描述本公开,附图不一定按比例绘制:

图1是描绘了根据本公开的至少一些实施例的数据传输系统的框图;

图2是描绘了根据本公开的至少一些实施例的数据传输系统的另外的细节的框图;

图3是描绘了根据本公开的至少一些实施例的数据传输系统的另外的细节的框图;

图4是描绘了根据本公开的至少一些实施例的数据传输系统的另外的细节的框图;

图5是描绘了根据本公开的至少一些实施例的数据传输系统的发射侧的框图;

图6是描绘了根据本公开的至少一些实施例的数据传输系统的接收侧的框图;

图7是描绘了属于在根据本公开的至少一些实施例的数据传输系统的发射侧上处理的数据流的一系列数据块的框图;

图8是描绘了在根据本公开的至少一些实施例的数据传输系统的发射侧上操作的无损ipg功能的流程图;

图9是描绘了属于在根据本公开的至少一些实施例的数据传输系统的接收侧上处理的数据流的一系列数据块的框图;和

图10是描绘了在根据本公开的至少一些实施例的数据传输系统的接收侧上操作的无损ipg功能的流程图。

具体实施方式

随后的描述仅提供实施例,并且不旨在限制权利要求的范围、适用性或配置。相反,随后的描述将为本领域技术人员提供用于实现所描述的实施例的有利描述。应当理解,在不脱离所附权利要求的精神和范围的情况下,可以对元件的功能和布置进行各种改变。

从以下描述中可以理解,并且出于计算效率的原因,系统的组件可以布置在分布式组件网络内的任何位置,而不会影响系统的操作。

此外,应当理解,连接元件的各个链路可以是有线、迹线或无线链路或其任何组合,或能够将数据提供和/或传送到连接元件和从连接元件提供和/或传送数据的任何其它已知或以后开发的元件。例如,用作链路的传输媒体可以是用于电信号的任何合适的载体,包含同轴电缆、铜线和光纤、pcb上的电迹线等。

如本文使用,短语“至少一个”、“一或多个”、“或”和“和/或”是开放式表达,其在操作中既可以是连接的,又可以是分离的。例如,表达“a、b和c中的至少一个”、“a、b或c中的至少一个”、“a、b和c中的一或多个”、“a、b或c中的一或多个”、“a、b和/或c”和“a、b或c”中的每一个是指单独的a、单独的b、单独的c、a和b一起、a和c一起、b和c一起、或a、b和c一起。

术语“一个(a/an)”实体是指一或多个这种实体。因此,术语“一个”、“一或多个”和“至少一个”在本文中可以互换使用。还应注意,术语“包括”、“包含”和“具有”可以互换使用。

如本文使用,术语“自动的”及其变体是指在执行过程或操作时在没有实质性人为输入的情况下完成的任何过程或操作。然而,如果在执行过程或操作之前接收到输入,即使过程或操作的执行使用了实质性或非实质性人为输入,过程或操作也可能是自动的。如果此输入影响过程或操作的执行方式,则人为输入被视为是重要的。同意过程或操作的执行的人为输入不被视为是“实质性的”。

如本文使用,术语“确定”、“估算”和“计算”及其变体可以互换使用,并且包含任何类型的方法、过程、数学运算或技术。

本文将参考作为理想化配置的示意图的附图来描述本公开的各个方面。

除非另外定义,否则本文使用的所有术语(包含技术和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。将进一步理解,如在常用词典中定义的那些术语应被解释为具有与其在相关领域和本公开的背景中的含义一致的含义。

如本文使用,单数形式“一个(a/an)”和“所述(the)”也旨在包含复数形式,除非上下文另有明确说明。将进一步理解,当在本说明书中使用时,术语“包括(comprise/comprises/comprising)”指定所述特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或加入。术语“和/或”包含一或多个相关所列项目的任何和所有组合。

现在参考图1-10,将描述用于实现数据传输和协议依从性的各种系统和方法。虽然将结合使用特定通信协议(例如,以太网)促进通信来描述特定实施例,但是应当理解,本公开的实施例不限于此。例如,本文描述的方法和系统可以结合限定最小ipg大小(例如,以字节、列等为单位)或类似包类型的任何类型的通信协议来使用。

通常引入ipg减少的问题是因为某些协议要求对准标记(am)以固定的空间或间隔周期性地插入到业务中。am有助于促进系统的发射侧和接收侧之间的端口划分(delineation)。为了保持恒定的业务流率,pcs有时要求ipg应与插入的am的量成比例地移除/删除。如果不小心将ipg修复回最小阈值量,则本ipg移除/删除可能导致灾难性事件。

本公开的一个方面是提供一种无损ipg功能/电路,其在发射和接收pcs数据路径中的业务(例如,数据流)上串联地操作。在一些实施例中,在发射侧上,当删除/移除xgmiiidle列以为am插入腾出空间时,在idle删除开始之前的xgmiiidle列被标记有在当前ipg间隔内删除的xgmiiidle列的数量总计数。标记的xgmiiidle列被替换为例如专有的ieee序列有序集(即,当前的保留ieee802.3序列有序集),其中xgmii八位字节{3,2,1,0}=||qn||={{1'b0,<删除计数>},{1'b0,<删除计数>},{1'b0,<删除计数>},0x19c}。在一些实施例中,序列有序集列||qn||可以对应于含有描述对ipg间隔进行的操纵(例如,通过描述已经从ipg间隔删除的idle列的数量<n>)的信息的填充列。

继续上述非限制性实例,在接收侧上,在检测到xgmii||t||(终止)列之后,搜索所有后续xgmiiipg列(例如,idle列和序列有序集)以检测序列有序集||qn||={{1'b0,<删除计数>},{1'b0,<删除计数>},{1'b0,<删除计数>},0x19c}。在检测到||qn||时,提取“删除计数”,并且用xgmiiidle列替换序列有序集。然后,xgmiiidle列插入功能使用“删除计数”以在当前ipg间隔期间插入n(<删除计数>)个xgmiiidle列。

换句话说,本公开的实施例提供了一种无损ipg功能或电路,其通过标记发射ipg并使用标记对接收业务执行反相来在发射和接收pcs数据路径中的xgmii业务上串联地操作,以便完全恢复原始txmac/rsipg间隔。

现在参考图1,将根据本公开的至少一些实施例描述第一数据传输系统100的另外的细节。数据传输系统100被示出为包含两个通信装置108,其中每个通信装置与通信网络104连接。通信装置108可以被认为经由通信网络104彼此通信地联接。尽管通信装置108可以被作为任何类型的机器或组件集合提供,但是通信装置108的一些非限制性实例包含移动电话、智能电话、个人计算机(pc)、膝上型计算机、电话、平板计算机、服务器、交换机或数据存储装置等。应当理解,一或两个通信装置108可以是具有用户界面的用户装置(例如,由用户携带和使用的装置)。可替代地,一或两个通信装置108可以是服务器、交换机或缺少稳健用户界面的其它类型的机器。换句话说,通信装置108可以对应于能够经由通信网络104与另一机器通信的任何类型的机器。

通信网络104可以对应于任何类型的通信总线、通信装置集合、其组合等。作为一个实例,通信网络104可以对应于基于包的通信网络。甚至更具体地,通信网络104可以对应于基于ip的通信网络,并且可以使用通信协议(例如,以太网协议)。应当理解,通信网络104不一定需要限于基于以太网的通信网络,而是使用任何类型的通信协议或通信协议的组合的任何互连的计算装置集合可以有资格作为通信网络104。通信网络104可以使用有线和/或无线通信协议。

现在参考图2,将根据本公开的至少一些实施例描述数据传输系统200的另外的细节。数据传输系统200可以被作为通信装置108的一部分,作为通信装置108的组件的一部分或作为通信网络104内的组件的一部分提供。作为一个非限制性实例,系统200可以作为通信装置108内的联网适配器的一部分提供(例如,实现经由网络104的通信的通信装置108的组件)。因此,系统200可以在主机装置内的网卡或网络板上提供。在一些实施例中,系统200经配置以促进数据从一个通信装置108到另一个通信装置108的转移。

系统200被示出为包含发射机mac(txmac)204、发射机pcs(txpcs)208、接收机pcs(rxpcs)212和发射机phy(txphy)216。txmac204被示出为包含rs层。第一数据路径220被示出为将txmac204与txpcs208连接。第一数据路径220可以承载第一类型的数据业务。作为一个非限制性实例,第一数据路径220可以将xgmii业务从txmac204承载到txpcs208。在第一数据路径220上流动的xgmii业务可以具有任意数量的各种大小(其范围为第一阈值到第二阈值)的ipg间隔。作为一个非限制性实例,如果符合ieee802.3标准(例如,发射mac提供最小12字节的ipg),则由于赤字空闲计数器(dic),xgmii业务每ipg间隔可以承载介于9字节和15字节之间的ipg。

txpcs208可以处理从txmac204接收的数据业务,并且对接收的数据业务执行am插入过程。作为执行本am插入过程的一部分,txpcs208可以从ipg间隔移除一或多个ipg列。可以要求txpcs208插入am间隔以促进在通信网络104的接收侧处的端口划分。如本文将进一步详细讨论,无损ipg功能/电路可以通过用适当的信息标记传输的ipg间隔来对流过数据路径220的数据进行操作,所述适当的信息将允许接收侧上的对应无损ipg功能/电路(例如,处理数据路径228上的数据)标识标记并完全恢复被移除的ipg列以容纳am插入。在通信网络104的两侧上操作的无损ipg功能/电路有助于确保两个路径220、228处的xgmii业务是相同的。如本文将进一步详细讨论,无损ipg功能/电路可以包含无损ipg插入电路(在发射侧上)和对应无损ipg移除电路(在接收侧上)的组合。这些对应组件可以被统称为无损ipg功能或无损ipg电路(以下通常称为无损ipg功能以便于参考),但是在不脱离本公开的范围的情况下,发射或接收侧上的每个单独组件也可以被称为无损ipg电路或无损ipg功能的一部分。

在一些实施例中,txpcs208和rxpcs212之间的系统接口224每ipg间隔可以承载违反最小ipg阈值量的数据业务。这是可接受的,因为系统接收侧处的无损ipg功能将能够恢复先前在系统发射侧处移除的ipg列。系统接收侧处的无损ipg功能可以位于rxpcs212内或紧跟在rxpcs212之后,以确保放置在mdi232上的数据业务符合所采用的通信协议(例如,保持了适当的ipg间隔侧)。

现在参考图3,将根据本公开的至少一些实施例描述数据传输系统300的另外的细节。系统300可以类似于系统100和/或200。系统300的视图具体地示出了第一端口asic304和第二端口asic316,它们经由它们相应的phy308、312和网络接口328彼此通信。网络接口328可以与图2中所示的mdi232类似或相同。同样地,phy308、312可以与图2中所示的txphy216类似或相同。此外,在不脱离本公开的范围的情况下,asic304、316可以对应于mac,例如mac204。

图3有助于示出数据传输系统300的各个时钟域并且描绘网络接口328的另外的细节。特别地,在端口asic304和txphy308之间示出了第一系统接口320。第一系统接口320可以对应于usxgmii-m系统接口。如上所述,网络接口328可以对应于mdi的一个实例。在一些实施例中,网络接口328可以对应于铜mdi,但是在不脱离本公开的范围的情况下,可以使用任何类型的mdi或媒体接口。

网络接口328被示出为包含多条信号线324a-n。线324的数量n可以取决于系统300内使用的通信协议而变化。每条线324可以经配置以将不同的信号从系统300的传输侧(例如,phy308)承载到系统300的接收侧(例如,phy312)。

phy312被示出为通过另一个系统接口320连接到端口asic316。系统300的接收侧上的系统接口320可以与系统300的发射侧上的系统接口320类似或相同,但是不需要此配置。

发射侧被示出为使用第一时钟域332操作,所述第一时钟域与接收侧操作的第二时钟域336分开。时钟域332、336由网络接口时钟域340分开。在一些实施例中,每个时钟域可以彼此几乎同步,但是可以由不同的处理器或定时晶体驱动,这可能具有与其它时钟域的处理器或定时晶体相比略微不同的定时特性。由于时钟域332、336的差异,可以在传输系统的接收机侧上提供时钟数据恢复(cdr)电路。在将来自多个端口的数据放置到单个线路上的系统中,可以使用am来促进接收机的端口划分。作为一个非限制性实例,可以以固定间隔将四个am(例如,am0、am1、am2、am3)连续地插入作为一个群组。在一个简单的实例中,在am3之后的前66位编码/扰码块被分配到端口0,随后其它端口的剩余块按升序进行;然后重复所述顺序。

现在参考图4,将根据本公开的至少一些实施例描述数据传输系统的另外的细节。系统中描绘的组件可以对应于phy中包含的特定组件。例如,根据本公开的至少一些实施例,发射侧组件集404和接收侧组件集408可以各自包括促进数据流的发射处理和接收处理的多个组件。在不脱离本公开的范围的情况下,组件集404、408可以作为phy216、308、312的一部分,作为asic304、316的一部分和/或作为mac204的一部分提供。

发射侧组件集404被示出为包含多个发射端口mac412。成对的发射端口mac412可以与速率适配电路416连接,所述速率适配电路经配置以移除数据包的复制并执行其它已知速率适配过程。例如,可以复制数据以将一个端口置于较慢的速率(使得所有端口的所有速率匹配端口mux和成帧电路424)。在一些实施例中,发射端口mac412中的第一个可以使用第一协议(例如,xgmii)与速率适配电路416通信,而发射端口mac412中的第二个可以使用第二协议(例如,gmii(10m/100m/1g))与速率适配电路416通信。速率适配电路416使单个端口420能够使用几种不同类型的协议之一与发射端口mac412共享信息,并且有助于匹配各个端口的发射速率。发射侧组件集404还被示出为包含多个端口pcs420(例如,端口0到n-1中的每一个的一个端口pcs)。多个端口pcs420连接到公共端口多路复用器(mux)和成帧电路424。端口mux和成帧电路424可以经配置以在不同发射端口pcs420之间分配不同的数据包。

端口mux和成帧电路424可以经配置以从串行器/解串器(serdes)电路428接收数据流,所述串行器/解串器电路连接到接收输入432。因此,在输入432处接收的任何数据流可以首先由serdes428处理,然后被提供到端口mux和成帧电路424。此后,端口mux和成帧电路424在各个端口pcs420之间分配数据业务。

接收侧组件集408可以经配置以经由自动协商电路或电路集440与发射侧组件集404通信。自动协商电路或电路集440可以经配置以促进发射侧404上的速率适配电路416和接收侧408上的速率适配电路416之间的同步。接收侧408上的各个组件可以类似于发射侧404上的那些;然而,组件的连接可以相对于发射侧404反向。特别地,接收端口mac412可以经由速率适配电路416向端口pcs420提供数据流。此外,每个速率适配电路416可以具有与其连接的一对接收端口mac412。第一接收端口mac412可以使用xgmii与速率适配电路416通信,而第二接收端口mac412可以使用gmii(例如,10m/100m/1g)与速率适配电路416通信。换句话说,在不脱离本公开的范围的情况下,连接到特定速率适配电路416的端口mac412可以使用不同的协议来与速率适配电路416通信。各个端口pcs420可以连接到公共端口mux和成帧电路424,其将各个输入组合到输出线436的serdes428上。

现在参考图5,将根据本公开的至少一些实施例描述端口asic504的另外的细节。端口asic504可以对应于传输端口asic504,并且在不脱离本公开的范围的情况下,可以与端口asic304、316和/或txmac204类似或相同。

根据本公开的至少一些实施例,传输端口asic504可以包含促进数据流传输的多个组件。特别地,传输端口asic504可以包含多个端口508a-n以及经配置以处理来自各个端口508a-n的信息的多个另外的电路。端口508a-n中的每一个可以设置有第一传输(tx)mac512a和第二txmac512b。第一txmac512a可以直接与复制电路520连接,而第二txmac512b可以经由映射电路516与复制电路520连接。映射电路516可以经配置以将来自第二txmac512b的输入映射为与第一txmac512a一致的格式。作为一个更具体但非限制性的实例,第一txmac512a可以利用xgmii协议以与复制电路520通信,而第二txmac512b可以利用10m/100m/1g通信协议或与第一txmac512a不同的一些其它通信协议。

映射电路516实现了第二协议到第一协议的映射。更具体地,映射电路516可以经配置以执行协议映射,所述协议映射使复制电路520能够以通用格式(例如,第一协议格式或第二协议格式)从txmac512a、512b接收数据流。作为一个更具体的实例,映射电路516可以经配置以执行参考时钟转换、频率转换、包插入、包移除或其组合,以在每个端口508a-n内将第一协议映射到第二协议。

复制电路520可以经配置以对从一或两个txmac512a、512b接收的数据流执行数据复制,以确保任何特定端口的数据速率匹配其它端口508的数据速率。特别地,复制电路520可以以预定次数从txmac512a、512b再现数据的数据包、块、位或其它表示,以适当地减慢数据传输速率。复制电路520可以取决于所采用的通信协议以10到1000中的任何次数再现数据。

复制电路520将其输出提供给无损ipg功能的组件。具体地,复制电路520的输出可以被提供给无损ipg插入电路524。根据一些实施例,无损ipg插入电路524可以经配置以对发射mac/rsxgmii业务进行操作。更具体地,无损ipg插入电路524可以经配置以从特定ipg间隔检测和删除一或多个||i||列。更具体地,在给定的ipg间隔中,无损ipg插入电路524可以设置有删除<n>个连续xgmii||i||列的机制(例如,时钟补偿fifo缓冲器),以便满足在发射pcs数据路径的最末端处周期性地插入am的速率。在xgmii||i||列删除事件结束时,在删除事件开始之前的xgmii||i||列可以用含有删除计数的xgmii||qn||(例如,序列有序集)列替换。作为一个非限制性实例,||qn||={{1'b0,<删除计数>},{1'b0,<删除计数>},{1'b0,<删除计数>},0x19c}。使用||qn||列的插入来向接收电路传送必须插入检测到||qn||列的ipg中的xgmii||i||列的总数,从而完成无损ipg功能。

在一些实施例中,无损ipg插入电路524的输出示出了插入有||qn||列的减少的ipg间隔。无损ipg插入电路524在本文被称为“插入电路”,因为电路524“插入”序列有序集列||qn||。然而,应当理解,由于移除了idle列||i||,电路524也可以被认为执行“移除”功能,但是为了便于讨论,电路524将被称为无损ipg移除电路524。然后,可以将电路524的输出提供给每个端口508a-n内的pcs层528。pcs层528可以对每个端口508a-n内的数据进行编码,然后取决于所使用的协议,以预定大小(例如,64位到66位)的批量将数据发射到块交织电路532。每个端口508a-n的每个pcs层528将其输出提供给块交织电路532。在一些实施例中,块交织电路532以循环方式对从每个端口508a-n接收的数据进行交织,从第一端口508a开始,然后是第二端口508b,直到它到达最后一个端口508n。在数据已经从最后一个端口508n交织之后,块交错电路532返回到第一端口508a以从其接收下一批数据。块交织电路532使得来自多个端口(例如,2个、4个、6个、8个等)的数据能够经由单线/线路发射。此架构有助于最小化用于实现此数据传输的ic芯片的大小和/或降低与生产此ic芯片相关的总体硬件成本。

来自每个端口508a-n的数据由块交织电路532交织,然后提供给扰码器电路536,所述扰码器电路对所有接收的数据执行扰码操作。使用扰码器电路536来对数据进行扰码并使来自每个端口508a-n的所有数据看起来好像它来自单个mac。

在扰码操作之后,将扰码数据提供给am插入电路540。执行am插入过程以在数据传输系统的接收侧处实现端口划分。在一些实施例中,am插入电路540通过插入一或多个am间隔来操纵从扰码器电路536接收的数据流。每预定数量的块可以发生一次am插入。例如,am插入可以每16400个块发生一次。在asic504包含四个端口508a、508b、508c、508d(例如,其中n=3)的情况下,am插入电路540将插入四(4)个am,其中每个am之间具有16400个块的间隔。

将一或多个am插入数据流的过程可能导致从ipg间隔移除一或多个ipg列。am插入电路540的输出被提供给齿轮箱电路544,所述齿轮箱电路经配置以根据为传输线556限定的数据速率适当地转换数据以用于通过传输线556的最终传输。例如,齿轮箱544可以将具有特定时钟频率和特定位宽度的并行接口的数据流或数据流集合转换为具有不同时钟频率和不同位宽度的不同数量的数据流。用于传输线556(例如,mdi232)的传输频率可以取决于所使用的协议而变化。

齿轮箱544的输出被提供给传输缓冲器548,所述传输缓冲器适当地缓冲所接收的数据,直到数据准备好由serdes552处理。传输缓冲器548可以对应于任何类型的已知数据缓冲器并且可以使用任何类型的缓冲存储器。在一些实施例中,传输缓冲器548对应于fifo缓冲器并且以先进先出为基础进行操作。当然,可以使用其它类型的缓冲器,并且可以将任何类型的缓冲存储器装置用于传输缓冲器548。

serdes552经配置以对从传输缓冲器548接收的数据流执行最终数据串行过程。serdes552可以包含一或多个电路,例如移位寄存器电路、均衡电路、放大器电路、数模转换器电路、模数转换器电路、滤波器电路、数据锁存器。serdes552的输出被提供给传输线556以用于跨通信网络104的传输。

现在参考图6,将根据本公开的至少一些实施例描述端口asic604的另外的细节。端口asic604可以对应于接收端口asic604,并且可以与端口asic304、316类似或相同。

根据本公开的至少一些实施例,接收端口asic604可以包含促进数据流的接收和处理的多个组件。特别地,与发射端口asic504非常相似,接收端口asic604可以包含多个端口608a-n以及经配置以处理各个端口608a-n的信息的多个另外的电路。端口608a-n中的每一个可以设置有第一接收机(rx)mac612a和第二rxmac612b。第一rxmac612a可以直接与解复制电路620连接,而第二rxmac612b可以经由映射电路616与解复制电路620连接。

每个端口608a-n还被示出为包含无损ipg移除电路624。无损ipg移除电路624可以被认为是无损ipg功能,或者可替代地,无损ipg功能的组件。具体地,无损ipg移除电路624可以对应于在系统的发射侧处提供的无损ipg插入电路524的对应部分。因此,无损ipg移除电路624可以经配置以处理接收的数据流并使用由无损ipg插入电路524提供的信息以促进数据流的处理。

甚至更具体地,数据传输系统的发射侧插入一或多个am,因此,idle列在多个ipg间隔上被移除,以便为那些am腾出空间。因此,无损ipg插入电路524并非盲目地移除idle列,而是标记剩余的ipg列并进一步将已经移除的idle的总数通知接收侧。如上所讨论,无损ipg插入电路524标记剩余的xgmii列以告知接收侧需要重新插入多少个idle。这意味着,在保留了序列有序集列||qn||的无差错系统中,可能不需要补满(top-off)和ipg修复窗口。简单地说,无损ipg移除电路624使用由无损ipg插入电路524插入数据流的信息来执行其功能。与无损ipg插入电路524相反,电路624在本文被称为“移除电路”,因为电路624“移除”序列有序集列||qn||。然而,应当理解,由于idle列||i||的插入或重新引入,电路624也可以被认为执行“插入”功能,但是为了便于讨论,电路624将被称为无损ipg移除电路624。

在一些非限制性实施例中,无损ipg移除电路624经配置以对接收和解码xgmii业务进行操作,其中在特定ipg间隔中删除了<n>个||i||列,如||qn||列的存在所表示。当检测到xgmii||t||列时,搜索ipg间隔的剩余部分以检测xgmii||qn||序列有序集列。一旦检测到xgmii||qn||序列有序集列,提取删除计数数量<n>,并将xgmii||qn||列替换为xgmii||i||列。无损ipg移除电路624通过在用xgmii||i||列替换||qn||列之后插入<n>个||i||列来继续处理数据流。在一些实施例中,无损ipg移除电路624可以利用用于插入||i||列的机制,所述机制保持时钟补偿fifo的读指针并在输出处强制应用<n>个||i||列。一旦<n>个||i||列已经插入,则fifo以正常方式恢复输出和读指针的前进。

端口608a-n的某些组件可以类似于端口508a-n的类似命名的组件,只是端口608a-n的组件反向连接以执行端口508a-n的反向处理。例如,映射电路616将通信协议映射回第二协议,而映射电路516用于将通信协议从第二协议映射到第一协议(与另一mac使用的协议一致)。作为一个更具体但非限制性的实例,第一rxmac612a可以利用xgmii协议来与解复制电路620通信,而第二rxmac612b可以利用10m/100m/1g通信协议或不同于第一rxmac612a的一些其它通信协议。因此,映射电路616可以将协议从xgmii协议映射回10m/100m/1g。解复制电路620可以撤消由复制电路620提供的数据的复制。类似地,pcs层624可以对由pcs层528执行的编码进行解码。

如上所述,发射侧和接收侧上的端口可以经配置有无损ipg功能的组件。具体地,发射侧上的端口可以包含无损ipg插入电路,而接收侧上的端口可以包含无损ipg移除电路,其共同或单独地构成无损ipg功能。

在一些实施例中,无损ipg功能的功能性可以并入到pcs和/或数据复制/解复制电路中。然而,在每个端口608a-n接收数据之前,应当处理在接收线660处接收的数据流以使由传输端口asic504的其它组件执行的操作反向。具体地,接收端口asic604被示出为包含serdes656、齿轮箱652、接收缓冲器648、同步电路644、掉am电路640、解扰器电路636和块解交织电路632。在接收线660处接收的数据被serdes656解串(例如,并行化),然后提供给齿轮箱652,所述齿轮箱将来自接收线660的数据的所谓“齿轮比”调节到适当的速度和通道数量,以便由asic604的其它组件处理。作为一个非限制性实例,齿轮箱652可以将数据从32位数据流转换回66位数据流(而齿轮箱544将数据从66位数据流转换为32位数据流)。

齿轮箱652的输出被提供给接收缓冲器648,所述接收缓冲器可以是fifo缓冲器648的形式。在一些实施例中,接收缓冲器648是异步fifo缓冲器,其用作网络和接收端口asic604之间的时钟边界,其经配置以使用pcs628时钟域而不是网络时钟域操作。

来自接收缓冲器648的数据被提供给同步电路644。同步电路644利用由am插入电路540插入的各个am间隔,以基于每个端口适当地对准/同步数据。

在一些实施例中,am可以对应于具有预定格式(例如,“01”或“10”)的2位同步头,其有助于确保编码数据的边界被适当地保持并且促进端口划分。在发射侧处插入的am不在发射侧处编码,因此,提供了一种用于标识从不同发射端口508a-n接收的数据的边界(以用于与相应接收端口608a-n的最终对准)的快速有效的机制。在同步电路644已经处理了接收数据之后,掉am电路640移除先前由am插入电路540插入的那些am,从而仅留下编码数据以用于进一步处理。

然后,由解扰器电路636对数据流进行解扰。在一些实施例中,解扰器电路636将反向算法应用于由扰码器电路536应用的扰码算法。然后,解扰数据被块解交织器电路632解交织。块解交织器电路632将来自单个流的数据分配到多个端口608a-n上。在不脱离本公开的范围的情况下,端口608a-n之间的数据分配可以以循环方式发生(在发射侧处执行的交织过程之后)。

每个端口608a-n从块解交织器电路632接收数据,并利用pcs层628在将解码数据放置到无损ipg移除电路624并然后放置到解复制电路620之前对数据进行解码。此时,数据将被提供给不同的rxmac612a、612b,这取决于当前在每个端口608a-n处使用哪种协议。因此,在不脱离本公开的范围的情况下,每个端口608a-n可以支持多个协议。提供给适当的rxmac612a、612b的数据可以与由相应端口508a-n的相应txmac512a、512b提供的数据类似或相同。

现在参考图7和8,将根据本公开的至少一些实施例描述数据传输系统的发射侧上的无损ipg功能的操作的另外的细节。具体地,将描述无损ipg插入电路524的说明性操作以及在发射侧处执行无损ipg功能的方法800。将参考具有多个块的说明性数据流704来描述在发射侧上执行无损ipg功能的方法800。

方法800开始于无损ipg插入电路524对数据流704执行输入块分析(步骤804)。无损ipg插入电路524首先搜索ipg间隔(步骤808),然后搜索以检测当前检测到的ipg间隔中的大于最小预定ipg阈值的点(步骤812)。换句话说,无损ipg插入电路524正在分析输入业务以确定是否检测到具有大于预定大小的大小的ipg间隔。可替代地或另外地,无损ipg插入电路524可以搜索数据流704内的其它类型的列,并连同搜索ipg间隔和最终系列的连续||i||个列。如果询问808或812是否定答复,则方法800返回到步骤804。

然而,如果检测到满足询问812的要求的ipg间隔,则方法800继续,无损ipg插入电路524在当前ipg间隔内确定是否所有后续ipg列都被视为删除/移除候选项(步骤816)。这可以通过分析写/读指针的位置或相对于预定“理想”值的分离关系来确定。如果写/读指针分离不需要固定(例如,它们已经处于理想状态),则方法800返回到步骤804。如果指针不处于理想状态并且步骤816的询问是肯定回答,则根据需要或尽可能多地删除idle列,以便将指针固定或移动到它们理想的分离关系(步骤820)。说明性地,写/读fifo指针可以固定或前进到理想状态。在当前ipg间隔内的最终删除时,记录idle列的总数<n>(步骤824)。在idle列删除事件开始之前的前一ipg列被替换为xgmii||qn||序列有序集列(步骤828)。在一些实施例中,记录值<n>被插入xgmii||qn||序列有序集列。

如图7所示,数据流704可以包含多个数据块,所述数据块也可以被称为数据列或xgmii列。取决于所采用的通信协议,数据列可以包含多行。每种不同类型的数据列可以具有不同行的数据。作为一个非限制性实例,xgmii业务每列可以包含四个八位字节。换句话说,四个八位字节可以构成xgmii接口,其是一种称为xgmii列的替代方式。继续所述非限制性实例,可以在数据流704中找到的列的类型包含起始列||s||、源地址列||sa||、数据列||d||、终止列||t||和idle列||i||。可以理解,ipg间隔可以对应于驻留在终止列||t||和随后的起始列||s||之间的列或数据块的间隔。ipg间隔的大小可以取决于在任何特定时间点由数据流704承载的数据包的量而变化。idle列||i||被作为一种用于在接收侧处区分一个数据包和另一个数据包(例如,不同的数据集)的机制提供。

基于终止列||t||的格式,大多数通信协议可能要求至少两个idle列||i||跟终止列||t||之后。在一些实施例中,idle列||i||表示ipg大小为4字节(由于其中提供的四个空闲字符)。例如,如果通信协议的最小ipg间隔大小为9字节,则每个终止列||t||应该跟着至少两个idle列||i||(例如,两个idle列,其固有地提供八字节的空闲字符)。应当理解,ipg间隔可以大于最小值(例如,如果某些时间连续包之间不存在业务),但是最小ipg间隔大小用于限定idle列||i||的最小数量(或以字节为单位测量的最小ipg大小)不小于预定最小值。

从图7中可以看出,紧接在<n>个连续idle列708之前的idle列可以对应于用序列有序集列||qn||716替换的idle列||i||。所得的数据流可以对应于第一修改数据流712。可以通过最终删除/移除<n>个连续idle列||i||来进一步修改第一修改数据流712,以创建第二修改数据流720。

根据至少一些实施例,<n>个连续idle列||i||的n值可以取决于许多因素而变化。作为一个非限制性实例,n的值可以是至少二,从而确保至少两个idle列||i||在交换序列有序集列||qn||716的另一个idle列||i||之前被移除。这将意味着至少三个idle列||i||最终会在数据传输系统的接收侧处重新插入(例如,一个idle列||i||替换序列有序集列||qn||716,两个idle列||i||替换移除的<n>个||i||列)。在接收侧处强制重新插入至少三个idle列||i||将确保由无损ipg移除电路624输出的数据流将符合xgmii通信协议(或系统正在采用的任何通信协议)。然而,应当理解,n的值可以大于二。例如,n可以是大于或等于二的整数值。合适的n的值可以包含但不限于三、四、五、……十等。在一些实施例中,在给定的ipg间隔中,选择n的值以确保无损ipg插入电路524在给定的ipg间隔中自然地删除正确数量的idle列||i||,以满足在发射pcs数据路径的最末端处周期性地插入am的速率。

还应当理解,方法800应该基于每个端口执行。此外,只要数据流704流过发射端口,就可以重复方法800。因此,尽管未描绘,但是在完成步骤816之后,方法800可以返回到步骤804。

现在参考图9和10,将根据本公开的至少一些实施例描述数据传输系统的接收侧上的无损ipg功能的操作的另外的细节。具体地,将描述无损ipg移除电路624的说明性操作以及在接收侧处执行无损ipg功能的方法1000。将参考具有多个块的说明性数据流904来描述在接收侧上执行无损ipg功能的方法1000。

方法1000开始于无损ipg移除电路624执行输入数据流904分析(步骤1004)。在一些实施例中,数据流904对应于解码xgmii数据流。无损ipg移除电路624扫描数据流904以查找序列有序集列||qn||的存在(步骤1008)。如果未检测到此列,则方法返回到步骤1004,并且分析继续。然而,如果检测到序列有序集列||qn||,则无损ipg移除电路624通过提取删除计数<n>来继续(步骤1012)。有效地,无损ipg移除电路624获得由对应的无损ipg插入电路524在列||qn||内提供的信息。

无损ipg移除电路624然后用idle列||i||替换序列有序集列||qn||(步骤1016)。在替换序列有序集列||qn||之后,无损ipg移除电路624紧跟在替换序列有序集列||qn||的idle列||i||之后插入<n>个||i||列(步骤1020)。本特定步骤可以导致重构数据流908的创建,所述重构数据流忠实地表示在系统的发射侧处处理的数据流704。在一些实施例中,本步骤可以涉及保持时钟补偿fifo的读指针并在输出处强制应用<n>个||i||列。在已经由电路624插入<n>个||i||列之后,允许fifo恢复正常输出和读指针的前进。

此后,方法1000结束或返回到步骤1004以继续数据流904的处理。此外,只要数据流904流过接收端口,就可以重复方法1000。

在说明书中给出了具体细节以提供对实施例的透彻理解。然而,本领域普通技术人员将理解,可以在没有这些具体细节的情况下实践所述实施例。在其它情况下,可以在没有不必要的细节的情况下示出公知的电路、过程、算法、结构和技术,以避免模糊所述实施例。

尽管本文已经详细描述了本公开的说明性实施例,但是应当理解,本发明构思可以以其它方式不同地实施和使用,并且除受现有技术限制之外,所附权利要求旨在被解释为包含此些变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1