PCIE Order Set

1 Training Sequence

Training Sequence是由Order Set(OS) 组成,它们主要是用于bit aligment,symbol aligment,交换物理层的参数。当data_rate = 2.5GT or 5GT 它们不会被扰码(scramble),当date_rate = 8GT or higher 根据特殊的规则决定是否对Order Set 进行扰码
LTSSM中使用最多的训练序列为TS1 TS2,它们一般都是连续进行发送,只可以被SKP以及 EIOS(2.5GT除外,因为其不支持低功耗模式)打断。
这里的
连续
的判定标准是:(1) 对于使用8b/10b 的TS1 or TS2,symbol 6与前一个symbol 6是一致;(2) 对于使用128/130b编码的TS1 or TS2, symbol 6~9与前几个symbol 6 -9是相同的,对于symbol 中Reserved field 需要按照如下的规则处理。发送时Reserved 字段全部填充为0,对于接收机必须对reserved bit进行奇偶性计算(parity computation)(如果reserved bit 进行了奇偶性计算), 如果明确指出相邻的symbol中所有的Reserved bit必须保持相同,则may 需要直接比较前后symbol中的reserved bit。
此外对于128b/130b的编解码每条lane能偶独立跟踪各自的DC Balance (dc balance指的是1 和 0 之间的差距),最大的differenct 为511,达到最大值之后会保持在511。
在两种情况下Dc Balance differentce会被 set to 0, (1) 发送机进入电气空闲状态[electrical idle] (2) 发送机在发送EIEOS退出电气空闲后发送了Data BLock。每发送8个TS1 or TS2 OS,发送机必须评估running DC Balance并设置TS 中的DC Balance Symbol ,设置的算法如下:如果需要降低对方发送 "1“ ,需要set 20h for symbol14 and 08h for symbol 15;如果需要降低发送”0“, 需要set DFh for symbol 14 and F7h symbol 15。note 任何DC Balance symbol(symbol 14、15) 禁止进行扰码
runing dc balance > 31 DC Balance (symbol 14 and symbol 15) are not scrambld.
runing dc balance > 15 symbol 14 TS1 Identifier Symbol is scarmbled , DC Balance ( symbol 15) are not scrambld.
else symbol 14 and 15 TS1 Identifier Symbol is scarmbled .

2 Electrical Idle

在发送机进入电气空闲(Electrical Idle) 之前,它必须发送Electrical Idle Order Set Sequence(EISOQ)。EIOSQ 是1个EIOS symbol in data_rate 2.5T 8GT 16GT, 2个EIOS symbol in data_rate 5GT在8b/10b编码下 EIOS = K28.5(COM)+ 3个K28.3(IDL) Symbol,发送时需要发送所有的4个symbol,在接受时只要收到 COM+2个IDL便认为识别到了一个EIOS Symbol;在128b/130b编码条件下EIOS 是一个order set block,正常发送时需要发送完整的symbol(但是如果在它发送接收进入电气空闲状态,个人理解它指的是最有一个EIOS,此时可以只发送EIOS 中的symbol 0-14),接收时如果一个OS block 的symbol 0-3 符合EIOS的定义则认为收到了一个EIOS 序列。
在发送Electrical IDLE OS 最后一个symbol ,发送机必须处于电气空闲状态。
在这里插入图片描述
在这里插入图片描述
EIEOS只有在data_rate > 2.5GT才可以使用,这种低频的EIEOS 信号可以保证电气空闲检测电路捕捉到退出电气空闲的。

