铜缆以太网13
25GBASE-CR(S) (C110)
RS(528,514) FEC(C108)
概述
范围
本条款规定了10GBASE-R和25GBASE-R PHY的Reed-Solomon前向纠错(RS-FEC)子层。该规范与第91条中规定的100GBASE-R PHY的RS-FEC子层规范密切相关。
RS-FEC位置
子层间接口
提供FEC服务接口,以允许RS-FEC子层与PCS之间发送信息。抽象服务模型用于定义此接口的操作。本标准根据比特、字节、数据组、数据单元和信号定义了这些接口;然而为了实现方便,实现者可以选择其他数据路径宽度和其他控制机制,前提是实现符合服务接口的逻辑模型。
10GBASE-R PHY
25GBASE-R PHY
服务接口
本款规定了10GBASE-R和25GBASE-R RS-FEC子层提供的服务。服务接口以抽象的方式描述,并不意味着任何特定的实现。提供FEC服务接口是为了允许PCS与RS-FEC之间发送信息。FEC服务接口相当于10GBASE-R PHY的PMA服务接口。
10GBASE-R PHY和25GBASE-R PHY的服务原语定义不同。
PCS可以使用PMA服务接口的可选物理实例化连接到10GBASE-R和25GBASE-R RS-FEC,在这种情况下,PMA是FEC服务接口的客户端。
10GBASE-R服务原语
10GBASE-R PHY的FEC服务接口中定义了以下原语:
FEC_UNITDATA.request (tx_data-group<15:0>)
FEC_UNITDATA.indication (rx_data-group<15:0>)
FEC_SIGNAL.indication (SIGNAL_OK)
FEC服务接口直接映射到10GBASE-R PCS的PMA服务接口。FEC _UNITDATA .request映射到10GBASE-R PCS的PMA_UNITDATA .request原语,FEC _UNIDTATA .indication映射到PMA_UNIDTATA .indication原语,而FEC _SIGNAL.indication则映射到PMA_SIGNAL .indication原语。
FEC_UNITDATA .request (tx_data-group<15:0>)
该原语定义了以恒定宽度数据单元的形式从PCS到RS-FEC的数据发送。通过FEC_UNITDATA .request提供的数据由RS-FEC发送功能映射到输出FEC块流的有效载荷容量中。FEC_UNITDATA .request发送的数据是一个16位向量,表示1个已准备好通过10GBASE-R PCS发送功能发送的单个数据单元data unit。
10GBASE-R PCS以644.53125 MHz的标称速率向RS-FEC发送tx_data-group<15:0>,对应于10.3125 GBd的10GBASE-R信令速率。在接收到该原语时,RS-FEC发送功能将由tx_data unit<15:0>参数传送的数据映射到所发送的FEC块流的有效载荷中,根据需要添加FEC开销,对数据进行加扰,并经由PMA_UNITDATA .request原语将结果传送到PMA。
FEC_UNITDATA.indication (rx_data-group<15:0>)
该原语定义了以恒定宽度数据单元的形式将接收到的数据从RS-FEC发送到PCS。FEC_UNITDATA .indication由RS-FEC接收功能响应从PMA接收到的FEC块数据而生成。rx_data-group<15:0>参数是一个16位向量,表示RS-FEC向10GBASE-R PCS发送的数据单元。对于从PMA子层接收到的每16个比特,RS-FEC向10GBASE-R PCS发送一个rx_data-group<15:0>。FEC_UNITDATA .indication原语的标称生成速率为644.53125 MHz。RS-FEC子层未指定RS-FEC客户端PMA接收此原语的效果。
FEC_SIGNAL.indication (SIGNAL_OK = OK / FAIL)
该原语由RS-FEC发送到PCS,以指示接收功能的状态。FEC_SIGNAL .indication由RS-FEC接收功能生成,以便将严重错误条件的检测(例如,没有从PMA子层接收到有效信号)传播到PCS。SIGNAL_OK参数可以取两个值之一:OK或FAIL。OK值表示RS-FEC接收功能成功地从PMA子层接收到的输入数据流中描绘出有效的有效载荷信息,该数据流由FEC_signal_OK = true变量指示,并且该有效载荷信息正通过FEC_UNITDATA .indication原语呈现给PCS。FAIL值表示接收功能检测到错误,错误由fec_signal_ok = false变量指示,这会阻止有效数据呈现给PCS,在这种情况下,FEC_UNITDATA .indication原语及其相关的rx_data-group<15:0>参数没有意义。只要SIGNAL_OK参数的值发生变化并且实现了FEC块同步,RS-FEC就会向10GBASE-R PCS生成FEC_SIGNAL .indication原语。RS-FEC子层未指定RS-FEC客户端PMA接收此原语的效果。
25GBASE-R服务原语
25GBASE-R PHY的FEC服务接口中定义了以下原语:
FEC_UNITDATA.request (tx_bit)
FEC_UNITDATA.indication (rx_bit)
FEC_SIGNAL.indication (SIGNAL_OK)
PCS(或PMA)使用FEC: IS_UNITDATA .request(tx_bit)原语以25.78125 GBd的标称信令速率向RS-FEC连续发送比特流。RS-FEC使用FEC: IS_UNITDATA .indication(rx_bit)原语以25.78125 GBd的标称信令速率向PCS(或PMA)连续发送比特流。实际信令速率等于底层PMD信令速率。
FEC: IS_SIGNAL .indication原语的SIGNAL_OK参数可以取两个值之一:OK或FAIL。当RS-FEC接收功能识别出FEC_align_status = true所指示的码字codeword边界时,该值设置为OK。当RS-FEC接收功能无法可靠地建立码字边界时,该值设置为FAIL,如FEC_align_status = false所示。
如果支持可选的EEE深度睡眠功能,则FEC服务接口包括以下四个附加原语:
FEC: IS_TX_MODE.request
FEC: IS_RX_MODE.request
FEC: IS_RX_TX_MODE.indication
FEC: IS_ENERGY_DETECT.indication
当FEC: IS_TX_MODE .request原语的tx_mode参数为QUIET或ALERT时,RS-FEC子层可能会禁用发送功能块以节约能耗。否则,RS-FEC发送功能正常运行。tx_mode的值通过PMA: IS_TX_MODE .request原语传递给客户端子层。
当FEC: IS_RX_MODE .request原语的rx_mode参数为QUIET时,RS-FEC子层可以禁用接收功能块以节约能耗。否则,RS-FEC接收功能正常运行。rx_mode的值通过PMA: IS_RX_MODE .request原语传递给客户端子层。
FEC: IS_RX_TX_MODE .indication原语的rx_tx_mode参数用于传达PMA推断的链路伙伴的tx_mode值。它被分配了通过PMA: IS_RX_TX_MODE .indication原语接收到的值。
FEC: IS_ENERGY_DETECT .indication原语的energy_detect参数用于传达PMD在一段时间的静止后检测到接口上的能量返回。它被分配了通过PMA: IS_ENERGY_DETECT .indication原语接收到的值。
PMA兼容性
对于10GBASE-R PHY,10GBASE-R和10GBASE-R RS-FEC子层是10GBASE-R PMA子层的客户端。对于25GBASE-R PHY,25GBASE-R和25GBASE-R RS-FEC子层是25GBASE-R PMA子层的客户端。
当在包括PCS的设备和包括RS-FEC的设备之间使用25GAUI C2C时,25GBASE-R PMA子层是10GBASE-R和25GBASE-R RS-FEC子层的客户端。
FEC功能
反向变速箱功能在64B/66B块的66位宽和PCS接口的16位宽之间进行调整。它从PCS接口接收16比特流,并将其转换回66比特编码块,供RS-FEC编码器处理。反向变速箱功能的操作方式与C49.2.9块同步功能相同。
反向变速箱功能通过16位FEC_UNITDATA .request原语接收数据。它通过将请求与每个原语的比特连接起来形成原语比特流,以形成tx_data-group<0>到tx_data-group<15>(它使用同步头获得对比特流中66比特块的锁定,并输出66比特块。
只有在PCS和RS-FEC功能之间实现了名为XSBI的可选PMA兼容性接口时,才需要反向变速箱功能,因为该接口通过16位宽的路径传递数据。当XSBI未实现时,PCS和RS-FEC之间的内部数据路径宽度是一种实现选择。根据路径宽度,可能不需要反向变速箱功能。
变速箱在块的66位宽度和PMA接口的16位宽度之间进行调整。它接收66位块。当发送信道在正常模式下运行时,变速箱通过PMA_UNITDATA .request原语一次发送16位发送数据。PMA_UNITDATA .request原语完全用位打包。例如,如果一个块恰好以同步头开头,位于PMA_UNITDATA .request,则该块的最后两个位将位于PMA_UNIDTATA .request的位0和1上,下一个块将以PMA_UNITTATA .request位2和3上的同步头开始。当PMA_UNITDATA .request包含来自两个块的位时,第一个块的位数应放置在tx_data-group<15:0>的最低编号位中。这些比特应按顺序打包到tx_data-group中,块的最低编号比特进入包含该块比特的tx_data-group<15:0>比特部分的最低编号的比特。
当实施可选的PMA兼容性接口XSBI时,变速箱功能是必要的,因为该接口通过16位宽的路径传递数据。当XSBI未实现时,PCS和PMA之间的内部数据路径宽度是一种实现选择。根据路径宽度,可能不需要变速箱功能。
发送功能
块同步
RS-FEC发送功能使用FEC提供的比特流:FEC: IS_UNITDATA .request原语。它使用同步头获得对比特流中66比特块的锁定,并输出66比特块。
CM速率补偿
RS-FEC发送功能定期将码字标记codeword markers插入转码块流中。为了在码字标记插入后保持相同的比特率,RS-FEC发送功能应执行下述速率补偿功能或其等效功能:
a) 通过解扰和使用PCS接收功能对接收到的PCS块进行解码(64<-66),以获得XGMII或25GMII字符流。
b) 根据C49.2.4.7 /I/ 和C49.2.4.10 /O/中的规则,删除空闲控制字符(/I/)、低功耗空闲控制字符出现码字标记。
c) 通过使用PCS发送功能和扰码器对获得的数据流进行重新编码,以获得64B/66B块。
如果支持可选的EEE深度睡眠功能,当发送快速码字标记时,根据需要在b)项中更频繁地删除字符,以保持恒定的比特率。
当发送快速码字标记时,PCS LPI发送状态图处于TX_WAKE状态,因此PCS编码的数据包括两个控制字符之一,/I/或/LI/。这两种类型的控制字符都可以删除以进行速率补偿。
64B/66B到256B/257B转码器
编码转换器从4个66位块tx_coded_j<65:0>中构造1个257位块tx_scrambled<256:0>,其中j=0到3。对于每组4个66位块,j=3对应于最近接收到的块。每个66比特块中的比特0是接收到的第一比特,对应于同步报头的第一比特。
码字标记CM插入
为了支持接收方向上的码字对齐,RS-FEC应定期将码字标记插入257b转码块流中(作为每1024个RS-FEC codeword的前257位)。因此连续码字标记的开始之间的距离为20480 [1024 FEC codeword ×(20 ×257)bit/FEC codeword ]个 257比特转码块,相当于81920 64B/66B块。码字标记的空间是通过在发送方向过程中对码字标记进行速率补偿来创建的,使得RS-FEC子层的输入和输出的比特率相等。发送的码字标记CM是一个257位的块tx_cwm,由4个对齐标记和1个零位组成(257 = 4 × 8 × 8 + 1)。每个对齐标记由8个字节M0、M1、M2、BIP3、M4、M5、M6和BIP7组成。BIP3字段设置为常数值0x33,BIP7字段设置为常数值0xCC。
对齐标记Alignment marker格式如下
M4到M6分别是M0到M2的逐位反转。BIP7是BIP3的逐位反转,BIP3固定为0x33,BIP7固定为0xCC。
25GBASE-R cwm编码格式
RS编码器
RS-FEC子层采用在符号大小为10比特的伽罗瓦域GF(210)上操作的里德-所罗门码RS(n=k+2t, k)。
RS-FEC子层采用在伽罗瓦域GF(210)上操作的里德-所罗门码,其中符号大小为10比特。编码器处理k个消息符号 (k = 20个257b) 以生成2t个奇偶校验符号,然后将其附加到消息中以产生n=k+2t个符号的码字。就本条款而言,特定的里德-所罗门码表示为RS(n,k)。
当用于形成100GBASE-CR4、100GBASE-KR4或100GBASE-SR4 PHY时,RS-FEC子层应实现RS(528, 514)。当用于形成100GBASE-KP4、100GBASE-CR2、100GBASE-KR2、100GBASE-SR2、100GBASE-DR、100GBASE-FR1或100GBASE-LR1 PHY时,RS-FEC子层应实现RS(544, 514)。每个k符号消息对应于编码转换器transcoder产生的20个257比特块。每个编码都基于下面的方程式给出的生成多项式
alpha是由多项式X10+X3+1定义的有限域的原始元素。
下面等式定义消息多项式m(x),其系数为消息符号mk-1至m0。
下面等式定义了奇偶多项式p(x),其系数是奇偶符号p2t-1到p0。
奇偶多项式是m(x)除以g(x)的余数。这可以使用下图所示的移位寄存器实现来计算。在计算给定消息的奇偶校验之前,延迟元件的输出被初始化为零。在最后一个消息符号m0被编码器处理后,延迟元件的输出是该消息的奇偶校验符号。
码字多项式c(x)是m(x)和p(x)之和,其中x的最高幂系数Cn–1=mk–1首先发送,x的最低幂系数c0=p0最后发送。从每个符号发送的第一个比特是比特0。
gi系数
RS Codeword 串行器
一旦数据被Reed-Solomon编码,它将被并串转化,并使用PMA: IS_UNITDATA .request原语发送到PMA。
快速码字锁定(深度睡眠模式)
通过将FEC: IS_TX_mode .request原语的TX_mode参数从ALERT更改为DATA,可以检测到PCS LPI发送状态图向TX_WAKE状态的转换。
在此转换之后,发送功能的行为如下:
a) 将tx_down_count设置为40。这使得码字标记插入功能在以下40个FEC码字(非快速模式为1024个FEC Codeword插入1个码字对齐标记CM)中的每一个的开头插入一个快速码字标记。tx_down_count的值在每个快速码字标记中编码,并在发送快速码字标记后递减。
b) down_count=1的快速码字标记设置后续规则码字标记的位置,使得码字标记CM插入到第1024个码字的开头。下图描述了此转换过程中的码字标记位置。
接收功能
CM锁定
RS-FEC接收功能通过按接收顺序连接来自PMA: IS_UNITDATA .indication原语的比特来形成比特流。此过程获得对码字标记的锁定。码字标记锁定过程的状态由状态变量FEC_align_status反映。
RS解码器
Reed-Solomon解码器从码字中提取消息符号message symbols,根据需要进行校正,并丢弃奇偶校验符号。消息符号对应于包括20个转码块rx_scrambled<256:0>的码字。
RS-FEC子层应能够纠正1个码字(514个消息符号)中最多7个符号错误的任何组合。RS-FEC子层还应能够指示码字何时包含为纠正的错误。解码器未能将具有8个或更多符号错误的码字指示为未纠正的概率预期低于10-6。
Reed-Solomon解码器可以提供在不进行纠错的情况下执行错误检测的选项,以减少RS-FEC子层造成的延迟。通过启用FEC_bypass_correction_ability变量来指示此选项的存在。当提供该选项时,它由FEC_bypass_correction_enable变量的宣称启用。当RS-FEC子层用于形成10GBASE-BR20、25GBASE-SR、25GBBSE-LR或25GBASE-ER PHY的一部分时,不应使用此选项。PHY可能依赖RS-FEC子层的纠错能力来实现其性能目标。建议在绕过纠错之前验证基础链路的可靠性能。
Reed-Solomon解码器应通过故意破坏66位块同步报头向PCS子层指示错误。当解码器确定码字包含错误(当启用旁路校正功能时)或包含未纠正的错误(当旁路校正功能不受支持或未启用时),它确保了对于码字中从第1个(第1、第3、第5个等)开始的每隔257个比特块,256B/257B到64B/66B转码器输出端的第一个66比特块的同步头rx_coded_0<1:0>设置为11。此外,它确保与码字中第二个257比特块对应的rx_coded_0<1:0>和与最后一个(第20个)257比特块相对应的rx_code_3<1:0>设置为11。如上所述,将rx_coded_0<1:0>设置为11会导致PCS将R_BLOCK_TYPE = E分配给块,并将其内容解码为EBLOCK_R。这将导致完全或部分在码字内的所有64字节及以上的帧被丢弃。
Reed-Solomon解码器可以可选地提供绕过错误指示特征的能力,以减少RS-FEC子层造成的延迟。此选项的存在由FEC_bypass_indication_ability变量来指示此选项的存在。当提供该选项时,它由FEC_bypass_indication_enable变量的宣称启用。
当FEC_bypass_correction_enable被宣称时,解码器不应绕过错误指示,FEC_bypass_indication_enable的值不起作用。当FEC_bypass_indication_enable被宣称时,RS-FEC子层会执行额外的错误监控,以降低未检测到数据包中错误的可能性。Reed-Solomon解码器对8192个FEC码字的连续非重叠块中检测到的符号错误数量进行计数。当8192个FEC码字块中的符号错误数量超过417,RS解码器应在60ms至75ms的时间段内,为每个后续66位块的同步报头rx_coded<1:0>分配00或11的值。rx_coded<1:0>的此设置将64B/66B块标记为坏块,并禁止PCS处理接收到的数据包。BER监视器状态图将hi_BER设置为true,将PCS block_lock设置为false。当AN被支持和启用时,此事件会导致AN重新启动。对于可选的EEE深度睡眠功能,当rx_lpi_active为真时,应禁用宣称FEC_bypass_indication_enable时使用的错误监视器。错误监视器考虑的下一个8192个码字块在rx_lpi_active从true转换为false后的码字边界上开始。
FEC码字监控
在实现码字标记锁定后,该过程会持续检查码字有效性。当检测到3个连续的未校正码字时,码字监视器应重新启动码字标记CM锁定过程。在这种情况下,在发现码字标记对齐之前,多个块很可能被标记为坏块。将多个64B/66B块标记为坏块会导致PCS宣称hi_ber并失去块锁。当AN被支持和启用时,此事件会导致AN重新启动。
码字标记CM移除
每1024个FEC码字中的前257个消息比特是向量rx_cwm<256:0>,其中比特0是接收到的第1个比特。包含该向量的特定码字由码字标记锁定功能指示。对于可选的EEE深度睡眠功能,当FEC_align_status为真且rx_down_count为非零时,rx_cwm<256:0>被设置为每个码字中的前257个消息比特。转码(257b->66b)前应删除矢量rx_cwm。
256B/257B到64B/66B到转码器
编码转换器从每个257位块rx_scrambled<256:0>中提取一组4个66位块rx_coded_j<65:0>,其中j=0到3。257比特块的比特0是接收到的第1个比特。编码转换器从4个块rx_coded_j<65:0>的组中创建了一个66位向量rx_coded<65:0>的流,其中j=0到3。rx_coded_0是每个组中发送的第1个块。
CM速率补偿
在从转码中丢弃码字标记CM并获得rx_coded<65:0>矢量流后,为了补偿删除的码字标记,RS-FEC接收功能应执行下述速率补偿功能或其等效功能:
a) 通过解扰和使用PCS接收功能对rx_coded矢量流进行解码,以获得XGMII或25GMII字符流。
b) 根据C49.2.4.7中的规则,插入/I/或/LI/,以根据需要填写任何删除的码字标记CM或快速码字标记。
c) 通过应用PCS发送功能和加扰对获得的数据流进行重新编码,以获得64B/66B块rx_coded_out<65:0>。
如果rx_coded<1:0>为00或11,则列表项c)中的进程应将rx_coded_out<1:0>设置为rx_coded<1:0>,列表项b)中的过程不得在rx_coded_out之后的下一个块插入空闲字符。
如果支持可选的EEE深度睡眠功能,此功能将根据rx lpi状态图设置rx_lpi_active。
快速码字锁定(深度睡眠模式)
如果支持可选的EEE深度睡眠功能,则RS-FEC接收功能在LPI刷新和唤醒期间执行快速码字锁定,如本子条款所述。当rx_mode(或rx_tx_mode)从QUIET转换为DATA时:
a) 启动计时器hold_off_timer。
b) 启用RS-FEC快速码字锁定机制,该机制试图检测远程RS-FEC发送功能发送的快速码字标记。当两个快速码字检测到相距一个码字距离的标记(导致进入FEC同步状态图中的WAKE_GOOD状态),RS-FEC码字的起始位置为设置到快速码字标记的开始位置。下一个码字标记位置被设置为在down_count= 1的快速码字标记之后的1024个码字。
当找到开始位置时,FEC_align_status设置为true,并为每个后续码字宣称test_cw,从而启用对齐码字解码。假设快速码字锁定已经确定了码字位置的正确开始,RS-FEC码字监视器状态图达到CW_GOOD状态,然后在接收方向CM速率补偿中a)项的解码产生2个确定性块中的一个,由/I/或/LI/控制字符组成。
RS-FEC子层应推迟宣称SIGNAL_OK,直到发生以下两个事件之一:
1) RS-FEC码字监视器状态图达到CW_GOOD状态。
2) hold_off_timer_done = TRUE。
比特顺序
发送方向
接收方向
MDIO功能映射
与RS FEC相关的寄存器集中在C45寄存器DeviceID=1(PMA/PMD)里。下面做一个简单的介绍。
控制变量映射
状态变量映射
发布者:admin,转转请注明出处:http://www.yc00.com/web/1748128286a4735734.html
评论列表(0条)