PCIe 参考时钟架构 (Refclk Architecture)

简介: PCIe 参考时钟架构 (Refclk Architecture)

开聊之前先梳理几个概念:


  •    Jitter,时钟抖动,是对于同一 Clock 而言的, 是时钟源引起的,用来描述被测时钟与理想时钟在时域的偏差(单位为 ps RMS,皮秒均方根)。


  •    Skew,时钟偏斜,是对于多个时钟线而言的,是时钟树不平衡引起的。


  •    此外还有一个概念是频率稳定性,用来描述被测时钟频率与理想时钟频率的偏差(单位 ppm,百万分之一)。




参考时钟


PCIe Serdes 在时钟驱动下收发串行数据流。Serdes 所用时钟由 PHY 内的 PLL 生成,PLL 的参考时钟由外部提供或从接收数据流中恢复出来。


 PCIe 协议指定标准的参考时钟为 HCSL 电平的 100 MHz 时钟,Gen1~Gen4 下要求收发端参考时钟精度在 ±300 ppm 以内,Gen5 要求频率稳定性 ±100 ppm。在 FPGA 应用中,为了兼顾其他 IP,采用 LVCMOS/LVDS/LVPECL 电平 125 MHz/250 MHz 的方案也较为常见。



时钟架构


PCIe 时钟架构是指 PCIe 系统中收发端设备给定参考时钟的方案。PCIe 有 3 种时钟架构(图 1),分别为:Common Clock Architecture (CC),Separate Clock Architecture 和 Data Clock Architecture。


3376a701b08d42f98ca889935bfe644c.png


Common Clock Architecture


Common Clock Architecture (CC),通用参考时钟架构,收发端共享同一个参考时钟。三种 PCIe 参考时钟架构中,Common Clock 是最为常用的一种时钟架构,采用 Common Clock 支持时钟扩频(SSC, Spread Spectrum Clock) 且对参考时钟的要求不如 Separate Clock 方案严苛。Common Clock 对于频率稳定性的要求是 ±300 ppm。


对于适用同一 Common Clock 作为参考时钟的 PCIe 设备,所有设备间的时钟偏斜(Clock Skew)必须保持在 12 ns 以内,这无疑对大型电路板上或跨板的 PCIe 设备间布局布线形成巨大挑战。




Separate Clock Architecture


Separate Clock Architecture,收发端采用独立的参考时钟,根据有无 SSC 可进一步分为 SRNS ( Separate Refclk with No SSC) 及 SRIS (Separate Refclk with Independent SSC)。


 对于收发端采用独立参考时钟的方案,其收发端独立使用不同的参考时钟源,无需单独传递时钟,对布局布线的要求更宽松。SRNS 允许 ±300 ppm (600ppm),而 SRIS 允许 ±2800 ppm (5600 ppm,其中SSC允许 5000ppm,TX/RX允许 600 ppm)。


 若 PCIe 设备开启了 SRIS,其发生 SKP 的频率应该加大,同时加大弹性缓存(Elastic Buffer)的深度。弹性缓存加大使得延时更大,在一定程度上降低了 performance。对于一条 PCIe 链路,如何知道要不要采用 SRIS 呢?遗憾的是,目前尚没有机制实现收发端之间的 SRIS 协商。



Data Clock Architecture


Data Clock Architecture,仅发送端需要 Refclk,接收端无需外部 RefClk,其 CDR (Clock Data Recovery,时钟数据恢复)的 Refclk 参考时钟从数据流中恢复出来。Data Clock 时钟方案是三种方案中最易实现的方案,其无需外部参考时钟,在数据流中携带有时钟信息,接收端接收数据流并从中恢复出时钟供给其 CDR 作参考时钟。


Data Clock 时钟方案仅适用于 Gen2 及 Gen3,单 lane 单向最高速率 8GT/s。




扩频时钟(SSC)


扩频时钟可以抑制电磁干扰(EMI)。为了降低 PCIe 时钟及数据线的电磁辐射、增强高速数据传输可靠性,PCIe 时钟可以采用 SSC 对参考进行时钟扩频。Gen1~Gen5 都支持 SSC,但只有 Gen3 及以上支持 SRIS。


 PCIe 扩频模式为向下扩频,扩频范围为-0.5%~0%,确保最大频率在标称频率之下。最大调制幅度为 -0.5%!


 调制频率为 30 KHz ~ 33 KHz,确保 PLL 能够跟得上,同时减小音频噪声的引入。调制波形采用三角波,该波形易于实现,且调制后的频谱接近均匀分布。


 注意:30 KHz ~ 33 KHz 是指频率随时间周期变化的频率,不是展宽的带宽,带宽为时钟频率的 0.5% 。


 更多扩频相关介绍,请查看文末参考资料。




Clock Jitter


Common Clock 与 Data Clock Jitter


 随着 PCIe 速率的提升,其对时钟抖动 (Jitter) 的要求也越来越严苛。图 2 为 Common Clock 及 Data Clock 模式下的不同 PCIe 速率对 Jitter 的要求。

5e66077e4b654f279d64436bde968f86.png

▲ 图 2 Common Clock 及 Data Clock 架构的 Jitter 需求





SRNS/SRIS Clock Jitter



目前尚未出台 SRNS/SRIS 模式下 Gen4/Gen5 的 Jitter Limit,现有的 SRNS/SRIS Jitter Limit 是基于 Common Clock Jitter Limit 等效推算出来的。


 假设 Separate Clock 收发端采用跟 Common Clock 相同电平、相同 Jitter 、相同频率的时钟。设 Common Clock 系统 Jitter Limit 为 J C C S y s t . S i m J_{CC_{Syst.Sim}} JCCSyst.Sim(仿真结果,非标准指定),那么采用 Separate Clock 的方案,引入了两个随机独立的 Jitter J 1 J_1 J1 和 J 2 J_2 J2(图3)。系统总的 Jitter 可以表示为两者平方和的根,即:


