PCIE链路训练-状态机描述3

Configuration.Idle

1.当使用8b/10b编码时,non-flit模式下,在所用配置的lane上发送s Idle data Symbols,在flit mode下发送IDLE flit。

2.linkup = 0 + link两端的component均支持64.0GT/s的速率,根据进入此状态之前发送的8个TS2或收到的连续的8个Modified TS2 Ordered Sets进行如下判断:

(1)

a:收到的8个连续的Modified TS2 Ordered Sets及所有configure的lane中发送的Modified TS2 Ordered Set中的No Equalization Needed bit (bit 1 of Symbol 5)为1

b:收到的8个连续的TS2 Ordered Sets及发送的TS2 Ordered Sets中的Enhanced Link Behavior Control field (bits 7:6 of Symbol 5)为No Equalization Needed value (10b)

满足a、b两种条件之一,那么The equalization_done_8GT_data_rate, equalization_done_16GT_data_rate,equalization_done_32GT_data_rate,equalization_done_64GT_data_rate variables 设为1,64.0 GT/s Status Register中的No Equalization Needed Received bit设为1;

(2)

a:收到的8个连续的Modified TS2 Ordered Sets及所有configure的lane中发送的Modified TS2 Ordered Set中的Bypass to Highest NRZ Rate位 (bit 0 of Symbol 5)为1

b:收到的8个连续的TS2 Ordered Sets及发送的TS2 Ordered Sets中的Enhanced Link Behavior Control field (bits 7:6 of Symbol 5)为No Equalization Needed value (10b)或Equalization Bypass to Highest NRZ Rate值 (01b or 10b)

满足a、b条件之一,equalization_done_8GT_data_rate和equalization_done_16GT_data_rate variables设为1

(3)如果进入此状态是由于收到了8个连续且相同的Modified TS2 Ordered Sets,并且Linkup为0,

a:并且收到的8个连续的Modified TS2 Ordered Sets及所有configure的lane中发送的Modified TS2 Ordered Set中的Modified TS Usage field位 (bit 0 of Symbol 5)为010b (Alternate Protocols)

b:在所有配置的lane上发送和接收的Modified TS2 Ordered Sets中的Modified TS Information 1和Alternate Protocol Vendor ID fields相同

同时满足a和b条件,32.0 GT/s Status Register中的Modified TS Received bit设为1(具体的协商过程根据收到的8个连续的Modified TS2 Ordered Sets记录在Received Modified TS Data 1Register 和 Received Modified TS Data 2 Register)

3.linkup = 0 + link两端的component均支持32.0GT/s的速率,根据进入此状态之前发送的8个TS2或收到的连续的8个Modified TS2 Ordered Sets进行如下判断:

(1)

a:收到的8个连续的Modified TS2 Ordered Sets及所有configure的lane中发送的Modified TS2 Ordered Set中的No Equalization Needed bit (bit 1 of Symbol 5)为1

b:收到的8个连续的TS2 Ordered Sets及发送的TS2 Ordered Sets中的Enhanced Link Behavior Control field (bits 7:6 of Symbol 5)为No Equalization Needed value (10b)

满足a、b两种条件之一,那么The equalization_done_8GT_data_rate, equalization_done_16GT_data_rate, equalization_done_32GT_data_rate variables设为1,32.0 GT/s Status Register中的No Equalization Needed Received bit设为1;

(2)

a:收到的8个连续的Modified TS2 Ordered Sets及所有configure的lane中发送的Modified TS2 Ordered Set中的Bypass to Highest NRZ Rate位 (bit 0 of Symbol 5)为1

b:收到的8个连续的TS2 Ordered Sets及发送的TS2 Ordered Sets中的Enhanced Link Behavior Control field (bits 7:6 of Symbol 5)为No Equalization Needed value 或Equalization Bypass to Highest NRZ Rate值 (01b or 10b)

满足a、b条件之一,equalization_done_8GT_data_rate和equalization_done_16GT_data_rate variables设为1

