PCIE链路训练-状态跳转1

A:12ms超时,或者再任何lane上检测到Electrical Idle Exit;

B:

1.发送"receiver detection"之后没有一个lane的接收逻辑被rx检测到

2.不满足条件c,比如两次detection出现差别;

C:发送端在没有配置的lane上检测到接收端。注意如果是有个别lane被检测,但是这些lane的总数不是所有的lane数目, 那么等待12ms再次 un-configured上执行Receiver Detection sequence,如果结果和第一次相同就进入polling状态,否则进入detect状态;

D:

1.满足条件(1)和(2)

(1)TX向对端发送至少1024个TS1序列(序列的link num和lane num均为pad,针对所有lane)

(2)在detect阶段被detect到的所有lane,至少收到8个连续的training sequences,这些training sequences可以是

a:TS1序列,lane num和link num均为pad,Compliance Receive bit (bit 4 of Symbol 5) 是0;b:TS1序列,lane num和link num均为pad,Loopback bit (bit 2 of Symbol 5)是1;c:TS2序列,lane num和link num均为pad

2.如果经过24ms仍然不满足1,那么满足下列条件也可以进入Polling.Configuration状态:

(1)任何一个被detect为receiver的lane收到8个连续的序列,并且满足下列条件之一:

a:TS1序列,lane num和link num均为pad,Compliance Receive bit (bit 4 of Symbol 5) 是0;

b:TS1序列,lane num和link num均为pad,Loopback bit (bit 2 of Symbol 5)是1;

c:TS2序列,lane num和link num均为pad

(2)在收到一个TS1或TS2之后的任意通道上至少发送了1024个TS1.

3.如果任意lane仍然不满足条件2(实际上2和3是并行条件,满足其中一个即可),那么如果自进入 Polling.Active 状态以来,有一定数量的通道上检测到至少一次退出电气空闲的现象(这个数量是预先设定的,只有超过这个数目的lane

满足条件才认为满足条件),那么也可以进入Polling.Configuration状态(这是为了防止一个或者多个失效的发送端或者接收端导致链路不能能进行配置)。

E:当任意收到连续的8个TS2(link nun和lane num均为pad)并且自从收到TS2序列后至少发送了16个TS2序列;

F:不满足E,48ms超时;

J:如果满足以下条件之一可以进入loopback状态:

(1)所有发送TS1的lane上,都收到了两个连续的Loopback为1的TS1。-dsp/usp 均满足

(2)任意一共发送TS1的lane上收到了两个连续的loopback为1的TS1,同时Enhanced Link Behavior Control比特为1。-dsp/usp 均满足

(3)一个能支持64GT/s的port收到了TS1,并且该TS1的Flit Mode Supported bit为1,the Supported Link Speeds域为10111b。-dsp/usp 均满足

注意:任意发送 Loopback 比特置位的端口将变成 Loopback master,而收到他们的端口将变成 Loopback slave。

(4)上层指示要求在detect为receiver的lane上发送的TS1或TS2,其中让loopback bit置为1;-dsp/usp 均满足

K:

Dsp:上层指示要求在detect为receiver的lane上发送的TS1或TS2,其中让disable bit置为1;

Usp:任何TS1的lane上收到了两个连续的TS1,并且TS1的disable位为1;

I:

dsp:

(1)crosslink configuration不支持的情况下:任意lane,如果先收到了一个或者多个TS1,其link num和lane num都是pad,随后又收到两个连续的TS1,其中link num为具体数值,lane num为pad,那么满足进入Configuration.Linkwidth.Accept状态的条件;

(2)crosslink configuration支持,dsp可能转变为usp,转变后的状态跳转完全遵循usp的准则。

Usp (有问题??)

如果一些通道接收到了两个连续的链路编号有效,通道编号为填充符号的 TS1,那么这个端口就会进入 Configuration.Linkwidth.Accept 子状态

F:

-dsp/usp 均满足

24ms超时;

G:-dsp/usp 均满足

2ms超时或没有链路可以配置或者所有lane上都收到了两个连续的TS1,其中link num或者lane num钧设为pad

H:

Dsp:

dsp不会在 Configuration.Linkwidth.Accept 子状态长时间停留。一旦dsp收到了usp发送的必须数量的TS1(至少两个连续的TS1),明确了链路宽度之后,DSP 会更新一些必须的内部状态,发送通道编号不为填充字符的TS1,并立刻转为 Configuration.Lanenum.Wait 状态,等待 USP 确认通道编号分配。

Usp:

usp必须对dsp提出的通道编号分配做出响应。如果一个链路可以由多个link num和非pad TS1的通道合并组成,并且它们接收到两个连续 TS1,其中链路编号相等,通道编号非pad,那么usp应该在可行的情况下,发送通道编号相同的TS1表示接受分配,或者在必要的时候回应不同的编号值提议。(比如应用了选配的通道顺序翻转特性时)。随后跳入下个状态。

L:

Dsp:

如果下述两个条件之一满足,那么跳转到 Configuration.Lanenum.Accept 状态:

(1)如果在所有通道上都接收到连续两个TS1,它们携带的链路和通道编号都和dsp在这些通道上发送的一致。

(2)如果在任意一个检测到接收方的通道上,接收到连续两个TS1,它们的通道编号和刚进入本状态时接收到的TS1中的数值不一致,并且至少有一些通道接收到了有效的链路编号。协议指出这种情况是通信双方达成了一致,确定了双方都能够接收的链路宽度。这里对应协议中具体指的是a Lane number must have changed from when the Lanes most recently entered Configuration.Lanenum.Wait before a transition to Configuration.Lanenum.Accept can occur.也就是说针对这种收到了不同的TS1进入下个状态的前提是最近进入Configuration.Lanenum.Wait状态之后发生了lane num的change。

Usp:

如果下述两个条件之一满足,那么跳转到 Configuration.Lanenum.Accept 状态:

(1)如果在所有通道上都接收到连续两个 TS2。

(2)如果在任意一个检测到接收方的通道上,接收到连续两个 TS1,它们的通道编号和刚进入本状态时接收到的 TS1 中的数值不一致,并且至少有一些通道接收到了有效的链路编号。协议指出这种情况是通信双方达成了一致,确定了双方都能够接收的链路宽度。

M:

触发了上述的 2ms 超时事件,或者所有通道接收到两个连续的 TS1,其链路和通道编号都为填充符号。-dsp/usp 均满足

相关推荐
IM_DALLA41 分钟前
【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL70
学习·fpga开发·verilog学习
李的阿洁42 分钟前
OSPF的不规则区域
运维·服务器·网络
望森FPGA1 小时前
HDLBits中文版,标准参考答案 | 3.1.2 Multiplexers | 多路复用器
学习·fpga开发
逸狼1 小时前
【JavaEE初阶】网络原理
服务器·网络·智能路由器
shmily ....2 小时前
文件上传漏洞原理
网络·安全
IPFoxy6662 小时前
如何判断静态代理IP地址是否被污染?
网络·安全·web安全
网络研究院3 小时前
什么是 ARP 欺骗和缓存中毒攻击?
网络·安全·ddos·攻击·arp·实践·缓解
没有名字的小羊3 小时前
网络通信——OSPF和RIP的区别(总结)
网络·网络协议
it00zyq3 小时前
Linux网络编程
linux·网络
是小李呀~4 小时前
websocket实战
网络·websocket·网络协议