分层/无损的分组抢先以减少流控制的基于分组的网络中的等待时间抖动的制作方法_4

文档序号:9602819阅读:来源:国知局
操作。如框2206中所描 绘,对于每个通道,基于在适用的LTP序列状态期间在该通道上接收的数据来计算CRC,并 且将CRC写入每通道的CRC寄存器,如CRC通道寄存器CRC-LO、CRC-L1、CRC-L2和CRC-L3 所描绘。在一个实施例中,这些寄存器中的数据被当前LTP的CRC计算结果覆写,使得CRC 通道寄存器仅存储最近处理的LTP的数据。在一个实施例中,四通道链路的按照通道的CRC 是12位CRC,该12位CRC是随着接收到每个通道的多个位而动态计算的。
[0136] 在框2208,计算所接收的LTP数据的CRC(RxCRC),并将其与发送的LTP中的Tx CRC进行比较。TxCRC是由发送端口 1800利用将被传输至接收机的LTP数据计算得到的, 并被附加至LTP的末端,如本申请中的各种LTP格式所示。接收机从所接收的LTP数据提 取了乂〇^,并将了1〇^与在接收到的1^?数据上计算出的1^〇^作比较。在决策框2210 中,确定接收到的TxCRC和计算出的RxCRC是否匹配。如果它们匹配,则认为该LTP良好, 并执行对LTP数据的正常处理,如框2212所描绘,并且该逻辑返回至框2204以处理接收到 的下一LTP。
[0137] 在图18a中所示的示例中,LTP4的TxCRC和RxCRC不匹配(CRC不匹配),这表 明LTP数据错误。链路数据错误可能源自各种链路状况,在此时,导致错误的特定链路状况 是未知的;已知的是接收的LTP数据与发送的LTP数据不同,因此接收的LTP具有错误数据 并且将不被进一步处理。不匹配的LTPCRC对应于决策框2210的"否"结果,导致该逻辑 继续至框2214,其中将LTP描绘为坏,并且在接收机状态图2350中通过RcvBadLTP来描绘。 响应于检测到坏的LTP,基本并行地发起并执行多个操作,如框2216 (在图22a中)、2218和 2220(在图22b中)中的每一个中的操作所描绘。
[0138] 如框2216中所描绘,按照通道或按照每个XFR组来存储对于坏LTP计算的按照通 道的CRC值。如果每个LTP的XFR的数量可被通道的数量整除,则按照通道来存储按照通 道的CRC值;否则,按照每个XFR组来存储它们。例如,对于具有三个活动通道和33个XFR 的链路,存储按照通道的CRC值,这是因为33/3= 11。反之,对于四通道或两通道,按照每 个XFR组来存储按照通道的CRC值(33/4 = 7. 5以及33/2 = 16. 5)。如果存储每个XFR组 的CRC,则在寄存器1814中存储接收LTP序列状态。
[0139] 在图24中示出了每个XFR组的CRC的示例。如所示,在四个通道上,计算按照通 道的CRC的XFR的数量并不相等;确切地说,通道之一对于每个标准检测LTP将接收9个32 位XFR(从而288位),而其它三个通道将接收8个32位XFR(从而256位)。此外,接收9 个32位XFR的通道将取决于LTP序列状态。如将在下文进一步详细讨论,通过将具有CRC 不匹配的LTP的每个XFR组的CRC与同一LTP的随后重传的每个XFR组的CRC作比较,所 存储的按照通道的CRC用于检测哪个或哪些通道产生错误。由于用于原始LTP传输的LTP 序列可能与用于重传LTP的LTP序列不同,所以可采用每个XFR组的CRC。每个XRF组的 CRC将导致比较在相同XFR上计算的CRC,而如果使用按照通道的CRC方案,则当操作具有 四个通道或两个通道的链路时,这样可能导致或可能不导致CRC计算在相同XFR上(四个 通道的链路时有25%的机会相同,两个通道的链路时有50%的机会相同)。
[0140] 如图24中所示,每个XFR组的CRC被标记为CRC-G0、CRC-G1、CRC-G2以及CRC-G3。 对哪些传送计算这些CRC将取决于通道和LTP序列状态。例如,对于第一LTP序列状态,从 在通道0上接收的9个乂?1?即0、4、8、12、16、20、24、28和32计算乂1?(:-60,而0?(:-61、0?(:-62 和CRC-G3的计算值将分别取决于对通道1、2和3描绘的8个XFR。在第二LTP序列状态 下,从通道1上的9个XFR计算CRC-G0,而CRC-GUCRC-G2和CRC-G3的计算值将分别取决 于对通道2、3和1描绘的8个XFR。如图所示,对第三和第四LTP序列状态使用了相似的方 法。
[0141] 在图18a中描绘的时间范围期间,LTP序列状态是1,从而CRC-G0、CRC-G1、CRC-G2 和CRC-G3分别是从通道0、1、2和3上对于LTP4接收的数据计算出的。在图18a和25中 示出了对于LTP的每个XFR组的CRC-G0、CRC-G1、CRC-G2和CRC-G3值的示例性计算结果,并 且分别是428、556、208和804。这些每个XFR组的CRC值被存储在寄存器CRC-G0、CRC-G1、 CRC-G2 以及CRC-G3 中。
[0142] 继续图22b中的流程图2200b,在框2218,将重传请求(RetryReqLTP1812)从接 收机返回至发射机,从而经由NxtRxLTP指针1810的当前值标识坏的LTP。在一个实施例 中,发送RetryReqLTP的顺序对,而在另一实施例中,发送单个RetrReqLTP。在该示例中, NxtRxLTP指针值指向重放缓冲器槽4,其存储LTP4 (坏的LTP)的数据。在图22c的流程 图2200c中示出了在重放模式下响应于接收RetryReqLTP而发起的发射机侧操作的细节。
[0143] 并且在框2216中检测到坏的LTP之后,在框2220中将LTP接收模式设置成"LTP 抛弃",从而导致接收的LTP(包括坏的LTP)被抛弃(丢弃)。在接收机状态图2350中,LTP 抛弃模式被描绘为LTA.RxTossing状态。虽然接收机工作在LTP抛弃模式下,但接收LTP, 计算按照通道的CRC并更新寄存器,执行LTPCRC错误检查以检测顺序LTPCRC错误,并且 丢弃LTP。以环形方式执行这些操作,以框222接收LTP来开始。如之前所述,执行框2206 和2208的操作,随后在决策框2224确定所接收的LTP是否具有CRC错误(TxCRC和RxCRC 不匹配)。虽然接收机工作在LTP抛弃模式下,但该逻辑被配置成检查顺序LTPCRC错误的 出现。例如,如果在进入LTP抛弃模式之后所接收的第一LTP具有错误,则已经发生了连续 错误。通过决策框2226描绘检测到连续错误的确定,如果对决策框2224的回答为"是",则 该逻辑继续至决策框2226。此外,在框2225中递增总的LTPCRC错误计数。(还应注意, 不论在正常模式还是在抛弃模式下,响应于检测到每个LTCCRC错误来递增总的LTPCRC 错误计数。)
[0144]CRC是数据完整性检查,被配置成检测所传输数据单元(诸如分组、帧等等)中的 错误。CRC的数学表述被选择成使得CRC将检测位传输错误,并且利用数字数据的二进制 本质,从而使得能够迅速地在二进制量上计算CRC。然而,CRC不是100%失效保护的。当 位错误的数量等于或超过CRC的汉明距离(Hammingdistance)时,CRC校验会无法检测错 误。用于网络结构的CRC的汉明距离典型地是4,这意味着它使用至少4个位错误来打开未 检测到错误的可能性(极其低的概率)。未检测到的链路错误导致称为"假分组接受"的情 况,意味着具有错误的分组通过了CRC校验(错误地)从而被接受以用于进一步处理。这 些未检测到的错误导致分组无记载数据损坏。
[0145]LTP的尺寸大约是1000位。在给定的平均误码率(BER)下,与错误在多个LTP上 随时间均匀分布的均匀的错误模式相比,如果错误在单个链路传送分组内猝发地(4个或 更多个)关联和出现,则未命中的检测的可能性更高。
[0146] 网络结构链路被设计成提供非常低但非零的BER。减小链路功率的期望提供允许 更高BER的动机,当功率减小时,BER趋向于提高。随着BER提高,未命中的错误检测的概 率升高。在一些时刻,该概率变得不可接受地高。结构内的许多链路上的BER是不均匀的。 链路典型地由多个通道组成,并且BER在给定链路之内的多个通道上可普遍地不同。在常 规方法下,当结构管理软件检测到运行在一些阈值BER的链路时,它被强制将该链路从结 构去除,以避免不可接受的高数据损坏概率。这是在不知道链路内的错误分布的情况下完 成的,并强制使用保守性的更小的BER阈值,该更小的BER阈值假定错误是相关的。此外, 链路的BER可能随时间漂移和/或降级,并变得不可接受地高。结构管理器不能总是实时 地连续监测所有链路;因此,它可能花费一些时间来检测正在过高的BER下工作的链路。在 该时间期间,该结构可能遇到数据损坏。
[0147] 对间距紧密的位错误的一个校验是通过使用决策框2224中的LTPCRC错误校验 和决策框2226中的顺序LTPCRC错误校验。虽然CRC可用于标识检测到至少一个错误,但 它们未标识存在多少错误。然而,顺序LTPCRC错误表明至少两个错误存在于顺序的LTP 中。在一个实施例中,响应于检测到顺序LTPCRC错误,在框2228将一对RetrainReqLTP 发送至发射机,从而导致流程图逻辑退出以重新训练该链路,如退出框2232和发射机状态 机2300中的RcvRetrainReq所描绘。在一个实施例中,该重新训练是轻量的重新训练,它没 有初始化或重新初始化链路时采用的链路训练操作那么复杂。在训练或重新初始化期间, 该链路的正常活动传送状态是离线的,这意味着正常的数据传送操作暂时不可用,直到在 链路训练或链路重新初始化完成之后该链路返回至其正常活动传送状态。此外,接收机设 置一些内部指标以指示它在框2230发送了RetrainReqLTP,并且在框2231重置了链路连 续错误计时器,链路连续错误计时器使用的进一步细节在图22e中示出并在下文中讨论。 在完成训练序列之后,该逻辑返回至流程图2200b的框2218和2220,其中将重试请求LTP 发送回发送侧,并且在接收机处重新进入LTP抛弃模式。
[0148] 响应于接收重试标记LTP,退出LTP抛弃模式循环,并且相应地,如果接收到的LTP 不具有CRC错误,则该逻辑继续至决策框2234,其中确定在LTP抛弃模式下接收到的每个良 好的LTP都是重试标记。在接收重传请求之前,发射机将继续按顺序传输LTP,并且这些LTP 将与已经在传输中的LTP(若存在)一起被接收。如图22c的流程图2200c中的框2238、 2240和2242所示,在接收到重传请求(RetryReqLTP)之后,发射机将发出重试标记,随后 是重放缓冲器1806中的LTP的重传,从经由重传请求返回的NxtRxLTP指针值所指示的槽 中的LTP开始。在一个实施例中,发送单个重试标记,而在另一实施例中,顺序地发送一对 重试标记。在一个实施例中,通过该对重试标记被发送的顺序来标识该对重试标记(例如RetryMrkrO,RetryMrkrl)。在一个实施例中,重试标记中的每一个包括空的LTP。在图18b 中示出了使用单个重试标记的示例,通过RetryMrkrLTP1816描绘。将理解,当发送一对重 试标记时,第二重试标记(RetryMrkrl)将紧跟着RetryMrkrLTP1816 (RetryMrkrO)。
[0149] 在图18a的示例中,在接收传输请求之前继续传输LTP导致按顺序接收LTP5和 6(在传输中)、LTP7(接下来传输)以及LTP0和1。由于LTP5、6、7、0和1中的每一个 不是重试标记,所以对每一个而言对决策框2234的回答是否,并且逻辑继续以在框2236中 丢弃LTP,然后循环回框2222以接收下一LTP,同时保留在LTP抛弃模式中。对随后接收的 LTP的处理以相同方式继续,直到在框2234接收并检测到重试标记LTP。
[0150] 图18b描绘了时间帧,在该时间帧中,RetryMrkrLTP1816已经被传输、被接收 端口 1802接收并处理,LTP4已经被重传并被接收端口 1802接收,随后是重传的LTP5 和6 (在传输中),以及LTP7将被重传。LTP4、5和6中的每一个包括"重放的"LTP。如 图18b中还示出,槽0和1中的重放缓冲器数据(图18a中示出)被LTP0和1的关于 它们的原始传输的相应微片数据覆写,它们的原始传输在接收RetryReqLTP1812和传输 RetryMrkrLTP1816 之前进行。
[0151] 和之前一样,对于每个可靠的LTP传输,将LTP的数据复制到重放缓冲器1806中 由NxtTxLTP指针1808标识的槽中,对于每个可靠的LTP该指针被递增。因此,NxtTxLTP 指针1808将关于LTP7、0和1(注意,NxtTxLTP指针从7环绕回到0)的每一个的发 送而已经被递增。当LTP1正在被传输(或刚刚被传输)时,发送端口 1800已经接收 RetryReqLTP1812。作为响应,发送端口 1800返回RetryMrkrLTP1816(或一对重试标记, 包括RetryMrkrOLTP和随后的RetryMrkrlLTP)。由于RetryMrkrLTP1816 是空LTP,所以 其数据内容不被复制至重放缓冲器1806,NxtTxLTP指针1808也不会增加。反之,不论是可 靠的LTP还是空LTP,对于每个传输的LTP增加TxLTP序列状态。
[0152] 返回至决策框2234,在接收到RetryMrkrLTP1816时,它被标识为重试标记,并且 该流程图逻辑继续至图22d中的流程图2200d。如框2252中所示,处理重试标记,并且接收 机设置倒计数值以准备好接收即将到来的重放的坏LTP。在一个实施例中,采用相对于重试 标记的坏LTP重放偏移量,以指示该坏LTP的重传将在重试标记之后的k个LTP开始。在 米用一对重试标记的一个实施例中,坏LTP重放偏移量比第二重试标记小一。也如框2240 中所描绘,鉴于坏的LTP重放偏移量,接收机基于LTP偏移量发起坏LTP重放倒计数。这用 于检测框2256中的坏LTP的重放。此外,接收机在框2254中返回往返标记LTP(或一对往 返标记LTP),并且在框2254中将LTP接收模式(接收状态)返回至正常,并且流程图逻辑 返回至框2204以接收下一分组。这通过接收机状态图2350中的SendRndTripMrkrPair 状态和返回至LinkTransferActive.normal状态来描绘。如下参考图18c所描述,响应于 重试标记LTP,返回往返标记LTP,以便于确定是否可以覆写重放缓冲器LTP。
[0153]在传输RetryMrkrLTP1816(或RetryMrkrOLTP和RetryMrkrlLTP)之后,发起LTP 的重放(重传),以RetryReqLTP1812中返回的NxtRxLTP指针所标识的坏LTP(在本示例 中是LTP4)的重传开始。当发射机在重放模式下,所传输的数据将包括存储在重放缓冲器 1806中的LTP的重传。重传的LTP基于它们在重放缓冲器的FIFO中的顺序被顺序地从发 送端口1800发出,并且以NxtRxLTP指针所指向的LTP开始。
[0154] 对于每个重传的LTP,所传输的数据与LTP初始被传输时的数据相同。除了坏LTP 重放倒计数之外(以及与接收重放的坏LTP相关联的操作),接收侧的逻辑不知道接收的 LTP数据对应于原始传输的LTP还是重传的LTP。相应地,执行框2204、2206和2208以及决 策框2210的操作,导致按照通道的CRC计算、在接收的LTP数据上的RxLTPCRC的计算、 以及将RxLTPCRC与TxLTPCRC作比较。如果存在错误,如决策框2210中的否结果所指 示,则该逻辑返回至框2214,错误的重传LTP发起新的重放序列,在该序列下将再次重传该 坏的LTP。这将本质上重复以上关于坏LTP4和来自重放缓冲器1806的随后LTP的重传所 讨论的操作。
[0155] 假定重传的坏LTP4是良好的,该逻辑流至框2258。在该框中,将之前存储在寄存 器CRC-G0、CRC-G1、CRC-G2和CRC-G3中的按照通道的CRC值与对于重传的LTP4的每个通 道上接收的数据计算的按照通道的CRC值进行比较,并按照通道或每个XFR组进行该比较, 这取决于操作通道的数量(注意,当传送组的数量相同时,按照通道和每个XFR组比较是等 价的,从而总是可以执行每个XFR组的比较)。根据以上描述,对于四通道链路,按照每个 XFR组来比较按照通道的CRC。
[0156] 关于每个被传输LTP的TxLTP和RxLTP序列状态的持续递增,当LTP4被重传 时LTP序列状态是3,相比之下,当LTP最初被传输时LTP序列状态是1。作为结果,在每个 通道上传输的XFR组已经改变。在图25中示出了通道一XFR组的重新映射,并且通过比较 图18a和18b中的每个通道上发送的XFR也可以看出。如上所讨论,当最初传输LTP4时, LTP序列状态是1,而当重传LTP4时(在图25中通过4R描绘),LTP序列状态是3。返回 至图18b,对于通道0、1、2和3计算重传的LTP4的按照通道的CRC,然后在流程图2200d 的框2258中执行每个XFR组的CRC比较,并且如果适用,在框2260中通过标识不匹配的 按照通道或每个XFR组的CRC来标识坏的通道。在图18a和18b的示例中,每个XFR组的 CRC比较的结果表明CRC-GO、CRC-G1和CRC-G3的CRC匹配,而CRC-G1的CRC不匹配。这 表明通道2是错误的,因为通道2对应于在最初传输错误的LTP4时对于错误的LTP4计算 的CRC-G1值所在的XFR组,注意由于在重传的LTP4中未检测到LTPCRC错误,所以在对于 重放的LTP4的通道2上传输的数据中也(假定)没有错误。在框2261,将标识为坏通道 的错误计数递增。考虑通道间歇性出错的情形。如上所讨论,决策框2226和关联的逻辑块 的顺序LTPCRC错误校验是用于检测在该链路上传输的数据中的紧密间隔的错误的一种机 制。虽然该机制检测非常紧密间距的错误(需要错误在顺序的LTP中),它无法标识哪个通 道是出错的,也无法标识各个通道上出现连续错误的频繁程度。
[0157] 根据第二BER检查机制的实施例,监视按照通道的错误频率以确定给定通道的错 误频率(BER)是否超过了按照通道的BER阈值。在一个实施例中,这通过使用按照通道的 连续错误计数器和定时器来完成(关连于流程图2200d和2200e中描绘的并以并行方式执 行的其它操作和逻辑)。
[0158] 在决策框2262,确定接收机状态是否正在离开该接收机发起的链路重新训练状 态。如流程图2200b中的逻辑所示和如上所述,对顺序的LTPCRC错误的检测将导致由接 收机检测到错误发起的链路重新训练。反之,虽然单个LTPCRC错误将类似地发起重试请 求、重试标记接收序列,但它将不会导致链路重新训练的发起。如果重放的LTP是良好的并 且接收状态不在离开链路重新训练(即仅已检测到单个LTPCRC错误),则对决策框2262 的回答是否,导致该逻辑流至框2264,其中如同LTP是原始发送的LTP那样处理该LTP。该 逻辑然后返回至流程图2200a,以如同他们正被原始发送一样(从接收机的角度看)处理随 后重放的LTP。
[0159] 现在假定接收机检测到两个顺序的LTPCRC错误,导致接收机发起链路重新训练 并且对决策框2262的回答为是,从而导致该逻辑继续至框2266。在该框中,将在框2260中 确定的坏通道的连续错误计数器递增。在决策框2268中,确定该通道的连续错误计数是否 已到达阈值。一般而言,该阈值将是整数
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1