(3)如果进入此状态是由于收到了8个连续且相同的Modified TS2 Ordered Sets,并且Linkup为0,

a:并且收到的8个连续的Modified TS2 Ordered Sets及所有configure的lane中发送的Modified TS2 Ordered Set中的Modified TS Usage field位 (bit 0 of Symbol 5)为010b (Alternate Protocols)

b:在所有配置的lane上发送和接收的Modified TS2 Ordered Sets中的Modified TS Information 1和Alternate Protocol Vendor ID fields相同

同时满足a和b条件,32.0 GT/s Status Register中的Modified TS Received bit设为1(具体的协商过程根据收到的8个连续的Modified TS2 Ordered Sets记录在Received Modified TS Data 1Register 和 Received Modified TS Data 2 Register)

4.当在Non-flit模式下使用128b/130b编码时,

(1)当前数据速率时8.0GT/s时,tx在所有配置的lane上发送SDS ordered set来开启data stream,随后发送idle data symbol在所有配置的lane上。在lane0上第一个发送的idle data symbol就是data stream的第一个symbol

(2)当前速率时16.0GT/s时,在所有配置的lane上发送SDS ordered set来开启data stream之后tx立刻发送control skp ordered set。在lane0上第一个发送的idle data symbol就是data stream的第一个symbol。

5.rx在non-flit模式下等待idle data,在flit模式下等待IDLE flit。

6.Linkup为1;

7.当在non-flit模式下使用8b/10b编码的时候,那么在全部已配置通道上接收到 8 个连续的idle data,并且在收到一个空闲符号后已经发送了 16 个idle data symbol,进入 L0 状态。注意,如果自从最后一次从Recovery状态或configuration状态进入L0时软件写了Link control寄存器中的retrain link比特,那么dsp必须将link status中的link bandwidth management status设为1;当状态转变为L0时,use_modified_TS1_TS2_Ordered_Set设为0。

8.当在non-flit模式下采用 128b/130b 编码方式,那么在全部已配置通道上接收到 8 个连续idle data symbol,并且在收到一个idle data symbol后已经发送了 16 个idle data symbol,并且不是在 Configuration.Complete 状态超时后下进入的本状态,那么跳转至 L0 状态(所谓idle data其实就是数值零经过加扰和编码之后的数值)。注意,在rx的data blocks中必须收到idle data symbol;在data stream开始处理之前lane之前的de-skew必须完成;如果自从最后一次从Recovery状态或configuration状态进入L0时软件写了Link control寄存器中的retrain link比特,那么dsp必须将link status中的link bandwidth management status设为1;当状态转变为L0时,idle_to_rlock_transitioned设为0。

9.在flit 模式下,如果收到了两个连续的IDLE flit,并且在收到一个IDLE flit之后发送了最少要求的数目的idle flit,并且进入当前状态不是从configuration.complete状态超时导致的,那么随后进入L0。(注意这里指的最少要求的数目的idle flit针对8b/10b或者128b/130b来说是4个,针对1b/1b编码是8个)。需要注意的是在data stream开始处理之前lane之前的de-skew必须完成;如果自从最后一次从Recovery状态或configuration状态进入L0时软件写了Link control寄存器中的retrain link比特,那么dsp必须将link status中的link bandwidth management status设为1;当状态转变为L0时,idle_to_rlock_transitioned设为0。

10.

未满足上述条件,2ms 超时后:

如果变量 “idle_to_rlock_transitioned” 小于FFh,那么下一个跳转状态是 Recovery(Recovery.Rcvrlock)。跳转后:

(a)8.0 GT/s 时,变量 idle_to_rlock_transitioned 自增 1。

(b)2.5 或者 5.0 GT/s 时,变量 idle_to_rlock_transitioned 设置为 FFh。

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

否则,即 idle_to_rlock_transitioned 为 FFh 时,跳转至 Detect 状态。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物联网AI 无线连接学习之蓝牙基础篇 协议概述

