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中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

java如何调用kettle设置变量和参数

《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置... 目录Java调用kettle设置变量和参数java代码中变量会覆盖kettle里面设置的变量总结ja

Perl 特殊变量详解

《Perl特殊变量详解》Perl语言中包含了许多特殊变量,这些变量在Perl程序的执行过程中扮演着重要的角色,:本文主要介绍Perl特殊变量,需要的朋友可以参考下... perl 特殊变量Perl 语言中包含了许多特殊变量,这些变量在 Perl 程序的执行过程中扮演着重要的角色。特殊变量通常用于存储程序的

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

变量与命名

引言         在前两个课时中,我们已经了解了 Python 程序的基本结构,学习了如何正确地使用缩进来组织代码,并且知道了注释的重要性。现在我们将进一步深入到 Python 编程的核心——变量与命名。变量是我们存储数据的主要方式,而合理的命名则有助于提高代码的可读性和可维护性。 变量的概念与使用         在 Python 中,变量是一种用来存储数据值的标识符。创建变量很简单,

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的