链路初始化和训练

news2024/11/18 1:39:57

一、总览

链路初始化和训练,由物理层进行控制,是一个基于硬件的过程。初始化设备的链路和端口,使得设备能够收发报文,在链路上正常通信。

在reset后由硬件自动启动完整的训练过程,并由LTSSM管理。

1 位锁定

训练开始,接收端时钟和发送端时钟不同步,接收端无法可靠采样输入信号的数据bit

训练期间,接收端的时钟和数据恢复(CDR,clock and data recovery)逻辑,通过使用数据bit流作为时钟的参考信号,来重建发送端的时钟,一旦从数据流中恢复了时钟,表示接收端完成位锁定。

2 符号锁定

编码8b/10b来说,下一步训练进行符号锁定,接收端可以接收单个bit,但是不知道10bit组成符号的边界,收发端交换有序集TS1和TS2时候,接收端接收可识别的pattern,如COM符号,因为COM符号独特编码导致它容易被识别找到,识别到COM后,接收方不但定位到两个符号的边界,还可以定位到两个有序集边界(TS1 TS2以COM作为开端,可区分)。

3 块锁定

和符号锁定不太一样,没有编码方案的支持,但是还是需要区分块边界。解决方式就是在有序训练集中包含更多的EIEOS(电气空闲退出有序集),用于定位边界。特定是00h和FFh交替的pattern。

4 链路宽度

PCIE可以使用不同的链路宽度,如X2和X4的端口设备连接,链路训练过程中, 两台设备会设置为两者能接受的最大值(交集)。

5 通道翻转

通常设备端口在多通道情况下,从0开始依次递增;端口对端口也是0对0,1对1这样;

这个功能主要是简化PCB布线,当支持通道翻转时候,如4通道情况下,默认是0-0,1-1,...这样的,但是某种原因,需要0-3 1-2 2-1 3-0这样交叉进行对接,如有通道翻转,开启后,效果和默认一样;这是可选项。

6  极性翻转

两个设备间D+和D-是支持反接的,目的也是为了简化PCB布局布线。任意的接收端都需要单独检测查分信号的连接情况,如发生极性翻转,训练期间自动纠正。这是必选项。

 7 数据链路速率

reset后,链路初始化和训练状态机总是会将速率设置为默认的2.5Gbit/s,实现向后兼容(第一代就是2.5)。若是要实现更高的速率,完成训练后,LSTTM再重新进行一次过程更短的训练,以改变双方都支持的最高速率;

8 多lane信号去偏移

通道间的传输线长度有差异,导致多通道链路中同时并行传输的bit,到达接收端有差距,称为信号偏斜;接收方需要延迟到达早的通道,对齐所有通道的信号时间,补偿通道之间的信号传输快慢的差异;

6~8可以很大程度上简化PCIE PCB设计。

二、链路训练的有序集

链路训练过程设计的有序集TS1和TS2

 LTSSM在轮询、配置以及恢复状态中,收发端都会交换TS1 TS2有序集。

symboldescription
0gen1/gen2:COM(k28.5)符号;GEN3: 1Eh->TS1有序集
1

Link Number链路编号:

  • 不支持GEN3端口:0~255,PAD
  • 支持GEN3的下游端口:0~31,PAD
  • 支持GEN3的上游端口:0~255,PAD
2

Lane Number链路编号:

  • 0~31,PAD
3

N_FTS

有序集数量:从L0s返回L0时,接收方收到快速FTS有序训练集数量。

4

data rate identitifer(数据速率标识符)

bit 0:reserved;

bit 1:必须置1,支持2.5GT/s

bit 2: 若bit3为1,那么bit2必须为1,支持5GT/s

bit 3:支持8GT/s

bit 5:4::reserved;

bit 6:LTSSM一些特定状态下使用,其他状态reserved;

bit 7:speed change,只在recovery和rcvLock LTSSM状态设置,其余状态reserved;

5

training controller(训练控制)

  • bit 0:Hot Reset
  • bit 1:disable Link
  • bit 2:lookback
  • bit 3:disable scramble(2.5 or 5.0;gen3 reserved)
  • bit 4:compliance receive(可选支持2.5,其余必须支持)
  • bit 7~bit 5:reserved
6

Gen1/Gen2:

  • TS1(4Ah),即10.2
  • EQ TS1,普通TS不适应

          bit0~bit2:receiver present hint

          bit3~bit6:transmitter present

          bit7:set 1

GEN3:

bit0~bit1:equalization control(仅在recovery equalization 以及loopback状态使用)

bit2:reset EIEOS interval Count(仅在recovery equalization 以及loopback状态使用)

