PCIe gen5及以下速率物理层frame tokens整理frame requeirments

发布时间:2026/7/6 3:29:46

PCIe gen5及以下速率物理层frame tokens整理frame requeirments 1. 概述通俗来说framing tokens指的就是物理层在接受/发送TLP/DLLP/IDL 包时会在这些包前后加上标识包边界的数据。2.分类而framing token分为以下几类首先第一个IDL如base spec中描述这是长度为1 symbol的token即链路处于空闲时发送的数据类型。IDL token长什么样子呢如下图所示然后第二个SDP如base spec中描述他是DLLP的起始token它的长度是2 symbolsSDP token长什么样子呢如下图所示再看第三个STP如base spec中描述它是TLP的起始token它的长度是4 symbolsSTP token长什么样子呢如下图所示再看第四个EDB如base spec中描述它的作用是表示前面的TLP是nullfied无效的它的长度是4 symbolsEDB长什么样子呢如下图中所示再看第五个EDS如base spec中描述它的作用是标识data stream结束并且下一个block将会是order set block。它的长度是4 symbols。EDS长什么样子呢如下图中所示STP的物理层布局如下所示DLLP的物理层布局如下所示在实际的应用中我们往往会使用多lane的场景base spec中也列举了x8场景下packet 在多lane上市如何传输的如下图中所示3.举例x8可以看到4 symbols的STP分布在lane0-3上紧接着是4DW 的TLP1DW DataLCRC然后发送2symbols的SDP1DW的DLLP payloadCRC然后发送IDL。再看看Nullfied TLP在x8 上如何传输可以看到4 symbols的STP分布在lane0-3上紧接着是4DW的TLP header1DW DataLCRC然后发送SDP16byte的DLLP然后是IDL然后又发了4 symbols的STPTLP最后发送了1DW 的EDB再看一个例子SKP怎么发如图中所示先发STPTLP再发SDPDLLP然后发IDL再发SDPDLLP再发IDL再发4symbol的EDS紧接着看到sync hdr发生了变化标识要发order set了可以看到发了若干SKP/SKP_END/LFSR4. 发送侧rulebase spec中对transmitter framing 有一定的要求发送端的Data stream需要遵循以下规则为了发送一个TLP发送STP token然后立即发送数据链路层提供的完整的TLP数据即使TLP无效也必须发送STP token中TLP length字段所指定的TLP的所有DW如果TLP为空则必须在TLP之后立即发送EDB tokenTLP的最后一个符号和EDB token的第一个符号之间不得有别的符号考虑到EDB token的原理一个无效的TLP的STP token的TLP length字段的值不能进行调整。每一个symbol time发送STP token的频率不得超过一次为了发送一个DLLP发送SDP token然后立即发送数据链路层提供的完整DLLP信息必须传输DLLP的所有的6个symbols每个symbol time发送SDP token的频率不能超过一次为了在data stream中发送一个SKP有序集在当前数据块的最后一个DW中发送EDS token例如对于x1链路token在symbol time为12-15的lane0上传输对于x16链路在块的symbol time为15的lane 12-15上传输。在当前数据块之后发送SKP有序集在SKP有序集之后发送数据块数据流从数据块的第一个符号恢复如果计划发送多个SKP有序集则每个SKP有序集必须在后面带一个EDS token的数据块。如果要结束一个Data stream在当前数据块的最后一个DW中发送EDS token然后在下一个块中发送 EIOS 或 EIEOS。对于 LTSSM 电源管理状态转换需要发送 EIOS对于所有其他情况需要发送 EIEOS。例如对于 x1 链路Token 在块的 Symbol Time 为 12-15 的Lane 0 上传输对于 x16 链路在块的 Symbol Time 为 15 的 Lane 12-15 上传输。不传输TLP/DLLP/或者其他frame token时必须在所有lane上传输IDL token。对于多lane的链路传输一个IDL token后必须在之后的symbol time的lane0中传输下一个STP/SDP token的第一个符号。对于 N 为 8 或更大的 xN 链路如果 EDB Token、TLP 或 DLLP 结束于 Lane K其中 K 不等于 N-1并且其后没有 STPSDP 或 EDB Token 位于 Lane K1 中那么 IDL Token 必须放在 Lane K1 到 N-1 中。例如在 x8 链路上如果 TLP 或 DLLP 在 Lane 3 中结束则必须将 IDL Token 放在 Lane 4 至 Lane 7 中。EDS Token 是此要求的例外可以在 IDL Token 之后传输。Tokens、TLP 和 DLLP 允许相继出现以便可以在同一 Symbol Time 内传输一个以上的 Token只要它们的传输符合本节所述的其他要求即可。宽度大于 x4 的链路可以将 Token 放置在 Lane 4*N 上其中 N 是一个正整数。例如可以将 Token 放置在 x8 链路的 Lane 0 和 Lane 4 中并且可以将 Token 放置在 x16 链路的 Lane 0、Lane 4、Lane 8 或 Lane 12 中。4.接收侧rule对于receiver 来说接收到哪些framing token的状况就认为出现frame error呢5. receiver 检测到frame error会怎么办

相关新闻