S4.2.4.5 Fast Training Sequence (FTS)

2023-11-06 00:04
文章标签 sequence training fast 4.5 s4.2 fts

本文主要是介绍S4.2.4.5 Fast Training Sequence (FTS),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一 本章节主讲知识点

1.1 FTS的用途和实现注意

二 本章节原文翻译

Fast Training Sequence (FTS) 主要用于在L0s->L0跳转的过程中,让Receiver 检测到电气空闲退出,以及实现bit 和 symbol lock。

2.1 Gen1 and Gen2 速率

对于Gen1/2 FTS的组成如下:

            

FTS 由一个 K28.5 COM 字符和三个 K28.1 字符组成,一般最大的请求数量是 255,提供了 4* 255 * 10 * UI 的位锁定时间。一个设备最大可以请求的FTS数量是255个,可以提供的位锁定时间大小为: 4 * 255 * 10 * UI。

当速率为5.0 GT/s,则在发送第一个FTS之前,需要连续发送四个EIE(k28.7)符号,用于帮助Receiver 检测到电气空闲退出状态。4 个连续的 EIE 字符可以保证接收器退出电气空闲并且恢复到正常工作状态,所以至少需要发送 4 个但不能超过 8 个。

如果使用链路监控工具并且需要足够的位和帧同步,可以将扩展同步位设为 1,就可以发送 4096 个 FTS。这个过程需要按照要求发送 SKP 有序集。

最后一个 FTS 发送后必须发送 SKP,如果正好原本有为了时钟补偿的 SKP 需要发送,两个 SKP 是可以背靠背发送的。

2.2 Gen3、Gen4、Gen5 速率

一个FTS是由130bit 未经加扰的 OS block 组成。如下图所示:

设备可以请求的最大数量FTS是 255, 提供了bit lock 的时间大小为:130 * 255 UI (130 * 263 or 273 UI if including the periodic EIEOS)。

FTS 是 130 位的不加扰的有序集,一般最大请求数量为 255,不包含周期性的 EIEOS 情况下提供了 130 * 255 UI 的锁定时间。不同的数据速率可以请求不同的 FTS 数量。

当退出 L0s 状态,发射器首先发送 EIEOS,帮助接收器退出电气空闲;然后发送要求数量的 FTS,注意每 32 个 FTS 需要发送一个 EIEOS。

如上述所说,当扩展同步位为 1,需要发送 4096 个 FTS,则发送过程中需要插入必要的 SKP 有序集。

发送完最后一个 FTS 有序集后要发送一个 EIEOS 有序集帮助接收器获得块对齐。

如果 FTS 发送的数量是 32 的倍数,则发送完最后一个 FTS 需要发送两个背靠背的 EIEOS 有序集。

注意,EIEOS 会复位加扰的 LFSR 值,而 FTS 序列不执行加扰,所以接收 FTS 时加扰的 LFSR 是否执行移位是无所谓的。

 

三 本章节关联知识点

2.1 bit lock

PCIe 的位锁定是指 Rx PLL 锁定在了与 Tx 相同的频率上,不是说锁定了某个 Bit。Rx PLL 依据接收数据流的 Bit 跳变,使得 Rx 还原时钟频率同步于 Tx 时钟。如果没有位锁定,PCIe Rx 无法正确重建 Rx 时钟,也无法正确解析数据。

因为,PCIe总线采用了一种嵌入式时钟的机制,即发送端只向接收端发送数据信号,并不发送时钟信号(时钟信号隐藏在数据信号中)。接收端可以通过CDR(Clock and Data Recovery)逻辑将时钟从数据流中恢复出来,然后再用恢复出来的时钟对数据信号进行采样。当然,时钟恢复需要一定的时间,才能保证时钟信号与数据信号的相位对应关系符合要求。一旦CDR完成了时钟的恢复,我们就说PCIe总线完成了位锁定。

2.2 symbol lock (Gen1/2)