bit3~bit6:transmitter preset

bit 7: use preset(仅在recovery equalization 以及loopback状态使用)

7

GEN1/GEN2

TS1标识符:4Ah(D10.2)

GEN3:

bit0~bit5:FS(Full Swing value)

bit6~bit7:reserved

8

GEN1/GEN2

TS1(4Ah):D10.2

GEN3:

bit0~bit5:LF(Low Frequency value),需要符号6的EC=01b

bit6~bit7:reserved

9                    

GEN1/GEN2

TS1(4Ah):D10.2

GEN3:

bit0~bit5:post-cursor coefficient

bit6: reject coefficient values

bit 7:parity(P)---该校验码覆盖范围:6 7 8 以及符号9[6:0],接收方需要重新计算校验码并且与之比较,通过后TS1才算有效

10~13

Gen1/Gen2:
• TS1 标识符(4Ah) ,即 D10.2
Gen3:
• TS1 标识符(4Ah)

14~15Gen1/Gen2:
• TS1 标识符(4Ah) ,即 D10.2
Gen3:
• TS1 标识符(4Ah),或者DC-balance符号

 TS2:

symboldescription
0gen1/gen2:COM(k28.5)符号;GEN3: 2Dh->TS1有序集
1

Link Number链路编号:

  • 不支持GEN3端口:0~255,PAD
  • 支持GEN3的下游端口:0~31,PAD
  • 支持GEN3的上游端口:0~255,PAD
2

Lane Number链路编号:

  • 0~31,PAD
3

N_FTS

有序集数量:从L0s返回L0时,接收方收到快速FTS有序训练集数量。

L0s:0~255

4

data rate identitifer(数据速率标识符)

bit 0:reserved;

bit 1:必须置1,支持2.5GT/s

bit 2: 若bit3为1,那么bit2必须为1,支持5GT/s

bit 3:支持8GT/s

bit 5:4::reserved;

bit 6:LTSSM一些特定状态下使用,其他状态reserved;

bit 7:speed change,只在recovery和rcvLock LTSSM状态设置,其余状态reserved;

5

training controller(训练控制)

  • bit 0:Hot Reset
  • bit 1:disable Link
  • bit 2:lookback
  • bit 3:disable scramble(2.5 or 5.0;gen3 reserved)
  • bit 4~bit 7:reserved
6

Gen1/Gen2:

  • TS2(4Ah),即D10.2
  • EQ TS2,普通TS2不适应

          bit0~bit2:receiver present hint

          bit3~bit6:transmitter present

          bit7:equalization command

GEN3:

bit0~bit5:reserved(仅在recovery equalization 以及loopback状态使用)

bit6:Quiesce Guarantee(仅在recovery revrCfg状态使用)

bit 7:request equalization(仅在recovery revrCfg状态使用)

7~13

GEN1/GEN2

TS2(45h):D5.2

GEN3:

TS2(45h)

14~15Gen1/Gen2:
• TS1 标识符(4Ah) ,即 D10.2
Gen3:
• TS1 标识符(4Ah),或者DC-balance符号

每个字段的详细含义:

1 symbol 0:

  GEN1/GEN2:所有有序集的首个符号都是K28.5(COM)字符。

接收方通过接收COM字符,锁定符号,确定边界。COM字符需要同时出现在所有通道上,因此可以用于信号去偏移。

  GEN3:有序集所在的block前面是2bit的同步头,后面的首个符号标识有序集类型(TS1是1Eh,TS2=2Dh)。

