当前位置: 首页 > news >正文

PCIe Gen3 phy(编解码,token相关)

注:内容大部分翻译来源:mindshare chapter 12;

在链路训练时,pcie 永远都会从gen1开始进行;在gen1 速率到达L0状态时,若此时capability中设置的max speed不是gen1则会进入到recovery状态接着跳到genX中。其中TS1 中symbol 4的bit7 speed_change一定会被置起。在recovery.rcvrlock 状态。

其中当gen5时有两个选项可以加快traning:

1. equalization bypass to highest rate:链路在gen1 L0时可以直接进行Gen5(highest rate)的训练,不需要经过gen3,gen4;

2. No equaliztion needed: 当支持时,从gen5降到gen4或gen3时不需要从新进行eq训练。

Gen3主要改变:新的编码方式,以及复杂的eq训练(sophisticated signal equalization mode)

128b/130b 编码

8b/10b:对齐K码的方式进行编码和解码;

新的编码方式以16B为一组。每个通道看到的还是8bit码流。

sync file用于表示是data还是order set;rx端如果是order set的话必须在所有通道上同时传输。

复杂信号的均衡

相比于gen1,gen2 固定的de-emphasis;gen3 可以动态调整(present)

8Gbps,编码

低位先发送;

block alignment

通过发送EIOS(electric order set)来进行块的锁定。

order set block

注:gen1,gen2,gen3中都称为order set ;但是gen1,gen2 是10bit格式,用K码来表示;gen3中是每个ordered set16个symbol;

gen3 ordered set共有以下几种:

1.SOS,skip ordered set;用于时钟补偿;

2. EIOS- electrical idle ordered set;用来进入 electrical idle state;

3. EIOS,退出elecidle ;gen3 下block对齐。

4. TS1, 

5 TS2,

6. FTS :用于退出L0s(NFTS)

ordered set 在所有lane上必须同时出现(rx,tx lane)

这个长度规则的一个例外是 SOS(SKP 有序集),它允许由时钟补偿逻辑(例如与链路中继器相关的逻辑)以每组四个 SKP 符号的方式添加或移除。因此,SOS 的合法长度可以是 8、12、16、20 或 24 字节。

Five types of Data structures (called Framing Tokens) are also used within a Data Block.五种数据类型的结构成为信令(tokens)。STP,SDP,IDLE,EDS,EDB;

data+skp ordered set fram;

(此处mindshare 的gen3 fram 和spec有出入,以gen5 spec为主)

一旦两个端口都进入 Recovery 状态,从进入到完成整个恢复的往返时间预计不超过 1 微秒(1µs)

TX 编码规则:

STP之后紧跟这tlp包内容。如果是nullified 数据包(结尾应该是EDB,且lengh 字段全为0)。

同理SDP之后紧跟dllp包内容。

数据流中发送一个 SOS(SKP 有序集) 时,遵循以下流程:

  1. 在当前数据块(Data Block)的最后一个 dword(32 位字)发送一个 EDS Token(End of Data Stream 标记符号)。

  2. 紧接着发送一个 SOS,作为下一个有序集块(Ordered Set Block)。

  3. 立即在 SOS 后发送一个新的数据块(Data Block)。数据流将从这个数据块的第一个 Symbol 重新开始。

  4. 如果要插入多个 SOS它们不能像早期 PCIe 代那样连续发送。每个 SOS 前必须先有一个以 EDS Token 结尾的数据块。

    • 该数据块可以包含 TLP、DLLP 或 IDL 等内容

对于多lane情况链路中发送了IDL码,那么stp或sdp必须在lane0中出现。

Receiver Framing Requirements

