PCIE-TS1/TS2,变量总结

2024-08-21 11:44
文章标签 总结 变量 pcie ts1 ts2

本文主要是介绍PCIE-TS1/TS2,变量总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.标准TS1/TS2

2.EQ TS1/TS2

3.Modified TS1/TS2

Modified TS1/TS2 是什么?Modify了什么?为什么要Modify?PCIe 协议运行在 PCIe PHY 上或发送 TS Message 时,在 LTSSM 部分子状态采用 Modified TS1/TS2。允许发送 Modified TS1/TS2 LTSSM 子状态有 Cfg.Lanenum.Wait、Cfg.Lanenum.Accept、Cfg.Complete在此之前的,必须在 Polling.Active、Polling.Cfg、Cfg.Linkwidth.Start、Cfg.Linkwidth.Accept 状态将 Standard TS1/TS2 Symbol 5 bit[7:6] 置为 2’b11,以此在收发端协商是否支持 Modified TS只有在收发端均支持 Modefied TS 时,才能发送 Modified TS,否则仍然发送 Standard TS。Standard TS1 / TS2 比,Modified TS 更改了 Symbol 6~15,这些 Symbol 主要是均衡相关字段,采用 Modified TS 是为了在协商完毕链路宽度后,同时协商Lane numberalternate protocololbypass EQ (勘误:没有这个说法,bypass eq 指示位只是换了位置了,该 eq 还得 eq)。(参考网络)

Standard TS1

针对selectable de-emphasis:

另外在Recovery.RcvrCfg状态会使用到此域:

针对Speed_change ,在Recovery.RcvrCfg也会使用此域:

针对Equalization Bypass to Highest NRZ Rate support,在2.5GT/s or 5.0GT/s -> 32GT/s的转化过程中使用:

针对No equalization needed,在-> 64GT/s的过程中使用:No equalization needed + Equalization Bypass to Highest NRZ -> Equalization Bypass to Highest NRZ.

另外No Equalization Needed or Equalization Bypass to Highest NRZ Rateconfiguration.idle中的使用,没列全具体参考pcie协议。

针对Receiver Preset Hint,是用于rx,进8.0GT/sdown端使用,不是强制使用,用于rxdc增益。Rx均衡的一种,ctleContinuous Time Linear Equalizer

CTLE技术的工作原理是直接通过线性模拟高通滤波器拟合信道的衰减,实现信道的补偿。信道的频率响应可以看做是一个低通滤波器。因此将信道和一个高通滤波器串联就能得到一个全通的滤波器。当然,在实际的模拟电路中并不存在高通滤波器,但是只要保证我们关心的带宽内呈现高通的特性就能满足均衡的要求需要说明的是,CTLE电路并不是放大高频信号,而是通过减小低频信号的方式补偿高低频的衰减差。因此,通常CTLE电路会与放大器配合使用。而CTLE最为人诟病的缺点是其在放大高频信号的同时也会放大高频噪声,因此会降低信噪比。此外,高频的CTLE电路需要保证非常大的带宽(通常稍大于信号的奈奎斯特频率),因此需要非常大的静态电流;同时,需要电感进行扩频,改善其频率响应。因此,CTLE往往伴随着巨大的面积和功耗开销。

针对Transmitter Preset,参考下表,64GT/s和其他速率下对应的table不一样。

针对use preset,表示是否使用preset值。

针对Equalization Redo:

三种情况会触发重做均衡:某速率均衡失败;某速率均衡成功,但检查均衡系数设置时发现了问题;改变链路宽度????

注意,bit7不仅仅表示qualization还表示Use Preset,协议上其实阐述了在qualization中的phase2/phse3中该bit实际上是起use preset的作用,但是协议又规定该bitlockeqloopback下有意义,

那么在phase1中收到的该bit表示的是redo吗?

Lock下收到该bit1表示redo,但是sip是通过产生中断由软件去控制redo的过程的。

针对Reset EIEOS Interval Count65536个以后是必须发还是根据32的倍数来的??

phase2phase3的描述里说可能会一次性发65536TS1,这是因为phy的评估算法可能需要依赖较长时间的PRBS pattern,master可以通过TS1里把reset EIEOS interval count1来实现。

变量总结:

(1)changed_speed_recovery:表示链路双方已经将链路速率协商为更高的速率

change_speed_revovery变量学习总结_r.speed状态-CSDN博客

(2)Direct_speed_changeIf greater than 2.5 GT/s data rate support has been noted, the Downstream Port must set the directed_speed_change variable to 1b if the Retrain Link bit of the Link Control Register is set to 1b and the Target Link Speed field in the Link Control 2 Register is not equal to the current Link speed. l1也会存在)

(3)successful_speed_negotiation

(4)use_modified_TS1_TS2_Ordered_Set:使用Modified TS1/TS2

(5)Flit_Mode_Enabled

(6)L0p_capable

(7)SRIS_Mode_Enabled

(8)upconfigure_capable:支持带宽从小变大

(9)idle_to_rlock_transitioned该变量记录了因为配置过程没有起作用,从而导致状态机从 Configuration.Idle 状态跳转到 Recovery 状态的次数。这可能是因为均衡设置不合适,或者当前选择的速率无法正常工作导致的,Recovery 状态内会采取措施尝试解决这些问题。该变量限制了从本状态跳转至 Recovery 状态的尝试次数,从而避免了永久的无限循环。如果链路在 256 次尝试后(变量计数至 FFh)仍然没法正常工作,那么跳转回 Detect 状态重新开始,并希望这次能有更好的结果。

(10)start_equalization_w_preset:为1表示使用预设值

(11)select_deemphasis

a:detect.quit:The select_deemphasis variable must be set to either 0b or 1b based on platform specific needs for an Upstream Port and identical to the Selectable Preset/De-emphasis bit in the Link Control 2 Register for a Downstream Port.

b:recovery.speed:If the negotiated data rate is 5.0 GT/s, and if operating in full swing mode, -6 dB de-emphasis level must be selected for operation if the select_deemphasis variable is 0b and -3.5 dB de-emphasis level must be selected for operation if the select_deemphasis variable is 1b.

c:recovery.cfg:On entry to this substate, a Downstream Port must set the select_deemphasis variable equal to the Selectable De-emphasis field in the Link Control 2 Register or adopt some implementation specific mechanism to set the select_deemphasis variable, including using the value requested by the Upstream Port in the eight consecutive TS1 Ordered Sets it received. A Downstream Port advertising 5.0 GT/s data rate support must set the Selectable De-emphasis bit (Symbol 4 bit 6) of the TS2 Ordered Sets it transmits identical to the select_deemphasis variable.

Upstream Ports must register the Selectable De-emphasis bit (bit 6 of Symbol 4) advertised in these eight consecutive TS2 Ordered Sets in the select_deemphasis variable.

(12)select_preset:仅仅用在Polling.Compliance状态中

(13)equalization_done_8GT_data_rate

(14)equalization_done_16GT_data_rate

(15)equalization_done_32GT_data_rate

(16)equalization_done_64GT_data_rate

这篇关于PCIE-TS1/TS2,变量总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1093066

相关文章

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Python之变量命名规则详解

《Python之变量命名规则详解》Python变量命名需遵守语法规范(字母开头、不使用关键字),遵循三要(自解释、明确功能)和三不要(避免缩写、语法错误、滥用下划线)原则,确保代码易读易维护... 目录1. 硬性规则2. “三要” 原则2.1. 要体现变量的 “实际作用”,拒绝 “无意义命名”2.2. 要让

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三