完成了位锁定之后,只是能够准确地识别出数据流中的0和1,还是不知道发送的内容是个啥。对于Gen1&Gen2来说,采用的8b/10b编码,即传输的数据是以10bit为一个字符。LTSSM可以引导物理层相关逻辑通过识别COM(K28.5)等控制字符来确定每个字符的开始与结束为止,即字符锁定。

2.3 block alignment(Gen3/4/5)

块对齐,适用于PCIe 3.0、PCIe 4.0、PCIe 5.0和PCIe 6.0,利用EIEOS(Electrical Idle Exit Ordered Set)来获取Block Sync Header的位置。

四 本章节存疑问题

2.1 N/A

五 总结

这篇关于S4.2.4.5 Fast Training Sequence (FTS)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/353305

相关文章

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

浙大数据结构:02-线性结构4 Pop Sequence

这道题我们采用数组来模拟堆栈和队列。 简单说一下大致思路,我们用栈来存1234.....,队列来存输入的一组数据,栈与队列进行匹配,相同就pop 机翻 1、条件准备 stk是栈,que是队列。 tt指向的是栈中下标,front指向队头,rear指向队尾。 初始化栈顶为0,队头为0,队尾为-1 #include<iostream>using namespace std;#defi

Post-Training有多重要?一文带你了解全部细节

1. 简介 随着LLM学界和工业界日新月异的发展,不仅预训练所用的算力和数据正在疯狂内卷,后训练(post-training)的对齐和微调方法也在不断更新。InstructGPT、WebGPT等较早发布的模型使用标准RLHF方法,其中的数据管理风格和规模似乎已经过时。近来,Meta、谷歌和英伟达等AI巨头纷纷发布开源模型,附带发布详尽的论文或报告,包括Llama 3.1、Nemotron 340

每天一道面试题(2):fail-safe 机制与 fail-fast 机制分别有什么作用?

当谈论Java集合的 fail-fast 和 fail-safe 机制时,涉及的是在集合被并发修改时的行为和处理方式。这些机制对保证程序的正确性和稳定性非常重要,尤其是在多线程环境中。 1. Fail-Fast 机制 定义: Fail-fast 机制的核心是在检测到集合在遍历过程中被修改时,立即抛出 ConcurrentModificationException 异常,从而中断迭代操作。这种

【UVA】1626-Brackets sequence(动态规划)

一道算是比较难理解的动规。 状态转移分2个: (用d[i][j]表示在i~j内最少需要添加几个括号,保持平衡) 1.如果s[i]和s[j]是一对括号,那么d[i][j] = d[i + 1][j - 1] 2.否则的话 d[i][j] = min(d[i][k],[k + 1][j]); 边界是d[i + 1][i] = 0; d[i][i] = 1; 13993644 162

【UVA】10534 - Wavio Sequence(LIS最长上升子序列)

这题一看10000的数据量就知道必须用nlog(n)的时间复杂度。 所以特意去看了最长上升子序列的nlog(n)的算法。 如果有2个位置,该位置上的元素为A[i]和A[j],并且他们满足以下条件: 1.dp[i] = dp[j]    (dp[x]代表以x结尾的最长上升子序列长度) 2.A[i] < A[j] 3.i < j 那么毫无疑问,选择dp[i] 一定优于选择dp[j] 那么

2015年多校联合训练第一场OO’s Sequence(hdu5288)

题意:给定一个长度为n的序列,规定f(l,r)是对于l,r范围内的某个数字a[i],都不能找到一个对应的j使得a[i]%a[j]=0,那么l,r内有多少个i,f(l,r)就是几。问所有f(l,r)的总和是多少。 公式中给出的区间,也就是所有存在的区间。 思路:直接枚举每一个数字,对于这个数字,如果这个数字是合法的i,那么向左能扩展的最大长度是多少,向右能扩展的最大长度是多少,那么i为合法的情况

finalshell 4.5.x在m1mac闪退

使用过程中会出现突然闪退,尤其在定位生产打开一堆窗口的情况下,绝绝子 闪退崩溃日志: Thread 116 Crashed:: Java: pool-4-thread-280 libsystem_kernel.dylib 0x18e926600 __pthread_kill + 81 libsystem_pthread.dylib