收到 STP(Start of TLP)Token 时:
  • 必须检查:

    • CRC 和奇偶校验(Frame Parity)字段

    • 注意:有 Framing Error 的 STP Token 不算作 TLP 的一部分(报错时要独立处理)。

  • 接收到 TLP 的最后一个双字(DW)后:

    • 紧随其后的 Symbol 是下一个要处理的 Token;

    • 接收端必须检查它是否是一个 EDB(End of Data Block)Token,用于标记该 TLP 已被 nullified(无效化)。

  • 可选检查项(实现可选):

    • 如果 TLP 长度字段为 0,则为 Framing Error

    • 如果同一个 Symbol Time 内收到多个 STP Token,也应视为 Framing Error(若实现该检查)。


收到 EDB(End of Data Bad)Token 时:
  • 接收器在检测到 第一个 EDB 符号时(或随后任何部分符号)必须立即通知链路层(Link Layer)

  • 如果 Token 中有任意 Symbol 不是合法的 EDB Symbol,判定为 Framing Error

  • 只有在一个 TLP 之后立即出现 EDB Token 是合法的,其他位置使用 EDB 都是 Framing Error


收到 EDS(End of Stream)Token 作为数据块最后一个双字(DW)时:
  • 接收器必须停止当前数据流处理

  • 接下来只允许收到以下三种 Ordered Set 中之一:

    • SKP

    • EIOS

    • EIEOS
      否则为 Framing Error

• 当接收到一个 IDL(空闲)token时:
— 下一个token可以在任意双字(DW)对齐的通道(Lane)上开始,前提是该通道在 IDL 令牌之后。对于 x4 或更窄的链路来说,这意味着下一个令牌只能在下一个符号时间(Symbol Time)的 Lane 0 上开始。而对于更宽的链路,例如 x16 链路,下一个令牌可以在当前符号时间的 Lane 0、4、8 或 12 上开始。

— 在同一个符号时间内,唯一可能出现在 IDL 令牌之后的令牌是另一个 IDL 或 EDS(端数据流)令牌。

• 在处理数据流期间,接收器将以下情况视为帧错误(Framing Errors):
— 一个有序集(Ordered Set)紧跟在 SDS(开始数据流)之后;
— 一个具有非法同步头(Sync Header,值为 11b 或 00b)的数据块(Block);这类错误可以选择性地在 Lane 错误状态寄存器中报告;
— 在任一通道上接收到一个有序集块(Ordered Set Block),但在前一个块中未收到 EDS 令牌;
— 一个数据块紧跟在前一个块中的 EDS 令牌之后;
— (可选)验证所有通道接收到的有序集是否一致。

Recovery from Framing Errors

在AER中使能receiver error status;


 


 

相关文章:

  • 交流电能表基本介绍
  • 阿里云服务器 篇十五:自动签到服务(基于Cookie,脚本和数据分离)
  • RIP和BFD是怎么协同工作的?
  • Opixs: Fluxim推出的全新显示仿真模拟软件
  • JVM 双亲委派模型
  • 系分论文《论软件系统的安全性测试方法》
  • c语言字符串函数
  • 从底层原理分析Python 常用字符串拼接方法效率差异
  • Zotero插入参考文献的
  • PCA例题
  • docker swarm 启动容器报错日志查看方式
  • 工业软件国产化:构建自主创新生态,赋能制造强国建设
  • 基于Python+YOLO模型的手势识别系统
  • 第J2周:ResNet50V2 算法实战与解析
  • 【window QT开发】简易的对称密钥加解密工具(包含图形应用工具和命令行工具)
  • 视频监控管理平台智能平台一体机视频智能分析平台算法管理功能详细步骤
  • AI时代的弯道超车之第二十章:哪些工作AI是替代不了的
  • 基于民锋价格通道模型的波动分析策略研究
  • JUC并发编程1
  • 【JS】Vue 3中ref与reactive的核心区别及使用场景
  • 淘客网站怎么与pid/邯郸网站优化公司
  • 创建网站怎么赚钱的/重庆seo什么意思
  • 漯河百度做网站电话/百度关键词排名点
  • 聊城做网站的公司/无锡百度信息流
  • 国外网站配色/福州网站优化公司
  • 乐山网站建设/在线培训app