2 Symbol 1(Link #):链路编号;poll状态使用填充字符填充,其他状态为分配的链路编号;

3 Symbol 2(Lane #):通道编号,poll状态使用填充字符填充,其他状态为分配的链路编号;

4 Symbol 3(N_FTS):接收方,从L0s(电源状态)退出,返回L0,接收到快速训练序列(FTS)数量。

   退出L0s状态时,发送方至少会发送N_FTS个FTS。取决于需要FTS的数量和当前链路速率。

5 Symbol 4(Rate ID):设备报告所支持的数据速率,和一些给由硬件发起的带宽改变功能信息。

  所有信息都必须支持2.5GT/s速率,且复位后始终被训练为2.5GT的速率,任何新设备都需要后向兼容(如支持8GT,那么必须支持5GT/s)

  Autonomous change:

    若为1,任何带宽改变请求都是基于电源管理方面原因发起的;

   若发起带宽请求时候,未置1,那么代表设备在较高速率或者较宽链路检测到工作不稳定的情况时候,需要改变带宽设置(如降低速率或减小链路宽度)来解决这些问题。

Selectable De-emphasis

    上游端口:5GT速率下期望的去加重水平设置,具体设置取决于实现。

    下游端口/根节点端口:在polling.Compliance状态中,接收该bit数据设置select_deemphasis变量。

 Link Upconfigure Capability:表示一个较宽的链路减少宽度后,是否有能力重新恢复原来的链路宽度。

Symbol 5(training control):链路双方一些特殊情况交流(或者说通信)。如一次热复位,使能回环或者关闭加扰。

Symbol6~9:

GEN2/GEN1:符号7~9表示TS1和TS2的标识符。符号6的bit7若是0,那么也表示标识符。

若bit7为1,表示当前有序集面向一个下游端口,发送的是EQ TS1或者EQ TS2,发送EQ TS意味着链路速率达到8GT,上游端口是需要知道当前使用的均衡参数。信息包括发送端的预设集选择,接收预设集选择提示。

GEN3:6~9符号提供均衡过程所需的预设集选择数值及参数。

Symbol10~13:TS1或者TS2标识符

Symbol 14~15:

GEN1/GEN2:表示TS1或者TS2标识符;

GEN3:表示基于本通道DC均衡的需要。DC均衡指的是目前发送的0和1的数量差值。

三、数据训练与状态控制机

 LTSSM包含11个顶层状态:

detect、polling、configuration、recovery、L0、L0s、 L1、 L2、Hot Reset、Loopback、DIsable;

可分五大类:

链路训练状态;

重训练状态;

软件驱动电源管理状态;

主动电源管理;

任意复位释放后,LTSSM进入训练类状态,一切正常情况下,顺序如下:

detect->polling->configuration->L0,进入L0状态后,便可以正常收发报文。

进入链路重训练(recovery)状态的原因很多,如L1重恢复或者链路带宽切换。在此状态下,链路重复类似训练操作的状态,来解决链路问题,并最终回到L0(正常工作状态)。

设备进入低功耗状态下,会强制链路进入低功耗软件管理链路状态,如L1 L2;

如果链路上很长时间没有报文需要传输,ASPM硬件逻辑会使得链路进入低功耗ASPM状态,如L0s或者ASPM L1。

其他状态:禁用状态(disable)、回环状态(loopback)、热复位(hot reset)状态。

检测状态(detect):复位释放后进入的初始状态,用于检测链路对端设备是否存在。其他LTSSM的状态也可转移到detect状态。

轮询polling:发送端将以2.5Gbps的速率向对端发送TS1和TS2序列,使用协议最低速率以实现对早期协议的后向兼容。接收端接收到序列后,完成如下功能:

    位锁定;

    符号锁定或者块锁定;

    必要情况下校正通道极性翻转;

    获取通道支持的链路数据速率 ;

   测试条件下,发起兼容性测试(主要是快速验证链路的电压 BER 时序以及其他指标都在链路可容范围内);

配置状态(configuration):上游或者下游器件,按照2.5速率,交换TS1和TS2序列,实现如下目标:

协商链路宽度;

为各个通道指派编号;

检测通道是否顺序或者极性交换,在本地恢复这些交换;

补偿各个通道之间的时序偏斜;

这个状态可以关闭加扰,进入disable或者loopback状态,还会记录TS1和TS2序列交换时候的N_FTS,即L0s状态进入L0状态所需的FTS序列数量。

L0状态:L0是一个链路全功能正常的状态,链路上可以正常进行TLP DLLP和有序集的交换。L0状态下,链路速率可以比2.5GT/s更高,但只能在进入recovery状态,经历一次速率切换后,才能达到更高的速率。

恢复状态recovery:当链路需要重训练时,进入recovery状态。可能原因:L0状态中发生了错误、从L1低功耗状态恢复到L0状态、从L0s状态恢复到L0时,无法通过FTS序列重新完成训练。该状态下会重新进行bit和字符/块锁定,方法是和polling时候一样,一般来说,此次更快。

L0s状态:L0s是一个由硬件控制的ASPM低功耗状态,L0s状态的目标是在节约一定功耗的同时,能够快速地恢复到L0状态。进入方式:L0状态下,链路一方发送EIOS。退出L0s:会通过FTS序列重新完成bit和字符/块锁定。

L1状态:L1状态能够比L0s状态降低更多的功耗,代价在于需要更长时间恢复到L0状态。进入L1状态需要链路双方进行协商,并一起进入。进入L1方式:

其一,ASPM控制下,自动进入L1。如上游端口没有DLLP或者TLP包时候,硬件自动与下游端口协商,链路一起转向L1状态。如果下游同意,那么链路进入L1状态,否则上游端口将单方面进入L0s状态。

其二,功耗管理软件命令设备进入低功耗状态。上游端口通知下游端口,下游端口响应通知,链路进入L1。

对比L0s和L1:

L1需要双方协商,链路状态才能到达L1,但是L0s可以单方面进入;

L0s快速恢复,L1恢复相对较慢;

L1功耗更低;

L2状态:更显著功耗节约状态;

回环状态loopback:测试状态;目的是验证链路完整性。

禁用状态(disable):链路配置为禁用状态;发送逻辑为电气空闲,接收逻辑为低阻状态。

热复位状态(hot reset):桥控制寄存器配置次级总线复位bit,复位链路。

四、详细次状态

(一)detect

 

(二)polling

 (三)configuration

本状态目标主要是弄清楚设备端口(port)和各个通道(lane)的连接情况,以及为连接的通道分配编号。

端口在此状态下分面向上游端口和面向下游端口,这是两个不同的端口。配置过程也会根据上游端口和下游端口行为进行讨论。

DSP(downstream Port)端口在链路中是扮演“领导者”,USP(upstream port)端口是跟随者。

configuration状态训练过程分析

具体分析见下图: 

(四)L0

L0状态介绍可以参考此处。 

 总结L0状态:

链路的全功能正常工作状态。实际使用时候,判断链路正常与否就是看进入L0状态。L0进入L0s和L1、L2,进入低功耗状态。L0若进入recovery,可能是切换速率或者链路宽度(lane)。

(五)recovery

比较常见进入recovery状态场景:

1 切换速率

2 切换链路宽度

3 链路需要重新EQ

具体可以参考此文,介绍比较详细。

5.1 speed change

链路切换的流程图如下,具体叙述可以参考知乎链接的文章。

软件控制speed change

涉及到两个寄存器:Link controller 2 reg和Link controller reg

预先处理如下:Link controller 2 reg->Target_Link_Speed支持最高速率;

Link controller  reg->retrain_link置1

流程和上述一样。

5.2 linkwidth change

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1692688.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

禅道密码正确但是登录异常处理

禅道密码正确,但是登录提示密码错误的异常处理 排查内容 # 1、服务器异常,存储空间、数据库异常 # 2、服务异常,文件丢失等异常问题定位 # 1、df -h 排查服务器存储空间 # 2、根据my.php排查数据库连接是否正常 # 3、修改my.pho,debugtrue…

【百度云千帆AppBuilder】诗词达人:AI引领的诗词文化之旅

文章目录 写在前面:百度云千帆AppBuilder诗词达人:AI引领的诗词文化之旅功能介绍:诗词达人智能体的深度体验1. 诗词接龙学习2. 诗词深度解析3. 互动式问答4. 诗词创作辅助 技术特点详解:"诗词达人"智能体的创新技术零代…

牛客小白月赛94 解题报告 | 珂学家 | 茴字有36种写法

前言 很久没写题解了,有幸参加了94小白月赛内测,反馈是很nice,AK场。 争议的焦点在于哪题最难 D题E题(没有F题)F题(没有E题) 你选哪题呢? 题解 欢迎关注 珂朵莉 牛客周赛专栏 珂朵莉 牛客小白月赛专栏 A. 小苯的九宫格 思路…

驱动与系统学习网址

DRM(Direct Rendering Manager)学习简介-CSDN博客 Android Qcom Display学习(零)-CSDN博客 https://blog.csdn.net/hexiaolong2009/category_9705063.htmlhttps://blog.csdn.net/hexiaolong2009/category_9705063.htmlRender Hell —— 史上最通俗易懂…

OA界面这么香吗?总有老铁私信,让我多发点,他好参考。

OA的确是B端系统应用最为广泛的一种,这次再给大家分享十来个页面,希望对他们的界面提升有所帮助。 举报 评论 3

2024 一键批量下载微博内容/图片/视频/评论/转发数据,导出excel和pdf

以李健的微博为例,抓取2010-2024年所有的微博数据excel,包含微博链接,微博内容,发布时间,点赞数,转发数,评论数,话题等。 每个月的微博转评赞总数曲线,2015年是高峰。 微…

[OpenGL] opengl切线空间

目录 一 引入 二 TBN矩阵 三 代码实现 3.1手工计算切线和副切线 3.2 像素着色器 3.3 切线空间的两种使用方法 3.4 渲染效果 四 复杂的物体 本章节源码点击此处 继上篇法线贴图 来熟悉切线空间是再好不过的。对于法线贴图来说,我们知道它就是一个2D的颜色纹理,根据rgb…

Go语言的命名规范是怎样的?

文章目录 Go语言的命名规范详解一、标识符命名规范示例代码 二、包名命名规范示例代码 三、变量命名规范示例代码 四、常量命名规范示例代码 五、函数命名规范示例代码 总结 Go语言的命名规范详解 在Go语言中,代码的命名规范对于项目的可读性、可维护性和可扩展性至…

智能体之斯坦福AI小镇(Generative Agents: Interactive Simulacra of Human Behavior)

相关代码地址见文末 论文地址:Generative Agents: Interactive Simulacra of Human Behavior | Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology 1.概述 论文提出了一种多个智能体进行协同,进而模拟可信的人…

Java中String类型的大小

java对象在HotSpot虚拟机中的结构 Java对象由三部分组成,对象头、实例数据、填充数据。 对象头 markwork 存储对象运行时数据,HashCode、GC分代年龄、锁状态标志、线程持有的锁、偏向锁ID、偏向时间戳等。在64位虚拟机中,如果没有开启压缩指…

数据库系统基础知识

一、基本概念 二、数据库三级模式两级映像 三、数据库的分析与设计过程 四、数据模型 五、关系代数 六、数据库完整性约束 七、关系型数据库SQL简介 八、关系数据库的规范化 九、数据库的控制功能 十、数据仓库与数据挖掘基础 十一、大数据基本概念 数据库基本概念 1、数据库…

论文笔记:GPT4Rec: Graph Prompt Tuning for Streaming Recommendation

SIGIR 2024 1 intro 1.1 背景 传统推荐系统方法在实际应用中往往未能兑现基准数据集所做的承诺 这种差异主要源于传统的离线训练和测试方法在这些场景中,模型在大型静态数据集上训练,然后在有限的测试集上评估,这一过程没有考虑到现实世界…

第二十届文博会沙井艺立方分会场启幕!大咖齐打卡!

2024年5月24日-27日,第二十届中国(深圳)国际文化产业博览交易会沙井艺立方分会场活动将在艺立方非遗(文旅)产业园盛大举办。 本届文博会艺立方分会场活动办展特色鲜明,亮彩纷呈,将以“种下梧桐树…

留学培训行业PaaS应用系统架构的设计与实践

随着留学需求的增长和教育培训市场的不断扩大,留学培训行业正面临着越来越多的挑战和机遇。在这个背景下,利用PaaS(Platform as a Service)平台来构建留学培训行业的应用系统架构,将成为提升服务质量和效率的重要手段。…

工厂生产管理系统

为应对一些国内验厂,如大疆等,他们需要客户有自己的生产管理系统的,但实际很多公司是没有引入ERP这类的系统的,从而想开发一套简单的生产管理系统。 参考了网上一个比较古老的StorageMange项目,此项目用到DevExpress的…

「探讨」:什么是网络审计?好用的网络审计系统推荐【图文详解】

网络是企业运营、政府管理、个人生活不可或缺的基础设施。 然而网络安全问题却日益凸显,数据泄露、网络攻击、欺诈行为等风险日益严重。 一、网络审计的定义 网络审计,又称信息技术审计或电子审计,是指审计人员运用专业技能和工具&#xff…

亚马逊测评技术自己掌控:打造爆款产品,快速突破销量瓶颈

不管新老店铺来说,出单都是至关重要的,在我们的理解当中测评应该是一种成长剂,是一个加快店铺成长的工具,因为它在店铺的破0、突破瓶颈期、引爆爆款以及在后期店铺的一个补量上都会有一个明显的作用 测评有什么意义? …

简历–工作经历–通用

雇主将会很注意简历中的工作经历这一部分。在看完求职目标后,他们想了解你的历史,你曾在哪儿工作,工作了多长时间。他们想弄明白的是“你是个稳定可靠的人吗?”,“你发挥出的才能有哪些?”最重要的是你是否…

python-找出四位数中的玫瑰花数

【问题描述】玫瑰花数指一个n位数(n>4),其每位上的数字的n次幂之和等于本身。 请求出所有四位数中的玫瑰花数 【输入形式】 【输出形式】 【样例输入】 【样例输出】1634 8208 9474 【样例说明】 【评分标准】 完整代码如下: for n in ra…

android实现PhotoShop里的魔棒效果

魔棒是画板工具一个重要的功能,非常实用,只要轻轻一点,就能把触摸到的颜色区域选中,做复制、剪切、擦除等工作。 那怎么实现呢? 先来看看效果: 要实现这个效果,需要对安卓canvas和paint理解比…