Phy layer框图
Byte striping of Tlp(transaction layer package),dllp(data link layer package),os(ordered set)
下面是典型的tlp,dllp,os的格式。
Ltssm
Detect
检测电气连接
Pipe_txdetrx,差分线波形
检测端接阻抗,以确定是否有电气连接
Polling
实现bit lock
Polling.active tx在gen1速率下至少发1024个ts1,让对端rx实现bit lock和block align,此时link num和lane num都是pad
Polling configuration发ts2,之所以更换发ts2,是为了让两端都知道对端已经ready了,不然不知道ts1是对端在无脑发还是cdr 已经lock了
Configuration
协商宽度,downstream port(rc或者switch的dsp)作为leader主导configuration阶段,首先发送非PAD的ts1,而upstream port(ep或者switch的usp)则作为follower只是返回与usp相同的内容。
第一步,dsp的link num=0,lane num=pad,usp收到后回复ts1的link num=0,lane num=pad;完成link width协商,进入configuration.lanenum
第二步:dsp首先根据自己phy内部定的lane num结构发ts1的lane num;usp收到后决定是否做lane reversal,同时回复ts1;两边收到ts1的lane num相同,则lane num协商完成,进入configuration.complete
在configuration.complete更换ts2发送协商好的link num和lane num。主要用作握手功能,告诉对方自己已经准备好了,至少收发8个ts2之后进入configuration.idle
进入configuration.Idle之后发送idle data,及发送data( before scramble) 8’h0,rx收到8个idle,tx发送16个idle之后进入l0,此时linkup首次被拉高
L0
正常工作状态
两种情况link会自动切换速率,而切宽度都是软件发起的
- 两端都支持更高的速率,或者对端软件通过retrain link在ts1中发送direct_speed_change