【PCIe 6.0】PCIe 6.0 新特性 - L0p 详解2

简介: 【PCIe 6.0】PCIe 6.0 新特性 - L0p 详解

2.2 再次发送L0p请求


端口再次发送L0p请求的时间点是有要求的,满足以下任一条件时本端口方可以再次发送L0p请求:


  •    不论上次L0p请求由谁发起,此刻距上次成功实现动态链路切换已过去1us。


  •    上次L0p请求由本端口发起,但被拒绝了。


  •    上次L0p请求由对端发起且本端口已回复ACK,若上次L0p请求请求上调链路宽度,无论本端口是否监测到对应lane退出电气闲,即无论上调是否成功完成,只要过去2us,本端口均可再次发送L0p请求。


  •  (为什么没提到下调链路宽度呢?下调链路宽度是双方端口能够主动控制的,但是上调可就不是这么回事了,链路坏了还真就上调不了。)




2.3 L0p的进入和退出耗时



对于一直处于活跃状态的lane而言,上调和下调链路宽度对数据传输没有任何影响。


  当下调链路宽度时,对于要关闭的lane而言,考虑到要把SKP替换为EIOS才能进入电气闲,最差情况是2个SKP的间隔1.5ms;当上调链路宽度时,耗时跟从L1退出的耗时相同。



2.4 L0p对称性


大家知道,Tx和Rx可以单独进入和退出L0s状态,但是对于工作在Flit Mode且启用了L0p的PCIe 6.0设备,其Tx和Rx必须同时进入或退出L0p,且Tx和Rx的链路宽度相同,称之为L0p的对称性。为什么要这么做呢?减少设计的复杂度。考虑到USP及DSP的处理速度或许不同,DSP及USP在动态切换链路宽度的时候,或许存在短时间的链路宽度不同的情况,这是允许的,我们仍然称起是对称的。




3. 链路管理DLLP


目前链路管理DLLP类型只有L0p链路管理DLLP这一种,其格式如图5所示。


  各字段意义如下:


  • Byte0:固定值 8’b00101000,用以指示当前为链路管理DLLP。


  • Byte1:指示链路管理的类型,目前只有L0p DLLP这一种类型,值为8’b00000000。


  • Byte2:bit[3:0]表示L0p的命令类型,0100 -> L0p 请求,0110 -> L0p ACK,0111 -> L0p NAK,1010 -> L0p链路上调训练完成;bit[4]在L0p命令为L0p请求时表示L0p请求的优先级,1为高优先级;bit[7:5]预留。


  • Byte3:bit[3:0]及bit[7:4]均表示链路宽度,其中bit[3:0]是L0p请求或链路上调训练完成的链路宽度,bit[7:4]是L0p NAK/ACK的响应负载,0001b -> x1, 0010b -> x2,0100b -> x4,1000b -> x8,0000b -> x16。


6d993e8354b94f45b5a359caf0356755.png


▲ 图5 Link Management DLLP (Flit Mode)


 以下几种情况对应的链路管理DLLP无效,Rx收到后应予以忽略:


  •    链路管理类型 或 L0p命令类型为保留字段。


  •    链路管理类型 或 L0p命令类型正常,但L0p命令类型对应的链路宽度或响应负载为保留字段。




4. 进一步思考


4.1 为什么不继续采用FTS的方式了?


根据经验,为使设备工作在最坏的环境下仍能正常从L0s回退到L0,设计人员往往采用较大的N_FTS,复杂度增加是一方面,对降低功耗也不太友好。想必之下,从lane数较少的L0p回退到L0,采用EIEOS,方法更为简单直接有效。



4.2 那么切换速度可以进L0p吗?


怕是不行。不同速率下的信号质量不同,其对应的均衡、加重/去加重参数不同,每切换一种速度都需要重新进行均衡等,即需要进Recovery重新均衡后再切速。




5. 参考


  1. The PCIe® 6.0 Specification Webinar Q&A: Leveling Up with L0p


  1. 如何成功过渡到PCIe 6.0并应对芯片设计新挑战?


  1. What Disruptive Changes to Expect from PCI Express Gen 6.0


  1. PCIe 6.0时代下的IP挑战




目录
相关文章
|
7月前
|
存储 固态存储 数据库
SSD接口选择指南:PCIe与SATA性能大比拼
【4月更文挑战第21天】
1552 0
【精讲】PCIe基础篇——PCIe传输速率计算
我们在接触PCIe设备时会接触到一个词,传输速率,比如8GT/s。或者有人问你设备的带宽多少?通信速率多少?本文带你了解下。
5823 0
【精讲】PCIe基础篇——PCIe传输速率计算
|
缓存 移动开发 JavaScript
PCIe 参考时钟架构 (Refclk Architecture)
PCIe 参考时钟架构 (Refclk Architecture)
5232 0
PCIe 参考时钟架构 (Refclk Architecture)
【PCIe 协议】听说你做 PCIe 很多年,还不知道 PCIe Hierarchy ID 是什么 ???
【PCIe 协议】听说你做 PCIe 很多年,还不知道 PCIe Hierarchy ID 是什么 ???
711 0
【PCIe 协议】听说你做 PCIe 很多年,还不知道 PCIe Hierarchy ID 是什么 ???
|
6月前
|
存储 人工智能 固态存储
芯片设计 | 什么是 NVMe?
芯片设计 | 什么是 NVMe?
154 0
|
异构计算 SoC
深入理解AMBA总线(三)APB interconnect的补充
深入理解AMBA总线(三)APB interconnect的补充
310 0
|
数据处理 SoC Perl
Xilinx Zynq7035 PL SFP光口通信例程
本文主要介绍说明XQ6657Z35-EVM 高速数据处理评估板SPF光口通信例程的功能、使用步骤以及各个例程的运行效果。
Xilinx Zynq7035 PL SFP光口通信例程
【PCIe 6.0】PCIe 6.0 新特性 - L0p 详解
【PCIe 6.0】PCIe 6.0 新特性 - L0p 详解
1498 0
【PCIe 6.0】PCIe 6.0 新特性 - L0p 详解
|
Linux
【PCIe 6.0】PCIe 6.0 新特性 - DMWr (Deferrable Memory Write) 详解
【PCIe 6.0】PCIe 6.0 新特性 - DMWr (Deferrable Memory Write) 详解
1303 0
【PCIe 6.0】PCIe 6.0 新特性 - DMWr (Deferrable Memory Write) 详解
|
Perl
【PCIe 实战】SNPS PCIe 开启 SRIS mode
【PCIe 实战】SNPS PCIe 开启 SRIS mode
1052 0
【PCIe 实战】SNPS PCIe 开启 SRIS mode