学物联网,来万物简单IoT物联网!! 1 蓝牙协议总体架构 1.1 Application层 应用属性层,通过API函数与协议栈交互; 1.2 Host层 Host层,逻辑链路控制及自适应协议层、安全管理层、属性协议层、通用访问配置…

SpringBoot进阶——解释springboot的自动配置原理

相关的博客文章如下: SpringBootApplication注解的理解——如何排除自动装配 & 分布式情况下如何自动加载 & nacos是怎么被发现的 引出 1.spring.factories文件存储能够进行自动配置的Bean信息; 2.EnableAutoConfiguration关闭数据源的自动配置…

Redis核心数据结构

目录 五种基础数据结构 string hash list set zset 用zset实现微博热搜 scan遍历 高频问题 五种基础数据结构 string 单个赋值set 批量赋值/取值 msetmget 设置不存在字符串setnx, 如果不存在, 则设置成功返回1, 如果存在返回0, 可以当做分布式锁 删除值 设置过期时…

makefile 学习(5)完整的makefile模板

参考自: (1)深度学习部署笔记(二): g, makefile语法,makefile自己的CUDA编程模板(2)https://zhuanlan.zhihu.com/p/396448133(3) 一个挺好的工程模板,(https://github.com/shouxieai/cpp-proj-template) 1. c 编译流…

软件介绍01- koodo Reader支持所有电脑平台!

1 软件简介 Koodo Reader软件是一款阅读器,可以阅读各种格式的文档。用来代替kindle。界面简洁,好看,阅读功能强大,而且可以多设备同步。 因为开源,所以免费。而且支持所有电脑平台! 支持格式&#xff1a…

Linux面试题(三)

目录 34、du 和 df 的定义,以及区别? 35、awk 详解。 36、当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢? 37、如果一个 linux 新手想要知道当前系统支持的所有命令的列表,他需要怎么做? 38、…

性能测试必学教程之Jmeter:nmon性能系统监控工具

一、Nmon介绍 Nmon得名于 Nigel 的监控器,是IBM的员工 Nigel Griffiths 为 AIX 和 Linux 系统开发的,使用 Nmon 可以很轻松的监控系统的CPU、内存、网络、硬盘、文件系统、NFS、高耗进程、资源和 IBM Power 系统的微分区的信息 Nmon是一款计算机性能系…

Linux篇:文件系统

一、共识原理: 文件文件内容文件属性 磁盘上存储文件存文件的内容(数据块)存文件的属性(inode) Linux的文件在磁盘中存储是将属性和内容分开存储的。 二、硬件简述: 1. 认识硬件 磁盘:唯一的一…

STM32F103C8T6_PWM引脚

可以看到:一共可以产生4 x 416路PWM信号:每个TIMER4路PWM, PA0,PA1,PA2,PA3,PA8,PA10,PA11; PA共7个 PB0,PB1,PB6,PB7,PB8,PB9,PB14; PB共7个

数据结构之时间复杂度与空间复杂度

1.算法效率 1.1 如何衡量一个算法的好坏&#xff1f; 比方说我们非常熟悉的斐波拉契数列&#xff1a; long long Fib(int N) {if(N < 3)return 1;return Fib(N-1) Fib(N-2); } 递归实现方式非常简洁&#xff0c;但一定好吗&#xff1f;如何衡量其好与坏&#xff1f; 1…

Ansible的重用(include和import)

环境 管理节点&#xff1a;Ubuntu 22.04控制节点&#xff1a;CentOS 8Ansible&#xff1a;2.15.6 重用 Ansible提供四种可重用的工件&#xff1a; variable文件&#xff1a;只包含变量的文件task文件&#xff1a;只包含task的文件playbook&#xff1a;可包含play、变量、ta…

【go入门】表单

4.1 处理表单的输入 先来看一个表单递交的例子&#xff0c;我们有如下的表单内容&#xff0c;命名成文件login.gtpl(放入当前新建项目的目录里面) <html> <head> <title></title> </head> <body> <form action"/login" meth…