当使用8b/10b编码时并且data_rate = 5GT ,EIEOS还可以被用作如下场景中:
(1) 在进入Configuration.Linkwidht.start的第一个TS1 OS之前;
(2) 在进入Recovery.Lock的第一个TS1 OS之前;
(3) 每隔32个TS1 or TS2 OS 需要发送一个EIOS(Configuration.Linkwidht.start Recovery.Lock Recovery.RcvrCfg );
当使用128b/130b编码时EIEOS也可以被用作Block Alignment,也可以用作在如下场景中:
(1) 在进入Configuration.Linkwidht.start的第一个TS1 OS之前;
(2) 在进入Recovery.Lock的第一个TS1 OS之前;
(3)在Data Stream 发送结束时候,如果不发送EIOS 也不进入Recovery.RcvrLock 则需要在EDS Frame Token 之后发送一个EIEOS;
(4) 每隔32个TS1 or TS2 OS 需要发送一个EIOS ;
(5) 如果Reset EIEOS Interval Count Bit =1 则避免将TS打断,则在Recovery.Equalizatoin 状态需要每隔65536个 TS1 OS 发送后需要发送一个EIOS ;
(6) 它是FTS OS, Compliance Pattern,or Modified Compliance pattern中需要使用。

在这里插入图片描述
在这里插入图片描述

3 Fast Training Sequence

FTS适用于从L0s(低功耗) --> L0时用于bit and symbol锁定的序列,它可以被Receiver用于检查测是否退出电气空闲状态,并对齐Receiver 's bit and symbol 电路应应对后续到来的数据
在data_rate 是2.5GT and 5GT 条件下,FTS = K28.5 + 3个K28.1, number of FTSs (N_FTS)是组件可以请求FTSs 的最大数量,它是255。 如果data_rate = 5GT, 在发送第一个FTS之前,会先发送3个EIE symbol (主要是帮助Receiver 检测到 退出电气空闲) ,规范要求至多发送8个EIE symbol (帮助恢复发送机pin上的电压达到一个可接收的水平 )。如果Extended Sync Bit = 1 则需要发送4096个FTS,提供给link 监控工具足够的时间实现完成bit frame 同步。 SKP必须在FTSs之间发送,但是在第一个N_FTS FTSs 不可以发送中间不可以发送FTS。
在data_rate 是8GT or higher条件下,一个FTS 是130 bit的unscrambled 的Order Set Block,**number of FTSs (N_FTS)是组件可以请求FTSs 的最大数量,它是255。在退出至L0s,发送机需要发送1个EIEOS帮助Receiver 识别到退出电气空闲 **随后发送N_FTS
个FTSs ,如果Extended Sync Bit = 1 则需要发送4096个FTS每隔32个FTS则需要发送一个EIEOS在最后一个FTS 发送结束后需要发送1个EIEOS帮助receiver 完成block alignment。具体实现时可以在最后阶段发送2个EIEOS,但这需要N_FTS时32的整数倍。

Note EIEOS会复位Transmitter and receiver 的scrambler,在最后一个EIEOS后需要发送SDS order set ,这时为了帮助receiver 进行de-skew and 指示从Order Set向Data Stream的跳变。在SDS OS发送结束后,Data Block 必须被发送。
其中:N_FTS 字段可以通过Recovery状态宣告不同的值,也可以通过软件中Commmon Clock Configureation bit 完成更改

在这里插入图片描述
如果在L0s阶段,发送机已经完成所有N_FTS 个FTS的发送,但是Receiver还未完了lock de-skew操作,此时Receiver需要跳转到Recover状态,调整N_FTS的 以实现下次可以完成lock操作。

4 Start of Data Stream Order Set

它仅用于128b/130b编码使用,会在Congiguration.Idle Recovery.Idle Tx_L0s.FTS 状态 或者 LoopBack Master 发送,除此之外不可以在其他状态发送。它是Order Set Block 向Data Stream 的过渡阶段发送的数据,如果不是在Loopback状态,则SDS OS后需要发送Data BLock,且Data Block的第一个symbol是Data Stream的第一个symbol
在这里插入图片描述

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

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

相关文章

Nginx中logs的nginx.pid文件引发的问题