JT=J12+J22


假设 J 1 = J 2 = J S R N S , S R I S J_1=J_2=J_{SRNS,SRIS} J1=J2=JSRNS,SRIS, Separate Clock 要达到跟 Common Clock 相同的系统 Jitter Limit J C C S y s t . S i m J_{CC_{Syst.Sim}} JCCSyst.Sim, 其收端或发端 Clock Jitter Limit 可以表示为:



JSRNS,SRISMAX=JCCSyst.Sim/2



e283b1eb846b42e3b1d3a0dfc7d8bc20.png


▲ 图 3 Separate Reference Architecture Jitter Distribution

a2f6b86562934b16b79c8d2969805b5c.png


▲ 图 4 Separate Clock 架构的 Jitter 需求


 图4 是基于 Common Clock 架构计算出的 SRNS/SRIS Jitter Limit。整体来看,Separate Clock 的 Jitter Limit 比 Common Clock 和 Data Clock Jitter Limit 都要小,也就是说Separate Clock 对Clock Jitter 的要求更为严苛。


 注意:Common Clock 及 Data Clock 时,考虑到长距离时钟线上的耦合噪声,标准中给定的 Limit 是要比仿真结果小的,比如系统仿真 Gen5 的 Clock Jitter Limit 是0.25 ps RMS,标准中给定的是 0.15 ps RMS。但采用 Seoparate Clock 架构的 PCIe 系统,其收发端各自有一个独立的时钟源,消除了时钟线的耦合噪声,其 Jitter Limit 仍采用仿真结果。




参考


  1.    PCI Express Base 6.0,Chapter 4.3.9 & 8.6


  1.    关于PCIe参考时钟的讨论


  1.    PCIe 的时钟结构


  1.    Selecting the Optimum PCI Express Clock Source


  1.    进行精准的PCIe 4.0时钟抖动测量


  1.    PCIe Separate Reference Clock With Independent Spread (SRIS) Architecture Overview


  1.    PCIe Spread Spectrum Clocking (SSC) for Verification Engineers
  2.    什么是SSC(扩频时钟)


  1.    采用扩频技术的EMI解决方案


  1.    扩频时钟SSC技术,即展频


  1.    高速协议时钟SSC扩频展频学习整理


  1.    时钟抖动计算






目录
相关文章
|
27天前
|
存储 固态存储 安全
阿里云服务器X86计算架构解析与X86计算架构云服务器收费价格参考
阿里云服务器架构分为X86计算、Arm计算、高性能计算等多种架构,其中X86计算是用户选择最多的一种架构,本文将深入探讨阿里云X86计算架构的云服务器,包括其技术特性、适用场景、性能优势以及最新价格情况。
|
28天前
|
编解码 弹性计算 应用服务中间件
阿里云服务器Arm计算架构解析:Arm计算架构云服务器租用收费标准价格参考
阿里云服务器架构分为X86计算、Arm计算、高性能计算等多种架构,其中Arm计算架构以其低功耗、高效率的特点受到广泛关注。本文将深入解析阿里云Arm计算架构云服务器的技术特点、适用场景以及包年包月与按量付费的收费标准与最新活动价格情况,以供选择参考。
|
2月前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
3月前
|
机器学习/深度学习 算法 数据库
阿里云服务器架构区别解析:从X86计算、Arm计算到高性能计算架构的区别参考
在我们选择阿里云服务器的架构时,选择合适的云服务器架构对于提升业务效率、保障业务稳定至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供参考和选择。
阿里云服务器架构区别解析:从X86计算、Arm计算到高性能计算架构的区别参考
|
5月前
|
缓存 负载均衡 Java
Spring Boot 优雅实现多活架构(Active-Active Architecture)
【6月更文挑战第20天】实现多活架构(Active-Active Architecture)意味着在多个地理位置或多个数据中心同时运行应用系统,使其具备高可用性、灾难恢复和负载均衡能力。以下从理论到实践详细介绍如何使用 Spring Boot 构建多活系统。
92 6
|
5月前
|
人工智能 NoSQL 关系型数据库
主从模式(Master-Slave Architecture)在传统的计算机科学中指的是一种分布式系统架构
主从模式(Master-Slave Architecture)在传统的计算机科学中指的是一种分布式系统架构
263 5
|
4月前
|
中间件 BI 测试技术
【实践篇】领域驱动设计:DDD工程参考架构
领域驱动设计(DDD)参考架构旨在为团队提供DDD实践的起点,强调业务与技术的分离,考虑多种架构风格如分层、六边形等。它包括多限界上下文结构,每个上下文内有应用层(不含领域逻辑)、领域层(含领域模型和事件)和网关层。接入层负责外部请求的处理,业务层协调不同上下文。组件包括Start(启动)、Common(通用)、API、Facade、Application Service、External API、Query、Domain和Gateway,各组件有明确的职责和依赖关系,如Gateway处理技术细节并作为系统与外部的接口。架构设计是多因素权衡,适应实际工程需求。
209 0
|
6月前
|
机器学习/深度学习 自然语言处理 网络架构
经典神经网络架构参考 v1.0(4)
经典神经网络架构参考 v1.0
50 0
|
6月前
|
网络架构
经典神经网络架构参考 v1.0(3)
经典神经网络架构参考 v1.0
37 0
|
6月前
|
网络架构
经典神经网络架构参考 v1.0(2)
经典神经网络架构参考 v1.0
38 0