10GBASE-CX4 (C54)
概述
本条款规定了10GBASE-CX4 PMD(包括MDI)和基带介质。为了形成一个完整的PHY(物理层设备),PMD与适当的子层(见下表)和管理功能相结合,这些功能可以通过第45条中定义的管理接口或同等方式访问。
下图显示了PMD和MDI(阴影显示)与ISO/IEC开放系统互连(OSI)参考模型的其他子层的关系。
RS && XGMII(C46)
本条款定义了以太网媒体访问控制器MAC和各种PHY之间的调协子层(RS)和10千兆媒体独立接口(XGMII)的逻辑和电气特性。下图显示了RS和XGMII与ISO/IEC(IEEE)OSI参考模型的关系。
XGMII的目的是在媒体访问控制(MAC)子层和物理层设备(PHY)之间提供简单、廉价且易于实现的互连。万兆连接单元接口(XAUI)可用于延长XGMII的工作距离,同时减少引脚数量。
XGMII支持本条款中定义的2.5 Gb/s、5 Gb/s和10 Gb/s的MAC数据速率。兼容设备可以实现这些速率的任何子集。第22条定义的MII支持10 Mb/s和100 Mb/s的操作,第35条定义的GMII支持1000 Mb/s的运行。
10GBASE-X和10GBASE-R PHY以10Gb/s的数据速率运行。10GBASE-W PHY以9.95328Gb/s的STS-192/VC-4-64c线路速率运行,以9.58464Gb/s的有效载荷速率映射编码数据流。在发送时,通过丢弃与MAC在这种操作模式下创建的拉伸包间间隙相对应的空闲控制字符来执行此映射,在接收时,根据需要添加包间间隙空闲控制字符以适应XGMII RX_CLK速率。
XGMII的功能分配平衡了媒体独立性与简单且经济高效的接口需求。总线宽度和信号速率适用于印刷电路板走线长度电气限制在约7cm的短距离芯片间互连。XGMII(与MII和GMII一样)通过清晰地分离ISO(IEEE)七层参考模型的数据链路和物理层,最大限度地提高了媒体独立性。
RS使MAC的位串行协议适应2.5Gb/s、5Gb/s和10Gb/s PHY的并行编码。虽然XGMII是一个可选接口,但它通常被广泛用作规范的基础。XGMII指定了2.5 Gb/s、5 Gb/s和10 Gb/s物理编码子层(PCS)。
XGMII接口特点
a) 它能够支持以下至少一种操作速率:2.5 Gb/s、5 Gb/s或10 Gb/s。
b) 数据和分隔定界符Delimiters与时钟参考同步。
c) 它提供独立的32位宽的发送和接收数据路径。
d) 它使用与常见数字ASIC工艺兼容的信号电平。
e) 它仅提供全双工操作。
f) XGMII支持节能以太网(EEE)的PHY类型的低功耗空闲(LPI)信令(C78)。
RS层特点
a) RS在MAC串行数据流和XGMII的并行数据路径之间进行转换。
b) RS将XGMII处提供的信号集映射到MAC处提供的PLS服务原语。
c) RS在发送路径上生成连续的数据或控制字符,并在接收路径上期望连续的数据和控制字符。
d) RS通过监测接收路径上指示不可靠链路的状态报告,并在发送路径上生成状态报告,向连接链路远端的DTE报告检测到的链路故障,从而参与链路故障检测和报告。
XGMII结构
RS层将MAC层的串行数据和XGMII接口的并行数据实现互相转换的功能;
XGMII只支持全双工操作,故PLS_SIGNAL.indication原语永远不会产生。
XGMII若支持EEE或Link Interruption(特殊的序列有序集用于标识链路短暂中断),PLS_CARRIER.indication原语才会产生。
XGMII:32个数据信号(TXD<31:0> and RXD<31:0>), 4个控制信号(TXC<3:0> and RXC<3:0>), and 1个时钟信号(TX_CLK and RX_CLK)。当工作于10Gbps,时钟频率为156.25MHz(100ppm),上升沿和下降沿采样,156.25M Clk/(s×边沿)×2边沿×32bit/Clk=10Gbps;当工作于5Gbps,时钟频率为78.125MHz(100ppm),上升沿和下降沿采样,78.125M Clk/(s×边沿)×2边沿×32bit/Clk=5Gbps; 当工作于2.5Gbps,时钟频率为39.0625MHz(100ppm),上升沿和下降沿采样,39.0625M Clk/(s×边沿)×2边沿×32bit/Clk=2.5Gbps;
32个TXD和4个TXC信号应被组织成4个数据通道Lane,32个RXD和4个RXC信号也应如此。每个方向上的4个通道Lane共享一个公共时钟--TX_CLK用于发送,RX_CLK用于接收。这4个通道以循环序列的方式用于发送字节流。
在发送时,每8个PLS_DATA.request事务表示MAC发送的一个字节。第一个字节与通道0对齐,第二个与通道1对齐,第三个与通道2对齐,第四个与通道3对齐,然后与第五个对齐,以此类推。分隔定界符Delimiters和帧间空闲字符IPG分别用TXC和RXC宣称指示的控制码编码在TXD和RXD信号上。
XGMII发送接收Lane分配
XGMII与PLS服务原语映射
调协子层(RS)应将XGMII提供的信号映射到PLS服务原语。全双工操作仅在2.5 Gb/s、5 Gb/s和10 Gb/s;因此支持CSMA/CD操作的PLS服务原语没有通过RS映射到XGMII。如果支持EEE能力,则映射会发生变化(见78.3)。LPI_REQUEST不得设置为ASSERT,除非所连接的链路已运行至少一秒钟(即,根据底层PCS/PMA,link_status=OK)。
为2.5 Gb/s、5 Gb/s和10 Gb/s操作定义了以下原语的映射:
PLS_DATA.request
PLS_DATA.indication
PLS_CARRIER.indication
PLS_SIGNAL.indication
PLS_DATA_VALID.indication
PLS_DATA.request ( OUTPUT_UNIT = 0 / 1 / DATA_COMPLETE )。 DATA_COMPLETE值表示媒体访问控制子层MAC没有更多数据要输出。OUTPUT_UNIT值通过每个TX_CLK边沿上(上升沿和下降沿)的信号TXD<31:0>和TXC<3:0>传送到PHY。每个PLS_DATA .request事务应按顺序映射到TXD信号(TXD<0>,TXD<1>,…TXD<31>,TXD<0>,…)。在来自MAC子层的32个PLS_DATA .request事务(4个字节,每个字节有8个PLS_DATA.request事务)之后,RS请求PHY发送32个数据比特。前导码的第一个字节应转换为Start控制字符,并与Lane 0对齐。对于MAC子层的每32比特时间,RS应生成TXD<31:0>和TXC<3:0>。DATA_COMPLETE值应映射到在最后一个数据字节之后按顺序编码在接下来的8个TXD位信号上的Terminate控制字符;并在下一个TX_CLK边沿发送到PHY。这可能与最后一个数据字节或随后的TX_CLK边沿位于同一TX_CLK边上。当Terminate控制字符位于Lane 0、1或2中时,顺序后面的通道Lane将使用Idle控制字符进行编码。
PLS_DATA.indication ( INPUT_UNIT = 0/1)。 INPUT_UNIT值来自RX_CLK每个边沿上(上升沿和下降沿)从PHY接收到的信号RXC<3:0>和RXD<31:0>。为MAC子层实体生成的每个原语对应于MAC在连接两个DTE的链路的远程端发出的PLS_DATA.request。对于帧接收期间的每个RXD<31:0>,RS应生成32个PLS_DATA.indication事务,直到帧结束(终止控制字符),其中0、8、16或24个PLS_DATA.indication事务将由包含Terminate的RXD<31:0>生成。在帧接收期间,每个RXD信号应按顺序映射到PLS_DATA.indication事务中(RXD<0>,RXD<1>,…RXD<31>,RXD<0>,…)。在生成相关的PLS_DATA.indication事务之前,RS应将有效的Start控制字符转换为前导码第一个字节。RS不得为终止控制字符生成任何PLS_DATA.indication原语。为了确保稳健运行,发送到MAC的数据值可以是根据XGMII错误指示的要求,由RS执行更改动作。序列有序集不会指示给MAC。
PLS_CARRIER.indication ( CARRIER_STATUS = CARRIER_ON / CARRIER_OFF )。 2.5 Gb/s、5 Gb/s和10 Gb/s操作仅支持全双工操作。RS从只为支持EEE或链路中断的PHY生成此原语。对于支持EEE功能的PHY,设置CARRIER_STATUS以响应LPI_REQUEST。对于支持链路中断的PHY,可以设置CARRIER_STATUS以响应Link_fault。如果LPI_CARRIER_STATUS = true ; link_fault = 链路中断link interruption,则CARRIER_STATUS设置为CARRIER_ON。否则,CARRIER_STATUS设置为CARRIER_OFF。基于链路中断Link Interruption信号的延迟机制可以由管理启用或禁用。
PLS_SIGNAL.indication ( SIGNAL_STATUS = SIGNAL _ERROR / NO _SIGNAL _ERROR )。2.5 Gb/s、5 Gb/s和10 Gb/s操作仅支持全双工操作。RS永远不会生成这个原语。
PLS_DATA.VALID ( DATA_VALID_STATUS = DATA_VALID / DATA_NOT_VALID )。DATA_VALID_STATUS参数可以取两个值之一:DATA_VALID或DATA_NOT_VALID。DATA_VALID值表示PLS_DATA.indication原语的INPUT_UNIT参数包含传入帧的有效数据。DATA_NOT_VALID值表示PLS_DATA.indication原语的INPUT_UNIT参数不包含传入帧的有效数据。每当DATA_VALID_STATUS参数从DATA_VALID变为DATA_NOT_VALID或反之亦然,RS应生成PLS_DATA_VALID.indication服务原语。如果先前的RXC<3:0>和RXD<31:0>包含4个空闲字符IDLE(RXD=0x07070707)或一个序列有序集(4Byte),则然后在Lane 0上接收到开始控制字符Start control character(RXD=0xFB)后而响应生成PLS_DATA.indication事务时,DATA_VALID_STATUS应取DATA_VALID值。当序列中当前通道的RXC=1用于除错误控制字符(RXD=0xFE)以外的任何字符时,DATA_VALID_STATUS应取DATA_NOT_VALID值。在没有错误的情况下,DATA_NOT_VALID是由Terminate控制字符(RXD=0xFD)引起的。当DATA_VALID_STATUS因Terminate以外的控制字符而从DATA_VALID更改为DATA_NOT_VALID时,RS应确保MAC(在RS向MAC发送DATA_NOT_VALUED服务原语之前)检测到FrameCheckError。
XGMII数据流
Inter-frame
XGMII发送或接收路径上的帧间<帧间>时段是一个没有帧数据活动发生的间隔。对应于MAC包间间隙的<帧间>以Terminate控制字符开始,以Idle控制字符继续,以开始控制字符之前的Idle控制字符结束。IPG的长度可以变化(在发送MAC和接收MAC之间实现一个或多个功能)(例如,RS Lane对齐、PHY时钟速率补偿或10GBASE-W数据速率自适应功能)。接收RS的XGMII处的最小IPG为5个字节。链路状态信息的信令在逻辑上发生在IPG时段。
Preamble与SFD
Start控制字符表示XGMII上MAC数据的开始。在发送时,RS将从MAC传送的前导码的第一个数据字节转换为Start控制字符。在接收时,RS将开始控制字符转换为前导码数据字节。RS在发送时和PHY在接收时将启动控制字符与XGMII的通道0对齐。
第一个Preamble替换成“Start型” XGMII Control Code(0xFB)[只能出现在Lane0]
开始控制字符Start control character(0xFB)对齐。在发送时,RS可能需要修改IPG的长度,以便在Lane 0上对齐Start控制字符(前导码的第一个字节)。这应通过以下两种方式之一实现:
1) MAC实现可以将此RS功能合并到其设计中,并始终插入额外的空闲字符IDLEs,以在4字节边界上对齐Start控制字符。请注意,这将降低以最小IPG分隔的某些数据包大小的有效数据速率。(此法不可行)
2) 或者,RS可以通过有时插入和有时删除空闲字符来IDLEs对齐Start控制字符(保证所有帧的Start控制符永远出现在Lane0),从而保持有效数据速率。使用此方法时,RS会维护一个赤字空闲计数(DIC),表示删除或插入的空闲字符的累积计数。DIC为每个删除的空闲字符递增,为每个插入的空闲字符递减,是否插入或删除空闲字符的决定受到DIC最小值为0、最大值为3的限制。请注意,这可能会导致在发送XGMII上观察到的帧间间隔比规定的最小IPG(12Byte)短3个字节;然而,缩短IPG的频率受到DIC规则的限制。DIC仅在初始化时重置,并且无论MAC子层发送的IPG大小如何,都会应用DIC。如果效果与RS实现的DIC相同,则可以采用等效技术来控制Start控制字符的RS对齐。
帧结尾标记EFD
EFD采用“Terminate型” XGMII Control Code(0xFD)[可以出现在任意Lane]
普通数据帧发送
S=0xFB (TXC=1), DP=0x55 (TXC=0) , DP=0x55 (TXC=0) , DP=0x55 (TXC=0) , DP=0x55 (TXC=0) , DP=0x55 (TXC=0) , DP=0x55 (TXC=0) , SFD=0xD5 (TXC=0) , MAC帧数据…………+FCS,T=0xFD (TXC=1),I=0x07 (TXC=1),……
TXD, TXC编码
普通数据帧接收
S=0xFB (RXC=1), DP=0x55 (RXC=0) , DP=0x55 (RXC=0) , DP=0x55 (RXC=0), DP=0x55 (RXC=0) , DP=0x55 (RXC=0) , DP=0x55 (RXC=0), SFD=0xD5 (RXC=0), MAC帧数据…………+FCS,T=0xFD (RXC=1) ,I=0x07 (RXC=1),……
RXD, RXC编码
错误与故障处理
XGMII响应错误指示
如果在帧接收期间(即当PLS_DATA.VALID 的DATA_VALID_STATUS = DATA_VALID时),在接收到的通道Lane上用信号发送了终止控制字符以外的控制字符,则RS应确保MAC将检测到该帧中的帧校验错误。通过在RS中加入一个功能可以满足这一要求。该功能产生被传递到MAC子层的接收帧数据序列。该数据序列可以通过替换传递到MAC的数据来产生。当Terminate之外的控制字符出现在包的结尾时,RS为帧内接收到的每个错误控制字符生成8个PLS_DATA.indication原语,并可能生成8个PLS_DATA.indication原语确保帧检测错误标记的产生。可以采用其他技术来响应接收到的错误控制字符,前提是MAC子层的行为就像在接收到的帧中发生了帧校验错误一样。
生成发送错误控制字符的条件
如果在发送帧的过程中,有必要请求PHY故意破坏帧的内容,使得接收端将以最高的概率检测到损坏,则可以通过对通道的TXD和TXC信号进行适当的编码(0xFE error控制符),在发送通道上宣称错误控制字符。
对接收到的无效帧序列的响应
需要与此RS相邻的2.5 Gb/s、5 Gb/s或10 Gb/s PCS来保持发送RS的列对齐,或将Start控制字符与通道0对齐。对于在任何其他通道上接收到的Start控制字符,RS不得向MAC指示DATA_VALID。无差错的2.5 Gb/s、5 Gb/s或10 Gb/s操作不会改变通道3中的SFD对齐。不需要2.5 Gb/s、5 Gb/s或10 Gb/s MAC/RS实现来处理在包含Start控制字符的列之后的列的通道3以外的位置具有SFD的数据包。
链路故障信令
链路故障信令在远程RS和本地RS之间运行。在远程RS与本地RS之间检测到的故障被本地RS作为本地故障接收。只有RS发出远程故障信号。PHY内的子层能够检测到导致链路通信不可靠的故障。
在识别到故障状况后,PHY子层指示数据路径上的本地故障状态。当此本地故障状态到达RS时,RS停止发送MAC数据或LPI,并在发送数据路径上连续生成远程故障状态(可能截断正在发送的MAC帧)。当RS接收到远程故障或链路中断状态时,RS停止发送MAC数据或LPI,并连续生成空闲控制字符。当RS不再收到故障状态消息时,它将恢复正常运行,发送MAC数据或LPI。
链路故障指令通过64B/66B序列有序集的方式实现(非常重要)。
PHY用通道0中的序列控制字符Q和通道1和2中的0x00数据字符以及通道3中的0x01数据字符表示本地故障。在通道0中具有序列控制字符,在通道1和2中具有数据字符0x00,在通道3中具有数据字符0x02表示远程故障。虽然大多数故障检测是在PHY的接收数据路径上进行的,但在某些特定的子层中,可以在PHY的发送侧检测到故障。PHY的本地故障状态也表明了这一点。
对于可能暂时中断的链路的操作,提供了对第三种故障情况(链路中断)的可选检测。
RS报告链路的故障状态。本地故障表示在远程RS和本地RS之间的接收数据路径上检测到的故障。远程故障表示本地RS和远程RS之间的发送路径上的故障。
XGXS子层和XAUI (C47)
本条款定义了可选XGMII扩展器子层(XGXS)和10千兆连接单元接口(XAUI)的功能和电气特性。下图显示了XGMII、XGMII扩展器、XGXS和XAUI之间的关系。
XGMII扩展器由RS端的XGXS(DTE XGXS)、PHY端的XGXS(PHY XGXS)和它们之间的XAUI组成,其目的是延长XGMII的工作距离并减少接口信号的数量。应用包括扩展分布在10千兆以太网系统中MAC和PHY组件之间的物理隔离的PCB电路板。
具有可选能效以太网(EEE)功能的XGMII扩展器可以在低链路利用率期间进入低功耗状态以节约能源。寄存器4.20.0(对于PHY XS)或5.20.0(对于DTE XS)指示了支持转换到低功耗状态的能力。寄存器4.0.9(对于PHY XS)或5.0.9(对于DTE XS)启用向低功耗状态的转换。XGMII处的低功耗空闲(LPI)宣称被编码在发送的符号中。在接收符号中检测到的LPI编码在XGMII处表示为LPI。当在发送XGMII上接收到LPI时,节能的XGMII扩展器会发送睡眠符号sleep symbols,然后则停止发送并停用XAUI发送信号以节约能源。当接收端看到睡眠符号sleep symbols时,它会切换到quiet状态。XGMII扩展器在静默期周期发送,以允许连接的XGMII扩展器刷新其接收器状态(例如,定时恢复、自适应滤波器系数),从而跟踪链路定时或底层信道特性的长期变化。如果在静默或刷新期间,在发送XGMII处宣称正常帧间空闲,XGMII扩展器将重新激活发送功能并启动发送。连接的XGMII扩展器将检测到此发送,使其也退出低功耗状态。
可选的XGMII扩展器具有以下特点:
a) 简单的信号映射到XGMII
b) 独立的发送和接收数据路径
c) 使用4个Lane发送XGMII 32位数据和控制信号
d) 低电压摆动差分信号
e) 自定时接口允许对PCS进行抖动控制
f) 与其他10 Gb/s接口共享技术
g) 与其他10 Gb/s以太网块共享功能
h) 8B/10B编码的使用
i) 可选地将LPI信令扩展到EEE的PHY
j) 在低利用率期间可选择节约能源
以下是XGXS和XAUI的主要概念:
a) 可选的XGMII扩展器可以插入调协子层和PHY之间,以透明地扩展XGMII的物理范围并减少接口引脚数。
b) XGMII被组织成4个通道Lane,每个通道在相关时钟的每个边沿上(上升沿和下降沿)发送一个数据字节或控制字符。源XGXS将XGMII通道上的字节转换为自时钟的串行的8B/10B编码数据流。4个XGMII通道中的每一个都通过4个XAUI通道中的一个进行发送。
c) 源XGXS将XGMII空闲控制字符IDLEs(帧间)转换为8B/10B码序列code sequence。目标XGXS从每个XAUI通道恢复时钟和数据,并消除偏差,然后将4个XAUI通道Lane转换成单个时钟XGMII。
d) 在将帧间码序列转换回XGMII空闲控制字符之前,目标XGXS根据需要在帧间添加或删除时钟速率差异补偿。
e) XGXS使用与第48条中规定的10GBASE-X PCS和PMA相同的编码和编码规则。
本条款适用于MAC和PHY之间的XGMII。可选XGMII扩展器的实现主要是作为芯片到芯片(集成电路到集成电路)接口。当XGMII的电气距离限制在约7cm时,XGMII扩展器允许的距离可达约50cm。
XGMII扩展器支持XGMII的10Gb/s数据速率。10 Gb/s MAC数据流在XGMII处转换为四个通道(由调协子层进行发送或由PHY进行接收)。每个通道的字节流由XGXS进行8B/10B编码,以3.125GBd的标称速率通过XAUI发送。XGMII扩展器(PHY XGXS),PHY端的XGXS和RS端的XGXS(DTE XGXS)可以在独立的时钟上运行。
XGMII扩展器对调协子层和PHY设备是透明的,并在DTE发送和接收数据路径上以类似的功能对称运行。XGMII扩展器是逻辑上由在每个方向上与XAUI数据路径互连的两个XGXS组成。一个XGXS在DTE发送路径中充当XAUI数据路径的源,在接收路径中充当目的地。另一个XGXS是发送路径中的目的地和接收路径中的源。每个XAUI数据路径由4个串行通道组成。XGMII扩展器的所有规范都是在假设从XGMII到XAUI再到XGMII的转换的情况下编写的,但也可以采用其他技术,前提是XGMII扩展程序的运行方式与所有指定的转换一样。
其中一个例子是将可选的XAUI与10GBASE-LX4 8B/10B PHY一起使用,其中XGXS与调协子层提供物理层所需的PCS和PMA功能。在这种情况下,XAUI的PHY端不需要XGXS层。然而,为了满足PHY抖动要求,可能仍然需要消除XAUI上引入的抖动。
功能特性
在XAUI的源端,XGXS将4个通道上条带化的XGMII数据流作为输入,将XGMII的数据和控制字符映射到XAUI编码组中,并对其进行编码以供发送。在XAUI的目标端,XGXS对码组进行解码,消除4个通道的偏移,补偿时钟速率差异,并将XAUI码组映射回XGMII数据和控制字符。每个XGXS都是双向的,具有源和目标功能。
XGXS将来自XGMII的数据字节和控制字符分割成4个通道(4个XAUI lanes),每个通道分别执行并串转换和8B/10B编码。
XAUI接口电气特性
发送方向
接收方向
XAUI主要用作集成电路之间长达约50厘米的点对点接口,使用低成本印刷电路板(PCB)上的受控阻抗走线。实际XAUI互连的性能在很大程度上取决于实现。总长度为46至56厘米的设计,PCB布线宽度为0.125至0.300毫米,并使用不同等级和厚度的FR4。互连配置从单板设计到两个子卡通过高速电气连接到背板的系统连接器。