Nginx中logs的nginx.pid文件引发的问题 Q1:nginx: [error] CreateFile() "D:\software\nginx-1.22.1/logs/nginx.pid" failed (2: The system cannot find the file specified)Q2:nginx: [error] invalid PID number "" in "D:…

HiveSQL——借助聚合函数与case when行转列

一、条件函数 if 条件函数 if函数是最常用到的条件函数&#xff0c;其写法是if(xn,a,b), xn代表判断条件&#xff0c;如果xn时&#xff0c;那么结果返回a ,否则返回b。 selectif(age < 25 or age is null, 25岁以下, 25岁以上) as age_cnt,count(1) as number from table…

[项目管理] 如何使用git客户端管理gitee的私有仓库

最近发现即使翻墙也无法g使用ithub了&#xff0c;需要把本地的项目搬迁到新的git托管平台。 gitee 是一个国内开源项目托管平台&#xff0c;是开源开发者、团队、个人进行 git 代码管理和协作的首选平台之一。本文将详细介绍如何向 gitee 提交私有项目。 注册 Gitee 账号并创建…

【Linux权限】

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 扩展知识&#xff1a…

Pymysql之Cursor常用API

Cursor常用API 1、cursor.execute(query, argsNone)&#xff1a;执行sql语句。 参数: query (str)&#xff1a;sql语句。 args (tuple, list or dict)&#xff1a;sql语句中如果有变量&#xff0c;或者格式化输出&#xff0c;会在这里填充数据。 Returns&#xff1a;返…

【开源】SpringBoot框架开发大病保险管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统配置维护2.2 系统参保管理2.3 大病保险管理2.4 大病登记管理2.5 保险审核管理 三、系统详细设计3.1 系统整体配置功能设计3.2 大病人员模块设计3.3 大病保险模块设计3.4 大病登记模块设计3.5 保险审核模块设计 四、…

【C#】.net core 6.0 创建默认Web应用,以及默认结构讲解,适合初学者

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握。…

17:定时器编程实战

1、实验目的 (1)使用定时器来完成LED闪烁 (2)原来实现闪烁时中间的延迟是用delay函数实现的&#xff0c;在delay的过程中CPU要一直耗在这里不能去做别的事情。这是之前的缺点 (3)本节用定时器来定一个时间&#xff08;譬如0.3s&#xff09;&#xff0c;在这个定时器定时时间内…

【Java】ArrayList和LinkedList的区别是什么

目录 1. 数据结构 2. 性能特点 3. 源码分析 4. 代码演示 5. 细节和使用场景 ArrayList 和 LinkedList 分别代表了两类不同的数据结构&#xff1a;动态数组和链表。它们都实现了 Java 的 List 接口&#xff0c;但是有着各自独特的特点和性能表现。 1. 数据结构 ArrayList…

CPP项目:Boost搜索引擎

1.项目背景 对于Boost库来说&#xff0c;它是没有搜索功能的&#xff0c;所以我们可以实现一个Boost搜索引擎来实现一个简单的搜索功能&#xff0c;可以更快速的实现Boost库的查找&#xff0c;在这里&#xff0c;我们实现的是站内搜索&#xff0c;而不是全网搜索。 2.对于搜索…

STM32学习笔记——定时器

目录 一、定时器功能概述 1、基本定时器&#xff08;TIM6&TIM7&#xff09; 工作原理 时序 2、通用计时器&#xff08;TIM2&TIM3&TIM4&TIM5&#xff09; 时钟源 外部时钟源模式1&2 外部时钟源模式2 外部时钟源模式1 定时器的主模式输出 输入捕获…

【开源】SpringBoot框架开发超市账单管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 总体设计3.2 前端设计3.3 后端设计在这里插入图片描述 四、系统展示五、核心代码5.1 查询供应商5.2 查询商品5.3 新增超市账单5.4 编辑超市账单5.5 查询超市账单 六、免责说明 一、摘要 1.1 项目介绍 基于…