棋子 · 9月2日

PCIe链路初始化和训练:FTS (Fast Training Sequence)

1.FTS (Fast Training Sequence) 

作用:快速训练序列(FTS)在从L0s过渡到L0时用于位和符号锁定。Receiver接收到FTS会退出电气空闲状态,并且完成bit and Symbol lock。

At 2.5 GT/s and 5.0 GT/s data rates:

一个FTS由一个K28.5(COM)符号后跟三个K28.1符号组成。如果数据速率是5.0 GT/s,在传输第一个FTS之前,会先传输四个连续的EIE(Electrical Idle Exit,即K28.7,具有低频分量的符号,用于receiver退出电气空闲状态)符号。receiver通过这些符号识别到电气空闲状态的退出。需要注意的是,在传输第一个FTS之前,传输的EIE字符数量不能超过8个。当扩展同步位(Extended Synch bit)被设置成1时,必须发送4096个FTSs,以便为外部链路监控工具提供足够的时间来实现位和帧同步。

At 8.0 GT/s and above data rates:

一个FTS是一个 130-bit unscrambled Ordered Set Block, 如图Table 4-17 。一个PCIe组件可以请求的最大FTS(N_FTS)数量是255。PCIe组件允许在不同速度下提示需要不同的N_FTS。在退出L0s状态时,transmitter首先发送一个EIEOSQ,EIEOSQ的低频特性将帮助receiver退出电气空闲状态。在发送第一个EIEOSQ之后,transmitter必须发送所需数量的FTS(当Extended Synch bit of the Link Control register数值为1时,所需FTS数量为4096;否则为N_FTS),并且在每32个FTS之后发送一个EIEOSQ。FTS序列将使receiver能够完成位锁定。当扩展同步位(Extended Synch bit)被设置成1时,必须在FTSs和EIEOSQ之间插入并传输SKP有序集,以满足时钟补偿(Clock Tolerance Compensation)要求(见Section 4.2.7 )。

如果N_FTS等于零,则不发送FTS有序集。如果N_FTS不等于零,FTS sequence的最后一个FTS Ordered Set 后面会跟一个EIEOSQ,目的是帮助receiver获得块对齐(Block alignment)。

EIEOS能复位transmitter和Receiver的扰码器(scrambler )。在最后一个EIEOSQ之后,会传输一个SDS有序集,以帮助receiver 完成去偏移(perform de-skew),并指示从有序集到数据流的过渡。在传输SDS有序集之后,必须传输一个数据块(Data Block )。

image.png

1.1.EIE字符

如表格B-2所示,EIE的Current RD-拥有连续5个1,而Current RD+拥有连续5个0,连续多个EIE一起送,体现在传输通道上的现象是信号频率较低。

image.png

1.2.Extended Synch

Extended Synch为1会强制PCIe设备的在退出L0s状态时、在部分recovery状态中发送更多数量的Ordered Sets ,此配置为外部设备(例如,PCIe逻辑分析仪)提供监控Link时间,以便在Link进入L0状态并恢复通信之前实现位和符号锁定。简单来说就是通过发送更多的Ordered Sets,使得外部设备能够提前准备好,从而更好的监控链路行为,防止监控时丢失部分数据。

image.png

2.ltssm之L0s

image.png

3.参考文档

PCI Express Base Specification Revision 5.0, Version 1.0

作者:IC小鸽
文章来源:IC小鸽

推荐阅读

更多IC设计干货请关注IC设计专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
17713
内容数
1281
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息