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实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

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.