5 架构
5.1 高层结构
A-PHY系统实现了分层解决方案,如图3所示
这些层为:
•本地协议层:本地协议层实现特定的本机协议(及其相关接口)。这可能是MIPI
协议(如CSI-2、DSI等),或外部SDO协议(如eDP、HDMI等)
Note:协议层不在本规范的范围内
•本地协议适应层:本机协议适配层负责将特定的本地协议转换为A-Packet结构,以及从A-Packet结构转换回特定的本地协议
Note:适配层不在本规范的范围内
•APPI(应用协议接口):APPI是A-PHY与上层(即每种本地协议的适配层)之间的接口。APPI的定义是本规范的一部分。所有类型的适配层都应指定其对该APPI的适配,如图3所示。
•数据链路层:A-PHY数据链路层与一个或多个本地协议适配层(每个适配层都通过其自己的APPI)进行接口连接,并执行A-Packet的调度、优先级排序和转发。
•物理层:A-PHY物理层根据每个Gear所使用的调制方案,对从A-Packet中提取的符号进行编码和解码。它根据需要在必要时处理A-Packet的重传。调制后的符号根据与介质相关的电气规范,通过A-PHY互连进行传输和接收。
图3 A-PHY高层结构
5.2 A-PHY端口
A-PHY链路将Source端口与Sink端口连接起来。
在本规范中:
•术语下行链路表示从Source发送到Sink的高吞吐量通信
•反向下行链路表示从Sink发送到Source的高吞吐量通信
•上行链路表示从Sink发送到Source的低吞吐量(<500 Mbps)通信
同一端口类型的Source端口和Sink端口之间应保持互操作性和设备回退。
5.2.1 C-Port
C端口是一个同轴(即单导体)端口,使用50Ω同轴连接器和同轴电缆
C端口应在高度非对称操作模式下工作,其中下行链路和上行链路通信应通过同一同轴电缆信道发送。此操作模式没有反向下行链路。
5.2.2 D-Port
D端口是一个差分(即双导体)端口,使用100Ω差分对连接器和单对差分电缆。
D端口应在高度非对称操作模式下工作,其中下行链路和上行链路通信应通过同一单对信道发送。此操作模式没有反向下行链路。
5.2.3 Q-Port
Q-Port是一个“星形四芯”(即四根导线排列成两个差分对)端口,使用100ΩHSD连接器和星形四(STQ)电缆,如图4所示
对于Q端口下行链路:
•Source端口应选择Pair #0和Pair #1“标识”
•Sink端口应解决潜在的对间交换,以匹配Source的选择
•解析Pair #x表示为[Port #x]
示例:接收器的[Port #0]是Source标识为Port #0的对
图4四导体星形四排列成两个差分对
•Q-Port应具有以下操作模式(也在表1中总结):
•双路下行链路,高度非对称模式:
•下行链路应通过Pair #0和Pair #1发送
•上行链路只能通过Sink Pair #0发送
•非对称模式:
•下行链路只能通过Source Pair #0发送
•较低速率的反向下行链路应仅通过Sink解析的[Pair #1]发送
••(此模式下不使用上行链路)
•对称模式:
•下行链路只能通过Source Pair #0发送
•等速率反向下行链路应仅通过Sink[Pair #1]发送
••(此模式下不使用上行链路)
•单路Q反馈高度不对称模式:?
•下行链路只能通过Source Pair #0发送
•上行链路只能通过已解析的Sink发送[Pair #0]
表1 Q端口操作模式
对称Q端口:支持对称模式的Q端口:
•应配置为对称Source和对称Sink
•应配置为非对称Source和非对称Sink。
应为这种对称Q端口预先配置Sink和Source标识。
每个Source Q端口应支持单通道Q高度非对称模式Source配置。
每个Sink Q端口应支持单通道Q高度非对称模式Sink配置。
5.2.4 档位
5.2.4.1 标准下行链路和反向下行链路档位
A-PHY为每路下行链路和反向下行链路的原始数据速率定义了5个离散档位:G1、G2、G3、 G4和G5(见表2)。
A-PHY 下行链路和反向下行链路应以表2中所示定义的每通道数据速率运行。反向下行链路应仅通过一个通道实现(即,仅指定一个符号速率和基础调制方式)。
支持N档(即N可以是1-5)的A-PHY设备应支持表2中所有强制性的较低档位
表2每路标准下行链路/反向下行链路档位
Note:
最大净应用数据速率是通过从原始速率中减去与A-Packet帧构建、PCS线路编码以及面向线路的速率调节相关的总开销来计算的。
5.2.4.2标准可选档位
对于G1–G3,定义了标准可选配置下的Gear实现(见表3)。这些实现可以在规范配置下的Gear实现之外额外实现。如果支持标准可选配置下的Gear实现,那么应当按照表3中的定义来实现。
表3 标准可选下行链路/反向下行链路档位实现
Note:
G3 NRZ-8B/10B只能在C/D端口上使用(即G3 NRZ-8B/10B不得用于反向下行链路)
5.2.4.3 标准上行链路档位
A-PHY定义了两个离散的原始数据速率上行链路档位:U1和U2(见表4)。
上行链路只能在单路上实施。
支持上行链路档位2(U2)的A-PHY端口也应支持U1
每个上行链路档位都指定了标准符号率和基础调制。A-PHY上行链路应以表4所示的定义数据速率运行。
表4标准上行链路档位
5.2.4.4每个档位的Q端口配置
表5至表8定义了标准Q端口配置。
表5双通道下行链路高度非对称Q端口规范配置
表6非对称Q端口规范配置
表7对称Q端口规范配置
表8 Q高度非对称模式规范配置
5.2.4.4.1 Q端口类型互操作性
表9显示了Q-Port类型之间的互操作性。
表9 Q端口类型互操作性矩阵
5.3 配置
A-PHY支持两种配置文件,以更好地适应不同汽车的技术属性和成本结构细分市场。
•配置1(P1)旨在降低下行链路速度和实现复杂性信道属性和设计特性,实现更低成本的实现。
P1基于NRZ 8B/10B技术。
•对于C-Port/D-Port实现,P1是G1和G2的规范性参数,是规范性可选参数代表G3。
•P1不得在Q-Port中实现
•P1应在第7节描述的噪声条件下提供小于10^-9的包错误率(PER)
•配置2(P2)旨在提供需要卓越抗噪性和更高下行链路速度的解决方案;它还具有更好的带宽利用率(即每个档位的净数据速率)。
P2基于动态PAM方案、本地PHY级重传和噪声消除器。
•P2应在其所有下行链路/反向下行链路/上行链路实现中使用重传(RTS)。
•对于C端口/D端口的实现,P2对于G2以上的所有Gears都是规范性的,而对于使用其规范性基础调制NRZ-8B/10B的G1和G2,P2是规范-可选的。
• P2在G1和G2运行时定义了额外的可选调制。P2在G1和G2中使用的调制方案应根据配置寄存器中的预配置值来选择(见第12.2节)。支持这种可选功能的A-PHY设备应在G1和G2的两种调制方案(NRZ-8B/10B和PAM4)上都支持P2。
• P2应在第7节描述的噪声条件下提供小于10-18的包错误率。
P1的抗噪性要求低于P2,详见第7节
P1和P2在G1和G2处是可互操作的。
如第11节所述,数据链路层对两种配置文件都是通用的。
8 物理层
8.1 架构
8.1.1 高层结构
A-PHY具有统一的架构,以支持配置文件1(P1)和配置文件2(P2)。
8.1.1.1 单路高非对称
图24 A-PHY单通道高度非对称统一架构
•对于G1–G7上行链路,P1端口和P2端口都使用相同的8B/10B PCS,上行链路PMD。
•对于G1和G2下行链路,P1端口和P2端口(当Port_CONFIG.GL3P2OPT=0时)使用相同的8B/10B PCS和NRZ PMD
•对于G1–G3,P1端口实现RTS-Bypass
•对于G1–G7,P2端口实现RTS
RTS子层处理A-数据包中与物理层(PHY)相关的字段,并规定了错误或未接收到的A-数据包的重传过程(参见第8.2节)。
物理编码子层(PCS)规定了数据链路层A-数据包转换为物理层符号的过程。对于P2,PCS还处理JITC Re-Training(参见第8.3节)。
PMD子层定义了电气规范和物理介质(参见第9节)。
8.1.1.2 双下行链路高度非对称Q端口
图25 A-PHY双路下行链路高度非对称Q端口架构
8.1.1.3 非对称Q端口
图26 A-PHY非对称Q端口架构
8.1.1.4 对称Q端口
图27 A-PHY对称Q端口架构
8.1.2 端口通用规范
A-PHY端口规范被泛化定义为一个端口,该端口可以选择性地以多种Symbol速率(GBaud)运行。
A-PHY端口应预先配置为使用以下symbol速率之一运行:1 Gbaud、2 GBaud、4 GBaud或8 GBaud。
A-PHY端口规范还被泛化定义为一个端口,该端口可以选择性地使用多种多级调制方式运行。
对于工作在PAM-X模式下的A-PHY端口,应预先配置为在特定的最大PAM16子集(表示为sCMax)中运行,该子集从{sC1616, sC816, sC416}中选择(参见第8.3.1.1节表2)。
8.1.3 主从时钟方案
A-PHY 采用了一种主从时钟方案。
Source端口应作为主时钟,而Sink端口应作为从时钟:
• Source端口应使用从其本地参考时钟导出的下行链路symbol速率进行传输。
• Sink端口应使用由其接收器从恢复的下行链路symbol速率导出的上行链路symbol率进行传输。
8.1.4 PHY层实施指南
8.1.4.1 A-PHY P1 G1/G2架构
P1 G1/G2架构如图28所示,基于以下主要模块:
•RTS Bypass(见第8.2.8节)
•8B/10B PCS(物理编码子层,见第8.3.1.9节)
•PMD(物理介质相关,见第9节)
图28 A-PHY P1 G1/G2架构
8.1.4.2 A-PHY P2 G1/G2架构
P2 G1/G2架构如图29所示,基于以下主要模块:
•下行链路和上行链路的RTS(见第8.2节)
•8B/10B PCS。8B/10B不使用Re-Training(见第8.3.1.9节)
•PMD(见第9节)
Note:
当配置为在NRZ8B10B中运行时,该架构也适用于支持G1和G2中可选PAM4的A-PHY设备
8.1.4.3 A-PHY PAM-X单路架构
PAM-X单路架构如图30所示,基于以下主要模块:
•上行链路:
•RTS:RTS请求通过下行链路发送,没有ACK(见第8.2节)
•8B/10B PCS:8B/10B没有Re-Training(第8.3.1.9节)
•下行链路:
•RTS:RTS请求和确认通过上行链路发送(见第8.2节)
•PAM-X PCS:Re-Training /sCMax请求通过上行链路发送(见第8.3.1节)
•PMD(见第9节)
图30 A-PHY P2 PAM-X单路架构
。
对于支持强制性G3及以上速率或G1/G2的PAM-4解决方案的C端口和D端口,应实现PAM-X PCS/PMD。同时,为了在下行链路方向上支持与强制性G1/G2实现的互操作性,还应实现8B/10B PCS/NRZ-PMD。
当为G3–G7以及选择PAM4选项的G1–G2速率时,应采用P2 PAM-X架构。
8.1.4.4 A-PHY G3-G5双通道下行链路高度非对称架构
G3-G5双路下行链路架构如图30所示,基于以下主要模块:
•上行链路:
•RTS:RTS请求通过下行链路发送,没有ACK(见第8.2节)
•8B/10B PCS:8B/10B没有Re-Training(第8.3.1.9节)
•下行链路:
•RTS:RTS请求和确认通过上行链路发送(见第8.2节)
•PAM-X PCS:Re-Training /sCMax请求通过上行链路发送(见第8.3.1节)
•PMD(见第9节)
图31 A-PHY P2 G3-G5双通道下行链路高度非对称架构
对于支持G3-G5、双通道下行链路高度不对称的Q端口,应实施双通道PAM-X PCS/PMD。
8.1.4.5 A-PHY G3–G5非对称Q端口架构
G3-G5非对称Q端口架构如图32所示,基于以下主要模块:
•反向下行:
•RTS:RTS请求通过下行链路发送,没有ACK(见第8.2节)
•8B/10B PCS:8B/10B没有Re-Training(第8.3.1.9节)
•PMD(见第9节)
•下行链路:
•RTS:RTS请求和确认通过反向下行链路发送(见第8.2节)
•PAM-X PCS:Re-Training /sCMax请求通过上行链路发送(见第8.3.1节)
•PMD(见第9节)
图32 A-PHY G3–G5非对称Q端口架构
8.1.4.6 A-PHY G3–G5对称Q端口架构
G3-G5对称Q端口架构如图33所示,基于以下主要模块:
•反向下行:
•RTS:RTS请求和确认通过上行链路发送(见第8.2节)
•PAM-X PCS:Re-Training /sCMax请求通过上行链路发送(见第8.3.1节)
•PMD(见第9节)
•下行链路:
•RTS:RTS请求和确认通过反向下行链路发送(见第8.2节)
•PAM-X PCS:Re-Training /sCMax请求通过上行链路发送(见第8.3.1节)
•PMD(见第9节)
8.1.5 PHY相关A包字段
A-Packet格式在第11.2节和图102中定义
PHY修改了以下A-Packet字段(即使用不同的字段):
A包报头:
•Link's PHY1: SCI (2bit,位于服务描述符字段中)
•Link’s PHY2: TX-Delay: 延迟值(7bit)和原始指示(1bit)
•Link’s PHY3: 消息计数器(8 bit)
•A-Header CRC (8bit)
A包报尾:
•A-Payload CRC-32 (32bit)
其余的A-Packet字段不会被PHY层修改。
PHY层修改表22中描述的字段。
表22 PHY层修改的A-Packet字段
8.3 物理编码子层(PCS)
8.3.1 PAM-X PCS
PAM-X物理编码子层(PCS)预先配置为单路PAM-X,或双路PAM-X。
根据每个这样的预配置,PAM-X PCS在三种模式下工作:
1. Training Mode
在链路启动过程中,训练模式(Training Mode)通过逐bit发送加扰器的内容,实现接收端的均衡器、消除器和时钟恢复的快速收敛。
2. Idle Mode
在链路启动过程中,空闲模式(Idle Mode)是从训练模式(Training Mode)过渡出来的一种中间模式。在此模式下,扰码器在每个Symbol周期产生16bit数据,只传输Idle Symbol。
3. Normal Mode
这是数据包传输过程中的正常操作。在正常模式(Normal Mode)下,接收端可能会发一个JITC(Just-In-Time Canceller)Re-Training序列请求。如果它这样做的话,那么会生成一个固定长度的Re-Training序列,并在需要时优先于任何数据包进行处理。
图 45 PAM-X 单通道PCS框图[王毅1]
图 46 PAM-X 双通道PCS框图
8.3.1.1 PAM16子集Bit到Symbol映射
A-PHY PAM-X发射器应符合本节中定义的PAM16符号集及其子集,以便在抗误码率与bits-per-symbol之间进行权衡。
如图47所示,每个子集使用sCXn的格式进行标记,其中X为子集级别的数量,n为完整集级别的数量(例如,16)。
在基本的PAM16设置中,每个symbol使用16个离散电压电平中的一个传输,其中每个表示一个bit到symbol的映射,如表30所示。
图 47 PAM16 子集
表 30 PAM16 子集
图中所示的级别是相对于当前使用的发射(TX)幅度而言的,其中级别“15”代表正发射峰值级别。需要注意的是,sC216的具体值依赖于通信速率等级(Gear),而其他子集则与通信速率等级无关。
8.3.1.2 Symbol和Token 速率与周期
Token被定义为由4个Symbol组成的一组数据。所有传输都应以完整的Token为单位进行。
一个Token内的所有Symbol都应使用相同的子集,而Token数据(Token Data,TD)的位数则根据所使用的子集而有所不同。
表 31 每个子集的Token Data(TD)
对于双通道PAM-X,每个Token应在两个symbol周期内使用两个通道进行传输:
• 在第一个symbol周期内,第一个Token的Symbol应通过通道0传输,而第二个Token的Symbol应通过通道1传输。
• 在第二个symbol周期内,第三个Token的Symbol应通过通道0传输,而最后一个Token的Symbol应通过通道1传输。
Token速率与Symbol速率之比、以及Symbol周期与Token周期的比,如表32所示。
表 32 Token速率与Symbol速率之比、以及Symbol周期与Token周期的比
8.3.1.3 A包到Token的转换
从数据链路层接收的A-Packet(见第11节)和来自RTS块的更新信息(见第8.2节)被移动到较低的PHY层,以Symbol/Token为单位运行。
图48描述了A-Packet分区。图49和图50描述了包头(H)、有效载荷数据、CRC-32字节(D)的每个子集向 bit/Symbol/Token的转换。
第一个报头字节(H0)应使用sC216子集进行传输。其余的报头字节(H1-7)应使用固定的、预配置的sCMax子集进行传输,如表33所示。
表33 每个sCMax的报头子集
一个A包内的所有有效载荷数据和CRC-32应使用相同的子集。此子集可以从一个A包动态地改变到下一个A包。
两个A包之间的D所用的子集可以不同。
有效载荷数据和CRC-32的子集应从以下集合中选择:
{ sC216, sC416, sC816, sC1616 }
并且应在数据包报头SCI字段中指定。
发射机不得发送如下A包:
1.其有效载荷数据和CRC-32的子集为比用于报头的子集低
2.发射机不得发送A包,其有效载荷数据和CRC-32的子集为比最大子集高(即不大于sCMax)。
H所用的子集<=D所用的子集
H所用的子集<= sCMax
当A包的最后一个字节(例如CRC-32)与Token边界不对齐时,应添加最少个零填充,以便与Token边界对齐(如图50所示)。
图 49 每个报头子集的Bit/Symbol/Token转换
图 50 每个有效载荷数据和CRC-32的Bit/Symbol/Token转换
8.3.1.4 下行链路加扰
下行链路加扰器应使用图51所示的LFSR(Linear Feedback Shift Register线性反馈移位寄存器)来实现。
图 51 下行链路TX加扰器
图51 LFSR也可以表示为多项式:
𝐺(𝑋) = 1 + X^39 + 𝑋^58
Note:
如果多项式和图形之间的解释有任何差异,以图形正确为主
加扰器的58位种子应由TX PCS初始化为任意值,至少设置1bit为1。
TX PCS加扰器应按照以下两个阶段之一运行:
•在Training模式:对于每个Token周期T,加扰器产生4bit数据,记为ST[3:0]。
•ST[0]表示在Token周期T期间产生的第一个比特
•在Idle和Nromal模式:对于每个Symbol周期N,加扰器产生16bit数据,记为SN[15:0]。
•SN[0]表示在Symbol周期N期间产生的第一比特。在第N个Symbol周期结束时,该比特将驻留在LFSR中的S15中。
•对于单路PAM-X:每个Symbol周期,低4bit(16位中的扰码器产生),即SN[3:0],用于对其数据进行加扰
•对于双路PAM-X:每个Symbol周期,即扰码器产生的16位中的低4bit,SN[3:0]用于对Lane0数据进行加扰,SN[7:4]用于对Lane1数据进行加扰。
•在每个Symbol周期N,应使用每路的四个扰码器输出比特,例如[sb3:sb0],根据该Symbol周期使用的Symbol类型,对于Idle/ISS,应使用sb0位的值(因为数据位被忽略),将其编码为sC216,对于数据,TX PCS应使用加扰器输出的比特按照表34和表35的规则去给准备输出的TD加扰。
表34 单路PAM-X TD加扰
表35 双路PAM-X TD加扰
加扰器部分
1.LFSR概括:
状态:一个LFSR当前存储的序列被称为一个状态。当LFSR向右移动1bit时,左端会被反馈函数补上一位计算后的数据,得到一个新LFSR序列,此时LFSR就移动到了一个新状态。
抽头:参与异或的位被称为抽头。
种子:LFSR中的初值,种子必须是非全0的,如果为全0会死循环,如果采用同或门需要采用种子是非全1的。
级数:LFSR寄存器个数被称为LFSR级数。
周期:LFSR所产生伪随机序列所能遍布不循环不重复的最大数目,对于级数为N的LFSR的最大周期为2^N – 1,不是所有的LFSR都能达到最大的状态,与抽头设计有关。
特征多项式:特征多项式表示的是抽头系数。
2.加扰器和解扰器原理
A^B=C那么C^B=A,此处A为原始数据,B为加扰器的输出,C为扰码后的数据
加扰器的LFSR与解扰器的LFSR设计一样
3.加扰器两种典型与分析
(1)帧同步码(Frame synchronous Scrambling,FSS)
帧同步加扰器的主要参数是伪随机序列生成式和移位寄存器的初始状态
其中生成式决定反馈移位寄存器的结构,此部分收发双方可以事先约定
移位寄存器的初始状态也称为“扰码seed”是需要收发双方采用某种方式完成交互的,比如在收到某个特定值时设定某个固定初始化状态。帧同步扰码的伪随机序列的生成与输入信号无关,具有良好的随机化性能,但是在使用中收发双方需要同步完成初始化设定才能实现解扰。
(2)自同步扰码(Self synchronous Scambling,SSS)
自同步扰码无需通过帧同步实现移位寄存器的初始化同步,可以在正常通讯中完成同步
自扰码同步原理比较简单,自同步的伪随机序列生成与输入信号是相关的,当输入信号持续输入一段时间后,扰码器和解码器的寄存器值就会变成一致,也就完成了同步,之后就可以确定的完成解扰,一般自同步过程都是在协议中空闲状态完成。
帧同步扰码和自同步扰码在最坏情况下都无法产生随机序列,帧同步扰码可以实现错误检测,发送中的错误不会产生扩散,但是需要确保初始化种子同步否则会产生连续错误;自同步扰码不需要额外的同步机制,但是在扰码端输入单比特错误会导致输出端的多位错误,错误数与加扰器反馈抽头相关。
4.加扰器生成代码
8.3.1.5 下行链路Training模式
在Training期间,TX PCS使用sC216发送扰码器的输出比特(假设TD为全零)。
在每个Token周期T期间,扰码器生成4bit,表示为ST[0]至ST[3]。这些比特应为根据表36和表37分配。
表36 单路PAM-X 加扰器输出Training Bits
表37 双路PAM-X 加扰器输出Training Bits
扰码器输出Training Bits被映射到sC216,如表30所示。
Training期间的反向扰码符号(ISS)应使用Training Bits的反码映射到sC216,如表30所示。
PAM-X Source PCS应当传输经过加扰器处理后的输出比特,这些比特与加扰器输出交织形成响应的K序列,每当检测到上行链路或反向下行链路接收到一个K序列时,应发送每个响应K序列。这个过程也被称为“K-Reflection”。
“K-Reflection Delay”K响应延时是指:从上行链路K序列最后1bit到达时间到PAM-X的第一个Symbol发送的时间。选择“K响应延迟”需要满足第8.3.1.8节中规定“ISS Generation Delay”的要求。
每个K序列的长度应为8个Symbol,其中第一个K序列的Symbol应与Token周期对齐,如表38和表39所示。
表38 PAM-X单路“K序列”Symbol映射与Training Symbol比较
表39 PAM-X双路“K序列”Symbol映射与Training Symbol比较
注意,sC216(ST)表示该Token周期的正常Training Symbol调制。
接收器使用K序列来解析Token边界,Lane Swap/De-Skew(适用于双路 PAM-X)和通道极性(当通道为差分时),并允许Sink的下行链路/反向下行链路接收器使用发送器完成的K响应计算“最小链路RTD”。
由于最小的距离(Sink生成的K序列和Source PAM-X在下行链路的响应)远远大于58bit下行链路期间,接收端有足够的输入使加扰器输出bit去加载58bit的解扰器,并且锁住TX的加扰器。
由于Sink生成的并经PAM-X Source在下行链路上响应的K序列之间的最小距离远大于58位的下行链路时长,因此接收器有足够的输入扰码器输出位来加载其58位的解扰码器,并将其锁定到发射(TX)扰码器上。
Sink发的K-seq和Source发给Sink的R-K-req的时间很长,Source这边的加扰器有很长的时间去发送加扰器的内容,发给Sink端让Sink的解扰器锁定
8.3.1.5.1从Training到Idle的模式转换
在Sink端,当PAM-X下行链路接收器准备进入Idle模式时,上行链路发射器开始发送In_Idle启动控制序列。
在Source端,PAM-X下行链路/反向下行链路发射机应在准备进入Idle模式时指示转换到Idle模式,并且当前正在检测通过上行链路接收的In_idle启动控制序列。
为了指示从Training模式到Idle模式的转换,PAM-X TX PCS应按每条通道传输8个反向扰码Symbol(ISS)随后跟着16个正常Training Symbol组成,如图52所示。
图53 PAM-X 双路Training到Idle的过渡
8.3.1.6 下行链路Idle模式
在Idle模式期间和Normal模式下数据包之间的间隙(IPG)中,应该传输Idle Token。
每个Idle Token应将4个扰码器输出位(“Idle位”)映射到sC216,如表40所示表41。请注意,对于Idle/ISS,应使用SN[0] 编码,而不是SN[3],后者应用于加扰sC216 data token)。
表40 PAM-X单路Idle bit分配
表41 PAM-X双路 Idle bit分配
在不进行training时,反向扰码器符号(ISS)应使用Idle位的反码映射到sC216:sC216(~SN)。
为了指示转换到Normal模式,PCS应在每路上传输四个反向扰码器符号(ISS),后面跟着四个常规Idle符号,如图54和图55所示。
图54 PAM-X单路 Idle到Normal的过渡
图55 PAM-X双路 Idle到Normal的过渡
8.3.1.7 下行链路Normal模式
在Normal模式下, PCS传输的数据包之间会插入数据包间隔(IPG)。数据包之间应存在一个IPG。
IPG应由一个或多个Idle Token组成,后面是一个IDLE结束Token(EOI)。
EOI Token应传递两个ISS和两个Idle Symbol。
EOI Symbol的分配应如表42和表43所示。
表42 PAM-X 单路 EOI Symbol分配
表43 PAM-X 双路 EOI Symbol分配
Normal模式PCS数据示例如图56所示。最短IPG周期具有IDLE Token和 EOI Token,如上方图所示。IPG期间可能包括多个Idle Token,如下方图所示。
8.3.1.8高度非对称下行链路JITC重训练
在Noemal模式下工作时,Sink可能请求Source发送重新训练序列:
•Re-Training请求应由Sink通过上行链路传输,如第8.3.2.8.1节所示
•在检测到Re-Training请求后,Source的下行链路发射机应从下一个Token边界开始(必要[王毅2] 时中断数据包),发送Re-Training序列。
•Re-Training序列由TX_ReTRAIN_ISS_NUM ISS Symbol,后面跟着TX_ReTRAIN_IDLE_NUM Idle Symbol组成,每一路都发送。
•ISS生成延迟是指:从有效Re-Training请求最后1bit的到达时间到Re-Training序[王毅3] 列发送的ISS Symbol的第1bit的时间。ISS生成延迟应该满足:
[K-Reflection Delay – 64 Downlink Symbol Periods] ≤
ISS Generation Delay ≤
[K-Reflection Delay + 64 Downlink Symbol Periods]
(K响应延迟的定义见第8.3.1.5节。)
•在完成Re-Training序列后,下行链路发射机可以发送数据包,但应将实际使用的最大子集限制为sCMax/2。(例如,对于sCMax=sC1616的链路它将使用最大的sC816子集)。
•当下行链路发射机检测到sCMax请求已通过上行链路传输时(根据第8.3.2.8.2节),然后它可以使用sCMax子集再次开始发送数据。
下行链路发射机应按照Re-Train状态机运行,如图57所示:
图57 TX Re-Training过程状态机
表44 TX Re-Training 过程状态机序列长度值
8.3.1.9 PAM-X对称Q端口反向下行链路
PAM-X反向下行链路的操作应类似于常规单路PAM-X下行链路,但以下小节的情况除外。
8.3.1.9.1 PAM-X反向下行链路加扰器
当使用PAM-X PCS实现反向下行链路时,扰码器应按第8.3.1.4节中规定的方式实现,但是应该用第8.3.2.3节中所示的正交LFSR(例如,相同的LFSR用于上行链路加扰器)
8.3.1.9.2 PAM-X反向下行链路K序列的生成和Sink 的K响应
在对称Q端口中,使用K序列Training时:
•在Sink端,反向下行链路PAM-X TX PCS应按第8.3.1.5节中的规定传输Training Symbol,同时在自身传输存在的情况下提高其下行链路接收质量。在达到足够的接收质量后,但不得早于开始传输后的10毫秒,并且当下行链路接收器准备好从Source接收K序列时,反向下行链路TX PCS应开始周期性地将Training Symbol与Sink端生成的K序列进行交织,两者之间的间隔为第8.3.2.6节规定的“K序列可变周期”,但使用第8.3.1.5节规定的PAM-X K序列。
•在Source端,在其反向下行链路接收机达到良好的接收质量后,下行链路PAM-X TX PCS应该如第8.3.1.5节规定的那样,对接收到的Sink生成的K序列做出响应。
•随后,Sink端的下行链路接收器将使用这些Source端响应的K序列(如第8.3.1.5节所述),并且其TX PCS将通过反向下行链路生成单个Sink端响应的K序列,来将每个接收到的Source端响应的K序列再次发回Source端。
•在Source端,反向下行链路接收器将使用这些Sink端响应的K序列来解决“最小链路往返延迟(Min Link RTD)”。Source端下行链路PAM-X TX PCS不应响应接收到的Sink端响应的K序列。Source端可以识别出Sink端响应的K序列,因为它们在Source端发送其Souce端响应的K序列后的100微秒(µS)内就会被Source端接收到。
图58 对称Q端口K生成/响应
8.3.1.9.3 对称Q端口JITC Re-Training
在对称Q端口中,当在Normal模式下工作时,链路的每一端都可以请求链路另一端发送Re-Training序列:
•“发起端”应从下一个Token边界开始(如有必要则中断一个数据包),向另一端发送一个Re-Training序列,以启动Re-Training进程。
•“响应端”一旦检测到这样的Re-Training序列,一个“响应端”(尚未发送此序列的伙伴)应从下一个Token边界开始(如有必要则中断一个数据包)发送Re-Training序列。
•Re-Training序列由TX_ReTRAIN_ISS_NUM个ISS Symbol随后跟着TX_ReTRAIN_IDLE_NUM个Idle Symbol组成,具体如表44所示。请注意,由于下行扰码器与反向下行扰码器正交,因此这两个再训练序列也是正交的。
•完成Re-Training序列后,两端的发射器可以发送数据包,但它应将实际使用的最大子集限制为sCMax/2。(例如,对于sCMax = sC1616的链路,它应使用的最大子集为sC816)。
当某端检测到已使用图78所示格式在另一方向上传输了sCMax请求时,它可以使用sCMax子集再次开始发送数据。
“响应端”发射器应按照图57所示的Re-Training过程状态机进行操作,从该状态机的状态0开始。同样,“发起端”发射器也应按照该状态机进行操作,在发起Re-Training请求时直接进入状态1。请注意,由于噪声可能会影响同等级别的两端,因此两端通常都会充当“发起端”。
8.3.2 8B/10B PCS
8B/10B PCS(图59)在上行链路上使用,用于所有档位,用于两个配置。它用于下行链路/反向下行链路的档位#1和#2。对于配置1,档位#3的下行链路也使用8B/10B PCS。
8B/10B TX PCS封装A包,使用‘ A-P封装’模块(参见章节8.3.2.8.6),将A包逐字节转换为10B Symbool(8B/10B编码),然后通过链路逐bit发送(LSB到MSB)。
当在上行链路上操作时,8B/10B TX PCS还使用“上行请求插入”模块将几个Requests/ Ack-Indications插入字节流中。当在反向下行链路上发送Requests/ Ack-Indications时,它们应使用具有类似的格式和A包包头的A包封装,详见章节8.2.3.3。
8B/10B TX PCS有三种工作模式:
1. Training Mode
在链路启动时,Training模式用于使接收端同步到10b word边界并锁定其解码器。
2.Idle Mode
在链路启动期间,从Training模式移出的中间模式只传输加扰器内容(数据为零)。
3.Normal Mode
正常运行数据包传输。
图59 PCS框图
8.3.2.1 10b Symbol到NRZ映射
8B/10B Symbol的表示法是“abcdeifghj”,其中“a”位首先传输。每个比特按表45传输。
8.3.2.2 8B/10B 编码
所有传输的信息均应根据附件B中指定的数据和控制符号分配进行8B/10B编码。
在对一个数据/控制字节(CM=0)进行编码时,需要传输10b数据Symbol。
在编码控制标志(control mark)(CM=1)时,将B[7:0]置零,以保证SB[7:0]反映扰码器内容,并根据当前扰码器输出的3个LSB SB[2:0]发送10b控制符号,如表46所示。
表46 8B/10B 编码
8.3.2.3 上行/反向下行加扰器
当使用8B/10B PCS实现上行/反向下行链路时,加扰器应使用图60所示的LFSR 实现。
图60 上行/反向下行TX加扰器LFSR
图60的LFSR也可以表示为多项式:
Note:
如果多项式和图之间的解释有任何差异,则将图视为正确的。
加扰器的58位种子应由TX PCS初始化为具有至少一bit1的任意值。对于每个10b symbol周期,加扰器产生8位,即S[7:0],其中S[0]表示在该周期内产生的第一个比特。
上行/反向下行链路TX应使用该加扰器产生一个加扰的数据/控制字节SB[7:0],该字节等于B[7:0] XOR S[7:0]。
8.3.2.4 下行加扰器
当使用8B/10B PCS实现下行链路时,扰频器应使用图51所示的LFSR实现。
加扰器的58位种子应由TX PCS初始化为具有至少一bit1的任意值。对于每一个10b symbol周期,加扰器应产生8bit,即S[7:0],其中S[0]表示该周期内产生的第一个比特。
下行链路TX应使用该加扰器产生一个加扰数据/控制字节SB[7:0],该字节等于B[7:0] XOR S[7:0]。
8.3.2.5 字节流控制
8.3.2.5.1 数据字节
数据字节携带A包或者Req/Ack的内容,如下所述。
当没有其他东西可以传输时,8B/10B TX PCS应传输携带扰码器的输出bit的零字节(即CM=0和B[7:0]=0)。接收方可以连续检查这些零字节(即接收方知道的0)的内容,以验证它仍然与发送方保持良好的同步。
8.3.2.5.2 控制字节
控制字节携带控制信息,由两个控制小块组成:CN1和CN2。
8.3.2.5.3 启动控制序列
启动控制序列在链路启动期间用于标记操作模式转换和启动过程中所需的其他指示,参见第8.3.3节。
启动控制序列不应在启动完成后的一段时间内发送,但要在发送第一个A包之前发送。
一个启动控制序列应该由一个控制标记(即CM=1且B[7:0]=0)紧跟着两个相同的控制字节组成,如表47所定义。
表47 启动控制
在给定的操作模式中,在产生一个启动控制序列之后,在至少256µS之内,不应发送额外的启动控制序列。当改变操作模式时,可以立即发送一个新的启动控制序列来标记该变化。
8.3.2.5.4 正常控制程序
一个正常的控制序列应由一个控制标志(CM=1, B[7:0]=0)紧跟着一个控制字节组成。正常控制序列应在正常模式下用于标记包的边界和Req/Ack边界,详见表48。
单个正常控制字节可以将前一个数据包或req的结尾(在CN1中)和新数据包或req的开始或延续(在CN2中)结合起来;在随后的章节中使用通配符表示(即星号字符:*)。
表48 正常控制
8.3.2.6 Training模式
在没有K序列的Training中:
• 8B/10B TX PCS只传输0字节。
在有K序列的Training中:
• 在Sink端,8B/10B上行/反向下行TX PCS传输零字节,同时在自身传输的情况下提高下行接收质量。在达到足够的接收质量后,当下行链路接收器准备好接收来自源的k序列时,上行/反向下行链路TX PCS应开始定期将零字节与k序列交织,以“k序列可变周期”间隔分隔。
• 在Source端,8B/10B下行链路TX PCS应传输零字节与响应k序列交织。每当Source端检测到上行链路接收到的k序列时,都会发送每个响应的k序列。Source端只有在其上行接收器的反扰器被很好地锁定后才能使用此过程(也称为“k反射”)。
每个K序列应由K28.5(比喻为逗号)控制10b symbol组成,在RD= - 1 (K28.5 Pos: ' 001111 1010 ')时发送,而不违反8B/10B运行差异规则(即,K28.5 Pos 在字节流中的确切位置应相应调整),后面至少有两个零字节。
每发送一个k序列,计算下一个k序列可变周期;其值在256 ~ 400µS之间。
Note:
实现伪随机地选择k序列可变周期的一种方法是使用扰频器输出的7位来计算其值:
图61 带K序列Training的例子
接收器使用接收到的k序列来解析10b-symbol边界和信道极性(当信道是差分时),然后用于锁定接收端的解扰器。
在成功接收到响应k序列并锁定自己的解扰器后,Sink应停止发送k序列。然后可以生成半幅启动控制序列,该序列由控制标记(CM=1和B[7:0]=0)紧跟着两个下行半幅控制字节(CN1=STS, CN2=DHA)组成;参见图62。
图62 DHA 启动控制序列
8.3.2.7 Idle 模式
在Idle模式下,8B/10B TX PCS应发送零字节与In_idle启动控制序列交织的序列(见图63)。
如图63所示一个In_idle启动控制序列由一个控制标志(CM=1和B[7:0]=0)紧跟着两个In_idle控制字节组成(CN1=STS, CN2= idle)。
图63 In_Idle启动控制序列
在Sink端,当准备进入到Idle模式时,第一个 In_idle启动控制序列在进入Idle模式后应立即发送。只要没有从Source接收到“In Idle”指示,In_idle启动控制序列继续发送(它们之间有适当的间隔)。注意,下行链路也可以是PAM-X下行链路。
在Source端,8B/10B 下行链路TX PCS应传输响应In_idle启动控制序列。每当Source端准备进入Idle模式,或已经处于Idle模式并检测到通过上行链路接收到的In_idle启动控制序列时,都应发送一个响应In_idle启动控制序列。
Sink端的8B/10B下行链路接收器应使用这些响应In_idle启动控制序列计算最小链路RTD。
8.3.2.8 Normal模式
在Normal模式下上行/反向下行链路上,字节流控制器将按照以下优先级(由高到低)传递Req、Ack和数据包:
1.Re-Train请求
2.sCMax请求
3.第8.2.3节和8.2.4节中规定的单次和间隙重传请求(以先到先得的顺序)。
4.Ack指示
5.数据包
在数据包传输期间向上行链路发送端提出的Req和/或Ack指示不应等待其完成;它们应立即传输,中断数据包的传输,具体细节如下。中断Req和/或Ack应在控制字节中以INT CN1开始。
在反向下行链路上发送的Req/Ack应使用A包封装,详细见第8.2.3.3节中说明的类似格式和A包头,并且不得中断任何其他A包。
上行/反向下行接收端接收到的Req/Ack,如果其CRC字段是坏的,或者如果其中一个10B符号被8B/10B解码器检测为无效的10B符号(例如作为一个10B符号不是RD+或RD -符号列表中使用的10B符号之一),则应丢弃。添加此附加条件是为了减少“假阳性”,Req/Ack,检测的概率。
当所有Req/Ack都已传输时,中断的数据包应继续发送。CN1: RE 和 CN2: PC 应该用于结束Req并继续数据包的控制字节。
在Normal模式下行链路上,字节流控制器不应发送Req/Ack。当从Idle模式转换到Normal模式时,在发送第一个A包之前,8B/10B TX PCS 应发送零字节与In_Normal启动控制序列交织的序列。根据图65,In_Normal启动控制序列应包括一个控制标志(CM=1和B[7:0]=0)紧跟着两个In_Normal控制字节(CN1=STS, CN2=NML)。
第一个In_Normal启动控制序列应在进入Normal模式后立即传输。
Re-Train请求信号下行发送器开始发送JITC Re-Train序列(见章节8.3.1.8)。
根据图66,Re-Train请求由以下组成:
• 一个控制标志(Control Mark,CM)
• 带有一个 RTR CN2 的控制字节
• 数据字节,承载第一个控制字节的CRC,按照8.2.5.3节的规定计算。
• 另一个控制标志(Control Mark,CM)
• 另一个控制字节,带有一个RE CN1和一个RTR CN2
• 另一个数据字节,包含第二个控制字节的CRC,按照8.2.5.3节的规定计算。
• 一个控制标志(Control Mark,CM)
• 带有一个 RE CN1 的第三个控制字节
出于丢弃目的,重新训练请求应被视为两个独立的背靠背请求,并应独立检查其丢弃条件。
图66 Re-Train 请求
8.3.2.8.2 sCMax 请求
一个sCMax请求通知下行链路发送器,它可以发送较低的子集后开始发送sCMax符号(参见章节8.3.1.8)。
一个sCMax请求向下行链路发射机发出信号,表明它可以在根据之前的每一个Re-Train请求(见第8.3.1.8节)传输较低子集后开始传输sCMax符号。
根据图67,sCMax请求应包括:
• 一个控制标志(Control Mark,CM)
• 带有一个 CMR CN2 一个控制字节
• 另一个数据字节,包含第一个控制字节的CRC,按照8.2.5.3节的规定计算。
• 另一个控制标志(Control Mark,CM)
• 另一个带有一个 RE CN1 的控制字节
图67 sCMax请求
一个中断的sCMax请求应由上行链路TX和RX放弃。
8.3.2.8.3 单次重传请求
单个重传请求向下行链路发送器发出重传单个A包的信号。根据图68,单个重传请求应包括:
• 一个控制标志(Control Mark,CM)
• 带有一个 RRS CN2 一个控制字节
• 一个数据字节,承载下行链路A包请求的MC
• 另一个数据字节,包含前两个字节的CRC
• 另一个控制标志(Control Mark,CM)
• 另一个带有一个 RE CN1 的控制字节
中断后,应重复中断的单重传请求
8.3.2.8.4 重传间隔请求
间隙重传请求向下行链路发送重传一系列连续的下行链路数据包的信号。
根据图69,间隙重传请求应包括:
• 一个控制标志(Control Mark,CM)
• 带有一个 GRS CN2 一个控制字节
• 一个包含MC1的数据字节,即8.2.3节中指定的最后匹配的MC1
• 另一个数据字节,包含MC2,即8.2.3节中规定的间隙后的 MC
• 第三个数据字节,包含前三个字节的CRC
• 另一个控制标志(Control Mark,CM)
• 另一个带有一个 RE CN1 的控制字节
图69 重传间隔请求
中断的间隙重传请求应在中断完成后重复。
8.3.2.8.5 Ack指示
Ack指示指示下行链路发送器释放所有活动的MC,包括“此MC”。
根据图70,Ack指示应包括:
• 一个控制标志(Control Mark,CM)
• 带有一个 ACK CN2 一个控制字节
• 一个包含“this MC”值的数据字节
• 另一个数据字节,包含前两个字节的CRC
• 另一个控制标志(Control Mark,CM)
• 另一个带有一个 RE CN1 的控制字节
图70 Ack指示
中断的Ack指示应在该中断完成后重复。
8.3.2.8.6 数据包
根据图71,一个数据包应包括:
• 一个控制标志(Control Mark,CM)
• 带有一个 PS CN2 一个控制字节
• 按顺序包含A包字节的数据字节
• 另一个控制标志(Control Mark,CM)
• 另一个带有一个 RE CN1 的控制字节
数据包可以被有效地连着封装,如图72所示:
图72 背靠背A包:8B/10B封装
在上行链路上操作时,可能会出现Req/Ack导致数据包中断的情况。继续发送的中断的数据包由以下组成:
• 一个控制标志(Control Mark,CM)
• 一个控制字节,其中PC CN2和RE CN1属于中断请求
• 数据字节包含剩余的A包字节,按顺序排列
• 一个控制标志(Control Mark,CM)
• 一个控制字节,带有PE CN1
8.3.2.9 双速率上行链路
双速率上行链路DRU (Double Rate Uplink) 8B/10B PCS在上行链路上传输A包,传输速率可达正常上行链路数据速率的2倍。图74用红色显示了附加功能,用红色虚线显示了增强功能。
DRU(数据速率单元)的操作应与常规的8B/10B上行链路类似,但本节下文另有说明的除外。
当启用En_DR指示时,DRU的8B/10B TX PCS(物理编码子层)将使用PAM4符号传输A数据包头部、有效载荷和尾部字节,其结果是以下过程将在每个10b(即100纳秒)符号周期内执行一次:
• 字节流控制器收集两个连续的A包字节,形成一个字节对{B,B2}。
• 扰码器对该字节对进行扰码,生成扰码字节对{SB,SB2}。
• 默认的8b10b编码器从SB生成第一个10b符号,第二个8b10b编码器从SB2生成第二个10b符号,共同组成所得到的10b symbol对。
• 为了传输,PAM4编码器将10b symbol对映射为10个PAM4 symbol。
如果A包 Payload字节数为奇数,那么为了完成最后一个字节对,在最后一个A包 CRC32字节之后,需要添加一个零数据字节(即值为0x00)。这个额外的零字节将被视为A包尾部(用En_DR传输)。
不属于A包报头、有效载荷或包尾的所有其他字节,En_DR应设置为零,使用默认的8b10b编码器传输NRZ符号。
当En_DR被激活时,第二个8b10b编码器才会工作(即才会更新其运行中的不平衡度)。第二个8b10b编码器应作为独立的8b10b编码器工作,即它不依赖于默认的8b10b编码器的不平衡度。
如第8.3.2.9.2节所述,在Idle模式开始时(即通过断言scr16),扰码器应转变为每10b符号周期(100纳秒)产生16位。
图74 RTU PCS结构图
8.3.2.9.1 10b symbol对到PAM4的映射
10b符号的表示法是“abcdeifghj”,其中“a”位最先传输。一个10b符号对包括第一个10b符号“a1b1c1d1e1i1f1g1h1j1”和第二个10b符号“a2b2c2d2e2i2f2g2h2j2”。每一对比特(从{a1,a2}到{j1,j2})应根据表49进行传输。
8.3.2.9.2 DRU 加扰器
扰频器应使用如图60所示的常规上行链路LFSR。
扰码器应按照第8.3.2.3节的详细说明开始工作。在Idle模式开始时,它应转变为每个10b符号周期产生16位(通过断言scr16来表示)。(也就是说,对于每个10b符号周期,扰码器应产生S[15:0],其中S[0]表示该周期内产生的第一个比特。)DRU TX 应使用这些比特来产生:
• 第一个是经过扰码的数据字节SB[7:0],它应等于B[7:0]与S[7:0]进行XOR(异或)运算的结果,并且
• 第二个是经过扰码的数据字节SB2[7:0],它应等于B2[7:0]与S[15:8]进行XOR(异或)运算的结果。
如图75所示,该转换应在第一个In_idle启动控制序列传输后的第一个符号上发生。
8.3.2.9.3 DRU JITC Re-Training
由于P2 PAM4 DRU接收器需要更多时间从NBI(非回溯干扰)攻击中恢复,因此应使用DRU Re-Train程序,并与第8.3.1.8节中规定的下行链路重新训练相结合。
DRU Re-Training应使用以下TX阶段(Sink端为DRU TX):
• 第一阶段:持续发送NRZ调制的Re-Training Request(RTR)序列,直到检测到下行链路ISS序列或Idle状态。
• 第二阶段:仅可以发送NRZ请求和Idle状态,直到来自Source的sCMax请求到达,或者NRZ周期达到2µS(从程序开始算起总计)。
• 第三阶段:恢复正常。现在可以发送PAM4调制的数据包。
当Sink(下行链路RX功能)需要下行链路重新训练时,它应通过发送连续的NRZ调制重新训练请求(Re-Training Request,RTR)序列来在下行链路方向和DRU方向上触发Re-Training程序,直到检测到ISS序列或良好的Idle状态。连续的NRZ调制RTR序列应使用图82中所示的格式。
当Source(DRU RX功能)需要重新训练时,它应通过下行链路发送重新训练请求来仅触发DRU方向的重新训练程序,使用与第8.2.3.3节中规定的相同约定和A-Header格式,但使用图77中所示的有效载荷格式。
一旦Sink接收到这样的重新训练请求(RTR),且处于Normal模式(即DRU Re-Training程序第三阶段),它将中止当前正在传输的任何数据包,并直接进入DRU Re-Training程序第二阶段;因此,不会触发下行链路Re-Training。如果通过下行链路接收到此RTR的Sink已经在第一阶段通过DRU触发了自己的RTR,并且现在处于第一阶段或第二阶段,那么应忽略接收到的RTR。
如果Source 已经触发了DRU Re-Training,或者(由于Sink通过DRU发送的RTR)已经开始了下行链路Re-Training,并且其PAM4接收能力已经恢复,那么它应通过下行链路生成一个sCMax请求,以缩短 Sink TX的第二阶段持续时间。
DRU sCMax请求应使用与第8.2.3.3节中规定的相同约定和A-Header格式在下行链路上发送,但使用图78所示的有效载荷格式。
8.3.2.10 非对称Q端口8B/10B反向下行
非对称Q端口的8B/10B反向下行链路应与非对称Q端口的常规8B/10B下行链路类似,除非本节中有以下说明。
8.3.2.10.1 非对称Q端口反向下行加扰器
当使用8B/10B PCS实现反向下行链路时,加扰器应使用第8.3.2.3节中规定的上行链路加扰器LFSR实现。
8.3.2.10.2 “反向下行”JITC Re-Training
反向下行接收器(即位于Source端的RX功能)不得向Sink发起Re-Training请求。
当Sink(即下行链路RX功能)需要下行链路Re-Training时,它将触发连续重新训练请求(RTR)序列,通过反向下行链路发送,直到它检测到下行链路ISS序列或Idle。
连续的再训练请求(RTR)序列应包括使用图77所示格式背对背传输的A数据包。
当Sink恢复其在下行链路接收sCMax子集的能力时,它将使用图78所示的格式通过反向下行链路发送sCMax请求。
8.3.3重复加扰器复位测试(RSRT)模式
重复扰码器复位测试(RSRT)模式旨在辅助合规性测试。它为扰码器定义了精确同步的复位点,从而更容易准备和存储一个固定模式,并在测试期间反复传输该模式(58位扰码器重复将花费太长时间)。
在RSRT模式下,扰码器应在以下点重置为全1(即所有58位设置为1):
•第一个复位点:在启动序列期间从Idle模式到Normal模式的转换
•下一个复位点:从第一个重置点算起,每2^N个符号。
以下小节详细介绍了这些重置点。
只有当寄存器FEATURE_CAP中的RSRT_ST设置为1时,才能选择RSRT模式(见表111)。如果字段RSRT_ST设置为1,则在寄存器FEATURE_CTRL中设置字段RSRT_EN应启用RTRS模式(见表112)
8.3.3.1第一个复位点
在RSRT模式下,扰码器应被重置的第一个重置点是启动序列期间从Idle模式过渡到Normal模式的转换点:
•对于PAM-X(下行链路):在检测到四个反向空闲符号和四个空闲符号序列时的最后一个空闲符号处(见图54和图55)。
•对于NRZ(上行链路/下行链路):在检测到首次正常启动控制序列,第二个CN2:NML后(见图65)
第一重置点也应用于symbol计数参考。symbol计数应在第一个复位点重置为零,并从该点开始随每个symbol递增。
8.3.3.2 下一个复位点
在RSRT模式下,扰码器应被复位的下一个复位点是从第一个复位点开始每隔2^N个symbol的位置。扰码器应在2^N symbol序列的最后一个symbol处被重置,以便下一个2^N symbol序列的第一个symbol使用种子值进行扰码。N的默认值为21,并通过寄存器FEATURE_CTRL中的字段RSRT_NVAL进行配置。
8.3.4 启动程序
定义了两种启动程序:
•“任务模式”启动:这是一个面向连接的启动过程,其中每一次成功的状态转换都是由链路伙伴的响应触发的。这种启动类型用于实际操作。请参阅第8.3.4.1节。
•单向启动:这是一个无连接的启动过程,其中所有转换都是基于时间的,由Source触发而不依赖于Sink的响应。Sink无论是否进行自己的传输,都应跟上启动序列。这种启动类型用于旨在测试接收器PMD性能的特殊测试模式。请参阅第8.3.4.2节。
下行链路方向(Source到Sink)可以使用8B/10B PAM-X单通道PCS或PAM-X双通道PCS来实现。
上行链路方向(Sink到Source)应被如下实现:
•对于单路端口:用8B/10B 上行PCS
•对于高非对称双路Q端口:在lane0上用8B/10B 上行PCS
•对于非对称Q端口:在lane#1用单向反向下行8B/10B PCS
•对于对称Q端口:在lane#1上用单向反向下行PAM-X单路PCS
在本节中,术语K-Sequence的含义取决于编码:
•对于8B/10B PCS上行链路/下行链路/反向下行链路,适用第8.3.1.9节中的定义
•对于PAM-X,适用第8.3.1.5节中的定义
当不传输任何信号时,端口或通道被认为处于Silent状态。
8.4.3.1 “功能模式”启动程序
图79 典型的启动程序
In a typical startup procedure, the Source acts as the Primary Clock and the Sink acts as the Secondary Clock. The typical startup procedure, illustrated in Figure 79, consists of the following steps:
1. While in Silent State, the Source shall verify that the Sink is also in Silent state.
2. Using its own reference clock, the Source shall start transmission of the Downlink training
sequence without K-Sequences.
3. The Sink’s Downlink receiver shall detect the received signal, recover the clock, and solve the
channel for sufficient quality. Then, using the recovered clock, it shall start transmission of the
Uplink / Reverse Downlink training sequence with K-Sequences.
4. The Source’s Uplink / Reverse Downlink receiver shall detect the received signal, solve the
channel for sufficient quality, and then lock its Uplink descrambler by resolving polarity if needed.
Then it shall reflect the Downlink K-Sequences into the Downlink training sequence it is already
transmitting. One reflected K-Sequence shall be sent each time the Source’s Uplink / Reverse
Downlink receiver detects a K-Sequence.
5. The Sink’s Downlink receiver:
A. Shall use these incoming reflected K-Sequences to resolve token/10b-Symbol boundaries and
polarity swaps, shall compute ‘Min Link RTD’, and shall lock its descrambler;
B. At this stage the Sink’s descrambler is locked, so it can predict all data arriving from the
Source (if Sink doesn’t transmit K-Sequences, then the Source will also not reflect them), the
Sink’s Downlink receiver may now request the Source to reduce its nominal TX amplitude to
half (using the DHA Uplink Startup Control Sequence per Section 8.3.2.6).
C. In such a case, the Source upon reception of the DHA Startup Control Sequence shall reduce
its amplitude to half while continuing with its training sequence transmission. The Source
shall complete such amplitude reduction, reaching a stable half amplitude, within 250 µS
from the DHA Startup Control Sequence reception.
D. If the Sink fails to recover its good operating point after such change in Source amplitude,
then it shall reset the start-up procedure. Otherwise, the Sink’s Uplink / Reverse Downlink
transmitter shall transition from Training Mode to Idle Mode as specified in Section 8.3.2.7.
6. The Source’s Uplink / Reverse Downlink receiver shall detect the Uplink / Reverse Downlink Idle
sequence, and then its Downlink transmitter shall transition from Training Mode to Idle Mode as
specified in Section 8.3.2.7 for 8B/10B and in Section 8.3.1.5 for PAM-X.
7. The Sink’s Downlink receiver shall detect the transition into Idle Mode, and then its Uplink /
Reverse Downlink transmitter shall transition from Idle Mode to Normal Mode as specified in Section 8.3.2.8. A Port transitioning into Normal Mode means that the Port is now ready to receive
data packets
8. The Source’s Uplink / Reverse Downlink receiver shall detect the Sink’s transition into Normal
Mode, and then its Downlink transmitter shall transition from Idle Mode to Normal Mode as
specified in Section 8.3.2.8 for 8B/10B and in Section 8.3.1.6 for PAM-X, concluding successful
startup. The Source shall not send data packets towards the Sink before concluding successful
startup.
9. The Sink’s Downlink receiver shall detect the Source’s transition to Normal Mode, which
concludes successful startup. The Sink shall not send Data Packets to the Source until and unless
startup concludes successfully.
Table 50 summarizes Handshake Indications between the Link partners:
• Starting at Step 3, where both partners are transmitting, the absence of the receive signal for
SILENTDETT shall be considered as an indication that the Link partner has entered a Silent State.
• If the Source detects that the Sink entered Silent State, then the Source shall first enter Silent State
for a period of at least MINSILENTT, and then start over. If the Sink detects that the Source entered
Silent State, then the Sink shall also enter Silent State and then wait for the Source to start over.
• If the Source did not reach completion of step 4 within a period of MAX4COMPT after its start of
transmission in step 2, then the Source shall restart the procedure by entering Silent State.
• If the Source did not reach completion of step 8 within a period of MAX8COMPT after its start of
transmission in step 2, then the Source shall restart the procedure by entering Silent State.
• If a Link partner identifies a non-recoverable error condition during startup or normal operation, then
it shall restart the startup procedure by entering Silent State and then waiting for its Link partner to
also enter Silent State.
在典型的启动程序中,源(Source)作为主时钟,而接收端(Sink)作为从时钟。图79所示的典型启动程序包括以下步骤:
- 在Silent状态下,源应验证接收端也处于Silent状态。
- Source应使用其自身的参考时钟开始传输不包含K序列的下行链路训练序列。
- Sink端的下行链路接收器应检测接收到的信号,恢复时钟,并解决信道质量问题。然后,使用恢复的时钟,它应开始传输包含K序列的上行链路/反向下行链路训练序列。
- Source的上行链路/反向下行链路接收器应检测接收到的信号,解决信道质量问题,然后根据需要判断极性来锁定其上行链路解扰器。然后,它应将下行链路K序列反射到其正在传输的下行链路训练序列中。每次Source的上行链路/反向下行链路接收器检测到K序列时,都应发送一个反射的K序列。
- Sink的下行链路接收器:
A. 应使用这些传入的反射K序列来解决token/10b符号边界和极性交换,计算“最小链路往返延迟时间”(Min Link RTD),并锁定其解扰器;
B. 在此阶段,Sink端的解扰器已锁定,因此它可以预测从Source发送到这里接收到的所有数据(如果Sink端不传输K序列,则Source也不会反射它们)。此时,接收端的下行链路接收器可以请求Source将其名义上的发射(TX)幅度减半(使用第8.3.2.6节中的DHA上行链路启动控制序列)。
C. 在这种情况下,Source在接收到DHA启动控制序列后,应在继续传输训练序列的同时将其幅度减半。Source应在从接收到DHA启动控制序列起的250微秒内完成这种幅度减小,达到稳定的半幅度。
D. 如果在改变Source的幅度后,接收端无法恢复其良好的工作点,则应重置启动程序。否则,Sink端的上行链路/反向下行链路发射器应如第8.3.2.7节所述从训练模式过渡到空闲模式。 - Source的上行链路/反向下行链路接收器应检测上行链路/反向下行链路空闲序列,然后其下行链路发射器应如第8.3.2.7节(针对8B/10B)和第8.3.1.5节(针对PAM-X)所述从训练模式过渡到空闲模式。
- Sink端的下行链路接收器应检测到空闲模式的转换,然后其上行链路/反向下行链路发射器应如第8.3.2.8节所述从空闲模式过渡到正常模式。端口过渡到正常模式意味着该端口现在已准备好接收数据包。
- Source的上行链路/反向下行链路接收器应检测到Sink端过渡到正常模式,然后其下行链路发射器应如第3.2.8节(针对8B/10B)和第3.1.6节(针对PAM-X)所述从空闲模式过渡到正常模式,从而完成成功启动。Source在成功启动之前不得向Sink端发送数据包。
- Sink端的下行链路接收器应检测到源过渡到正常模式,从而完成成功启动。Sink端在成功启动之前不得向Source发送数据包。
表50总结了链路伙伴之间的握手指示:
• 从第3步开始,当两个伙伴都在传输时,如果未接收到SILENTDETT信号,则应视为链路伙伴已进入静默状态的指示。
• 如果Source端检测到Sink端进入了静默状态,则Source端应首先进入静默状态,持续时间至少为MINSILENTT,然后重新开始。如果Sink端检测到Source端进入了静默状态,则Sink端也应进入静默状态,然后等待Source端重新开始。
• 如果Source端在步骤2开始传输后的MAX4COMPT时间内未完成第4步,则Source端应通过进入静默状态来重新启动程序。
• 如果Source端在步骤2开始传输后的MAX8COMPT时间内未完成第8步,则Source端应通过进入静默状态来重新启动程序。
• 如果链路伙伴在启动或正常运行期间识别到不可恢复的错误状态,则它应通过进入静默状态并等待其链路伙伴也进入静默状态来重新启动启动程序。
表51启动程序的时间段
8.3.4.2 单向启动程序
图80所示的单向启动程序包括以下步骤:
1. While in Silent State, the Source shall verify that the Sink is also in Silent state.
2. Using its own reference clock, the Source shall start transmission of the Downlink training
sequence without K-sequences, and reset its T2KT timer to the value in Table 52.
3. When the T2KT timer expires, the Source shall add the Downlink K-Sequences to the Downlink
training sequence that it is already transmitting, and shall reset its T2IT timer to the value in Table
52.
4. When the T2IT timer expires, the Source Transmitter shall transition from Training Mode to Idle
Mode, followed by the Idle sequence, and shall then reset its T2NT timer to the value in Table 52.
5. When the T2NT timer expires, the Source Transmitter shall transition from Idle Mode to Normal
Mode, which concludes a successful startup.
During the above procedure, the Sink Receiver shall follow the sequence and reach successful normal
operation.
If the Sink was instructed (per Section 9.1.2.6) to perform Unidirectional startup with Sink transmission, then it shall add its own Uplink transmission as specified in the Mission Mode Startup Procedure (Section 8.3.4.1).
If the Sink was instructed to perform Unidirectional startup without Sink transmission, then it shall be in
Silent State at all times.
If the Sink detects that the Source entered Silent State, then the Sink shall also enter Silent state and then wait for the Source to start over.
In the case of a Unidirectional Startup with Sink transmission (per step 3), if the Source detects that the Sink entered Silent State, then the Source shall first enter Silent State for a period of at least MINSILENTT, and shall then start over.
- 在静默状态下,Source端应验证Sink端也处于静默状态。
- Source端应使用自己的参考时钟开始传输不包含K序列的下行链路训练序列,并将其T2KT定时器重置为表52中的值。
- 当T2KT定时器超时后,Source端应将下行链路K序列添加到其正在传输的下行链路训练序列中,并将其T2IT定时器重置为表52中的值。
- 当T2IT定时器超时后,Source端发射机应从训练模式过渡到空闲模式,随后执行空闲序列,然后将其T2NT定时器重置为表52中的值。
- 当T2NT定时器超时后,Source端发射机应从空闲模式过渡到正常模式,这标志着成功完成启动。
表52 单向启动程序的计时器值
在上述过程中,Sink端接收器应遵循该顺序并成功进入正常操作状态。
如果Sink端被指示(根据第9.1.2.6节)执行带Sink端传输的单向启动,则它应按照任务模式启动程序(第8.3.4.1节)的规定添加其自身的上行链路传输。
如果Sink端被指示执行不带Sink端传输的单向启动,则它应始终保持静默状态。
如果Sink端检测到Source端进入了静默状态,则Sink端也应进入静默状态,然后等待Source端重新开始。
在带Sink端传输的单向启动(根据第3步)的情况下,如果Source端检测到Sink端进入了静默状态,则Source端应首先进入静默状态,持续时间至少为MINSILENTT,然后重新开始。
9 PMD电气规范
本节包含A-PHY的三个物理介质依赖项(Physical Media Dependents PMD)的电气规格:
1.PAM-X PMD: 下行链路工作在4 GBaud
2.NRZ PMD: 下行链路以NRZ调制和8B/10B编码(10B个符号)在2 Gbps、4 Gbps和可选的8 Gbps
3.Uplink PMD:以100 Mbps NRZ或200 Mbps PAM4调制8B/10B编码运行
每个PMD实施应符合每个小节中的所有一般要求,并符合与特定PMD相关的任何特殊考虑(例如,PAM-X PMD的LFSR输出使用)
9.1 TX电气规范
发射机的电气规格在TPA(传输功率调整)符合点处定义,如图83所示,并且应使用本部分中规定的测试模式、测试夹具、测试程序以及后处理例程进行测量。
图83 TPA合规点
在本节中,术语SRG是指发射机的符号率除以10^9(即1吉)。例如,对于下行链路,G1的SRG为2,G2的SRG为4,G5的SRG为4。对于上行链路,所有档位的SRG均为0.1。
9.1.1测试模式模式生成器(TMPG)
测试模式模式生成器(TMPG)应持续使用图84所示的LFSR来生成是TMP_LEN TMPG_Periods的重复伪随机序列。
在使用LFSR时:
•初始种子值应为20'hFFFFF(即全部为1)
•TMPG_Period被定义为PAM-X PMD的“符号周期”和其他PMD的“10b符号周期”
•TMP_LEN TMPG_Periods后,LFSR应重置为初始种子值(即所有种子值,20'hFFFFF)。
•FOR NRZ/Uplink PMD:对于每个TMPG_Period(n),应使用线性反馈移位寄存器S[00:07]的前8位(注意,S[07]是该8位值的最低有效位)通过8B/10B编码对10b符号进行编码,然后线性反馈移位寄存器应生成接下来的8位,存储在S[00:07]中,以供下一个10b符号周期使用。
•For PAM-X PMD:对于每个TMPG_Period(n),线性反馈移位寄存器种子(LFSR seed)的S[12:15]位(注意,S[15]是该4位值的最低有效位)应被用于对通道0的子集符号进行编码,如表57所示。对于双通道PAM-X,LFSR种子的S[08:11]位应被用于对通道1的子集符号进行编码,然后LFSR应生成接下来的16位,存储在S[00:15]中,以供下一个符号周期使用。(注意,实际上只使用这些16位的最低有效位:单通道使用最低的4位,双通道使用最低的8位。)
• For PAM-X PMD:TMPG(训练模式生成器)应生成一个周期,该周期包含两个TMP_LEN长度的TMPG_Period序列。在第一个TMP_LEN长度的TMPG_Period序列中,TMPG应使用正常极性对子集符号进行编码;而在第二个TMP_LEN长度的TMPG_Period序列中,TMPG应使用反向极性对子集符号进行编码(即,确保该周期的直流分量为零)。
FOR PAM-X PMD:LFSR输出使用情况:
•PHY应在每个符号周期内使用表57所示的符号
•表57所示的比特序列应用于生成子集符号
以下示例演示了LFSR的使用
•前5个符号周期的LFSR输出如表58所示
•sC1616编码如表59和表60所示
表59 PAM-X单通道sC1616编码
表60 PAM-X双通道sC1616编码
•sC816编码如表61所示
表61 PAM-X单通道sC816编码
•sC416编码如表62所示
•sC216编码如表63所示
请注意,sC2Lvl取决于档位,如表34所示。
9.1.2测试模式
9.1.2.1 TM1: Test Mode 1: Transmit PSD TM1:测试模式1:传输PSD
该测试应用于验证发射机是否符合发射PSD掩码。
当TM1启用时,PHY应连续传输测试模式模式生成器序列,其中:
9.1.2.2 TM2: Test Mode 2: Droop TM2:测试模式2:下降
该测试应用于验证发送器压降
当TM2启用时,PHY应连续传输128 nS的“+(峰值TX幅度)”符号,紧跟着128 nS的“−(峰值TX幅度)”符号。
在过零后20 ns和过零后100 ns测量振幅(见图85)。
9.1.2.3 TM3: Test Mode 3: Transmit Jitter TM3:测试模式3:传输抖动
该测试应用于验证发送器抖动
当TM3启用时,PHY应连续传输一个“+(峰值TX幅度)”符号的模式,紧随其后的是一个“-(峰值TX振幅)”符号。
9.1.2.4 TM4: Test Mode 4: Transmit Linearity TM4:测试模式4:传输线性
该测试应用于验证发送器线性。
当TM4启用时,PHY应连续传输测试模式模式生成器序列,其中:
9.1.2.5 TM5: Test Mode 5: In Silent State TM5:测试模式5:处于静默状态
此测试应用于验证终端节点(End Node)的RL(回波损耗)/XTalk(插损)等特性,以符合第6.6.3节中所述的限值线测试要求,主要是为了确保在测试期间能够呈现出物理层(PHY)的“任务模式”下的复阻抗(即电阻、电感和电容阻抗分量的综合效应)。
当TM5启用时,PHY应通电,为了显示其“任务模式”对数据线的复阻抗,不传输任何信号(即静音状态)
9.1.2.6 TM6: Test Mode 6: Unidirectional Startup TM6:测试模式6:单向启动
当TM6启用时,Source应按照中的规定启动单向启动程序第8.3.4.2节,在此期间,其应忽略其链路伙伴通过上行链路发送的任何传输。
9.1.3发射机功率谱密度掩模
9.1.3.1 需求
附件B 8B/10B线性编码(规范性)
所有传输的信息应根据本节中规定的数据和控制符号分配,采用8b10b编码[IBM01]。
B.1 数据Symbol
每个字节的编码由一个5b6b子块编码和一个3b4b子块编码组成。数据字节中的位用大写字母HGFEDCBA表示。根据表154,五个数据位“EDCBA”应编码为6位子块“abcdei”。根据表155,三个数据位“HGF”应编码为4位子块“fghj”。
对于D.x.7,有一个主要编码(D.x.P7)和一个备用编码(D.x.A7),如表中所示。如果主要编码与前一个5b/6b编码组合后导致五个或更多连续的零或一,则应选择备用编码。这意味着,当RD=-时,D.x.A7仅用于x=17、x=18和x=20;当RD=+1时,D.x.A7用于x=11、x=13和x=14。对于x=23、x=27、x=29和x=30,备用编码代表控制符号K.x.7。不能使用任何其他x.A7编码,因为这可能会导致逗号序列错位的风险。
有几个5b和3b子块具有两种互补的编码表示,且这两种表示的极性相反。为了实现直流平衡,应采用与当前极性相反的极性表示。有关极性控制的更多信息,请参见第B.3.1节。为了选择正确的3b4b子块表示,应评估包括前一个5b6b子块在内的RD(运行极性),因为前一个5b6b子块是同一符号的一部分。
表154 5b6b子块数据编码
表155 3b4b子块数据编码
Note:
1 具有极性偏差0的K.x.y码的替代编码允许K.28.1、K.28.5和K.28.7是包含数据流中其他地方找不到的位序列的“逗号”代码。
B.2 控制Symbols
控制符号是数据符号集中不存在的特殊符号,可用于8B/10B字节流中的嵌入式控制功能。表156列出了8b10b编码集中的所有控制符号。符号K28.5具有逗号属性,应在比特流的任何位置进行检测以实现符号对齐。有关符号使用的详细信息,请参见第8.3.2.2节。
Note:
1 在控制符号中,K.28.1、K.28.5是逗号符号。逗号符号用于同步(找到比特流内8b和10b码的对齐)。K28.7也有逗号属性,但对其周围的符号设置约束。由于未使用K.28.7在任何位置都找不到唯一的逗号序列0011111或1100000普通代码的组合。
2 表155见注1。
B.3 极性偏差
所采用的8b10b传输编码是一种直流平衡编码方案。运行极性(RD)是指传输符号中1和0的数量之间的差异,其中每个1计为+1,每个0计为-1。
B.3.1 RD属性
在没有传输错误的情况下,运行极性(RD)保持在-3和+3之间,而在任何6b和4b子块边界处,它总是等于-1或+1。所有子块的极性都是0、-2或+2。具有非零极性的子块具有正负极性互补的表示形式。在这些情况下,应使用与RD极性相反的表示形式,以便在子块边界处RD从-1变为+1或反之,从而避免极性累积。对于任何符号,RD的起始值可以是+1或-1。
图129 RD状态框图
B.4 bit顺序和二进制值
8b10b符号的表示法是“abcdeifghj”,其中“a”位首先被传输。当8b10b编码被绕过时,“j”位首先被传输。二进制数据值的表示法是从左到右读取时,从最高有效位(MSB)到最低有效位(LSB)。因此,数据字节用“HGFEDCBA”表示,其中“H”是最高有效位,“A”是最低有效位。