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

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;


 


 

http://www.xdnf.cn/news/8506.html

相关文章:

  • 谢飞机的Java面试奇遇:AIO、BIO、NIO与Netty深度解析
  • openEuler 22.03安装zabbix7 LTS(容器化部署)
  • ajax中get和post的区别,datatype返回的数据类型有哪些?
  • STM32 SPI通信(硬件)
  • 2025 最新教程:注册并切换到美区 Apple ID
  • 3dczml时间动态图型场景
  • 怎么判断一个Android APP使用了taro 这个跨端框架
  • 自制操作系统day9内存管理(cache、位图、列表管理、内存的释放)(ai辅助整理)
  • Web前端开发:JavaScript的使用
  • 【软件安装】Windows操作系统中安装mongodb数据库和mongo-shell工具
  • 从零入门:Google Cloud Platform (GCP) 基础架构与核心服务全解析
  • 推荐一款滴滴团队开源流程图编辑框架logic-flow
  • 禅道——安装PHP的ioncube扩展
  • 101 alpha_59
  • 精度不够?光纤激光尺0.2ppm误差解锁微米级制造
  • 粗糙表面生成程序及模拟方法
  • PCB设计实践(二十六)贴片电容与插件电容的全面解析:差异、演进与应用场景
  • 【MySQL】07.内置函数
  • 高容量通风器(24CJ87-4)
  • 学习STC51单片机13(芯片为STC89C52RC)
  • Django 中的 ORM 基础语法
  • c# 解码 encodeURIComponent
  • 人工智能在智能教育中的创新应用与未来展望
  • C++ 设计模式
  • 告别“盘丝洞”车间:4-20mA无线传输如何重构工厂神经网?
  • 绝缘胶垫三大优势和产品规格,电力配电室和工厂如何选择合适的绝缘胶垫 ?
  • 【LUT技术专题】极小尺寸LUT算法:TinyLUT
  • md5升级scram-sha-256认证
  • 物联网 温湿度上传onenet
  • Spring Boot 条件装配机制:用它写出更优雅的自动配置