参与流量控制的消息有很多,主要有三类,每一类有三个变种(N/NP/Cpl),我们的流量控制也主要分三步,其细节和统一的消息格式如下: InitFC1-P/NP/Cpl:接收端设备使用此消息向发送端发起初始化流量控制的流程,并初始化信用额度,这是第一步。这个消息有接收端发起的原因是因为,不同的接收端能力不同,所以应该由接收...
这会导致过渡到 DL_Init 子状态,该子状态包含两个处理Flow Control初始化的阶段:FC_INIT1和FC_INIT2。 6.4.3 FC_Init1详细信息 在FC_INIT1 状态下,设备会连续发送 3 个 InitFC1 Flow Control DLLP 序列,通告其Receiver Buffer Buffer大小(参见图 6-5)。根据规范,Data包必须按以下顺序发送:Posted、Non-po...
在DL INIT时,首先对PCIe的VC0的流量控制进行初始化,流量控制(Flow Control)初始化分为两个阶段(FC_INIT1&FC_INIT2): FC_INIT1:数据链路层向事务层提交DL_DOWN信息。 FC_INIT2:数据链路层向事务层提交DL_UP信息。 (3)、DL Active:物理层通知数据链路层当前PCIe链路正常,此时物理层已经训练或重训练完毕。 ...
InitFC2-P/NP/Cpl:用于发送端向接收端确认InitFC1的消息,这是第二步。这个消息中会带有从第一步接收到的信用信息,但是它会被接收端忽略,并没有什么用。另外,这个消息发送之后,发送端将不会再理会任何后续的InitFC1消息了。 UpdateFC-P/NP/Cpl:用于在信用额度初始化完成之后,接收端向发送端对信用额度进行更新。
FC_INIT2:数据链路层向事务层提交DL_UP信息。 (3)、DL Active:物理层通知数据链路层当前PCIe链路正常,此时物理层已经训练或重训练完毕。 此外,数据链路层还会向事务层TL通知以下状态: (1)、DL Down:数据链路层通知事务层当前PCIe链路对端未检测到其他设备,当数据链路层处于DL Inactive状态时,该状态位有效。
Flow Control初始化被分为两个步骤,FC_Init1和FC_Init2,其在整个数据链路控制和管理状态机(Data Link Control & Management State Machine)的位置如下图所示: 在FC_Init1步骤中,PCIe设备会连续地发送三个InitFC1类型的Flow Control DLLP来报告其接收Bu...
FC_Init1步骤中,PCIe设备会连续地发送三个InitFC1类型的Flow Control DLLP来报告其接收Buffer 的大小。三个DLLP的顺序是固定的:Posted、Non-Posted然后是Completions【就在传输层】 传输层 FC_Init2与FC-Init1类似,同样是连续的发送三个InitFC2类型的DLLP,当完成后,DLCMSM(上一篇文章中提到的状态机)会切换到D...
FC_Init1步骤中,PCIe设备会连续地发送三个InitFC1类型的Flow Control DLLP来报告其接收Buffer 的大小。三个DLLP的顺序是固定的:Posted、Non-Posted然后是Completions【就在传输层】 传输层 FC_Init2与FC-Init1类似,同样是连续的发送三个InitFC2类型的DLLP,当完成后,DLCMSM(上一篇文章中提到的状态机)会切换到D...
每一种 DLLP 包的长度都是 6 个符号。 有关解码 DLLP 包内容的信息,请参阅 PCI Express 规范。在下文的波形图中,“60”是 InitFC-Cpl(Cpl 代表 completion)。“50”是 InitFC-NP(NP 代表 Non-Posted)。 UpdateFC-P 以“80”开始。被解扰数据中的更新值为十六进制,因此需要将其转化为十进制,以便获得...