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.mzph.cn/news/673673.shtml

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

相关文章

计算机网络-无线通信技术与原理

一般我们网络工程师接触比较多的是交换机、路由器,很少涉及到WiFi和无线设置,但是呢在实际工作中一般企业也是有这些需求的,这就需要我们对于无线的一些基本配置也要有独立部署能力,今天来简单了解一下。 一、无线网络基础 1.1 无…

前端性能优化:提升网站加载速度的终极指南

目录 一、引言 二、问题分析 三、优化方案 1. 减少HTTP请求次数: 方法一:合并文件 方法二:CSS Sprites 方法三:使用CSS和JavaScript工具 2. 使用CDN加速: 方法: 示例: 引入CDN提供的j…

ruoyi-nbcio中xxl-job的安装与使用

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址: http://122.227.135.243:9666 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbach…

【Linux】Ubuntu 22.04 升级 nodejs 到 v18

Ubuntu 22.04 已经安装的nodejs 版本 nodejs is already the newest version (12.22.9~dfsg-1ubuntu3.3). 删除以前的 nodejs 版本: 1. sudo apt remove nodejs rooterp:~# sudo apt remove nodejs Reading package lists... Done Building dependency tree..…

Docker 基本介绍

Docker 基本介绍 镜像 Docker镜像就是一个只读的模板。 例如:一个镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了Apache或用户需要的其它应用 程序。 镜像可以用来创建Docker容器。Docker提供了一个很简单的机制来创建镜像或者更新现有的镜…

PHP、Python、Java 和 Go语言对比

PHP、Python、Java 和 Go 都是流行的编程语言,每种语言都有其独特的优势和适用场景。下面是对这些语言的一些基本对比: 一:PHP 适用场景:主要用于Web开发,特别是服务器端脚本。 特点:语法简单易懂&#…

ChatGPT4 教你如何完成SQL的实践应用

对数据库的各项应用与操作都离不开SQL来对数据进行增删改查。 例如 : 有一张某公司职员信息表如下: 需求1:在公司职员信息表中,请统计各部门,各岗位下的员工人数。 如果这个SQL语句不会写或者不知道怎么操作可以交给…

Excel——分类汇总

1.一级分类汇总 Q:请根据各销售地区统计销售额总数。 第一步:排序,我们需要根据销售地区汇总数据,我们就要对【销售地区】的内容进行排序。点击【销售地区】列中任意一个单元格,选择【数据】——【排序】&#xff0c…

sqli靶场完结篇!!!!

靶场,靶场,一个靶场打一天,又是和waf斗智斗勇的一天,waf我和你拼啦!! 31.多个)号 先是一套基本的判断 ,发现是字符型,然后发现好像他什么都不过滤?于是开始poc 3213131…

今日头条推出秒真问答 布局抖音口碑时机来了

近来,今日头条对部分业务做出调整。一方面是将“头条百科”升级为“抖音百科”,通过“抖音百科”这个新品牌,更好的为今日头条和抖音的内容场景服务。另外一方面则是,推出全新的问答业务“秒真问答”,目前已经在抖音和…

next项目页面性能调优

next项目页面性能调优 一般来说性能优化可以分为加载时、运行时两部分的优化。 扩展参考链接: 前端性能优化 24 条建议 Webpack 4进阶–从前的日色变得慢 ,一下午只够打一次包 Webpack 分包优化首屏加载 参考指标 FCP(First Contentful P…

java生成二维码

1、引入pom依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version> </dependency> <dependency><groupId>com.google.zxing</groupId><artifact…

Android 自定义BaseFragment

直接上代码&#xff1a; BaseFragment代码&#xff1a; package com.example.custom.fragment;import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx…

【网络技术】【Kali Linux】Nmap 嗅探(一)简单扫描

一、实验环境 本次实验进行简单的Nmap扫描&#xff0c;实验使用 Kali Linux 虚拟机和 Ubuntu Linux 虚拟机完成&#xff0c;主机操作系统为 Windows 11&#xff0c;虚拟化平台选择 Oracle VM VirtualBox&#xff0c;如下图所示。 二、实验步骤 1、相关配置 Kali Linux 虚拟机…

第十一个知识点:操控BOM对象

BOM&#xff1a;浏览器对象模型 --- B/S、Object、Model window navigator screen location document history window:操作浏览器窗口 //我们可以通过一些指令控制浏览器 window.alert();//弹窗 window.innerwidth;//获取浏览器页面宽度navigator:封装了浏览器的信息…

OpenCV-32 膨胀操作

膨胀是与腐蚀相反的操作&#xff0c;基本原理是只要保证卷积核的锚点是非0值&#xff0c;周边无论是0还是非0值&#xff0c;都变为0。 使用API---dilate&#xff08;img&#xff0c; kernel&#xff0c; iterationms 1&#xff09; 示例代码如下&#xff1a; import cv2 imp…

【翻译】 Processing的安卓项目构建(译者用的是Android Studio)

原文链接&#xff1a;https://github.com/processing/processing-android/wiki/Building-Processing-for-Android&#xff0c;版本Apr 2, 2023 译者声明&#xff1a;这个文档是开源公开的&#xff0c;协议是GNU协议。译者自己得使用这个文档&#xff0c;所以才翻译的&#xff0…

常用对象和常用成员函数

常量对象与常量成员函数来防止修改对象&#xff0c;实现最低权限原则。 在Obj被定义为常量对象的情况下&#xff0c;下面这条语句是错误的。 错误的原因是常量对象一旦初始化后&#xff0c;其值就再也不能改变。因此&#xff0c;不能通过常量对象调用普通成员函数&#xff0c;因…

Windows Anaconda 运行 gempy examples。示例::

默认读者已安装&#xff1a;Anaconda. 若未安装请参考以下文章&#xff1a; Windows中如何使用 Anaconda 和 gempy地质建模 1&#xff0c;打开Anaconda Navigator: 打开后如此&#xff1a; 运行JupyterLab: launch。 打开gempy example 建模示例&#xff1a; 官方地址&#x…

医学图像安全性概述

参考文献: Insights into security and privacy issues in smart healthcare systems based on medical images 下图左侧是医疗信息共享系统,右侧是计算机辅助诊疗策略: medical image sharing security (MISS)computer-aided diagnostic (CAD)CAD security (CADS)一般在信…