PCIe扫盲——关于PCIe参考时钟的讨论

77 篇文章 85 订阅
74 篇文章 87 订阅

发一个上海的岗位(可接受实习生)_Felix@SH的博客-CSDN博客

本文来聊一聊PCIe系统中的参考时钟,主要参考资料为PCIe Base Spec和CEM Spec。在1.0a和1.1版本的PCIe Base Spec中并没有详细的关于参考时钟的描述,而是在与之对应的CEM Spec中提及。从V2.0版的PCIe Base Spec开始,在物理层电气子层章节中增加了参考时钟相关的内容,同时提出了PCIe参考时钟的三种架构:

    1、Common Refclk (Shared Refclk) Architecture

    2、Data Clocked Rx Architecture

    3、Separate Refclk Architecture

以及扩频时钟(Spread Spectrum Clocking,SSC),时钟测试测量等内容。

关于扩频时钟,可以参考之前的文章:扩频时钟(SSC)概念以及Lattice FPGA对扩频时钟的支持-Felix-电子技术应用-AET-中国科技核心期刊-最丰富的电子设计资源平台。扩频时钟对于PCIe来说是可选的,并非是强制的。如果选择支持扩频时钟的话,需满足以下要求:

    ※ 调制范围为+0%到-0.5%,即向下扩频(Down Spreading),如下图所示

    ※ 调制频率必须在30KHz到33KHz,一般为三角波

    ※ 参考时钟源的抖动(Jitter)需在300ppm以内

blob.png

带有SSC的参考时钟频率变化曲线如下图所示:

blob.png

注:为什么选用的是向下扩频,而不是中心扩频或者向上扩频?主要是考虑到,当100MHz已经是系统最靠基准频率的话,向上扩频或者中心扩频会导致系统基准频率超过最高值,进而可能引发系统工作异常。

注:三角波的能力较为集中在低次谐波中,相比于正弦波,方波或者锯齿波,更适合用于SSC中。

关于参考时钟详细参数需求,已经测试测量等相关内容,本文将不会涉及,具体请参考PCIe CEM Spec和2.0或以上版本的PCIe Base Spec中的相关章节。

下面,我们来简单地聊一聊前面说到的三种参考时钟架构,首先是

Common Refclk (Shared Refclk) Architecture

Common Refclk (Shared Refclk) Architecture的示意图如下图所示,

blob.png

blob.png

这种参考时钟架构是Spec推荐使用的,链路两端的器件均使用同一个参考时钟源。即使系统使用了带有扩频的参考时钟源,时钟抖动也只有-300~+2800ppm,这对于物理层中的RxCDR和TxPLL就比较友好了,可以降低RxCDR和TxPLL的复杂程度,达到节约成本的目的。其次,当PCIe链路处于L0s或者L1状态时,即使链路上没有数据流,RxCDR依然可以设计出保持锁定的状态,这样做的好处是,链路从L0s或L1状态恢复到L0状态的时间将会更短。

Data Clocked Rx Architecture

Data Clocked Rx Architecture的示意图如下图所示:

blob.png

从示意图来看,这种参考时钟架构最为简洁,Rx端器件的CDR并不需要参考时钟,而是直接从数据流中恢复出时钟。不过这种结构的RxCDR几乎很少在FPGA的SerDes中使用,因为在没有外部参考时钟的协助下,CDR实现锁定都是一个很大的挑战,还要保证在5600ppm的抖动范围内不失锁(对于带有扩频时钟的PCIe链路来说)。

注:绝大部分的FPGA SerDes都是多协议SerDes,除了支持PCIe外,往往还需要支持其他主流的串行协议,比如SATA、USB、DisplayPort、HDMI、Ethernet (Q)SGMII、CoaXpress、CPRI、FPD-Link II/III、Serial RapidIO、SLVS-EC等等。这种参考时钟架构对于PCIe来说行得通,对于其他的某些串行协议来说可能是无法实现的。

Separate Refclk Architecture

Separate Refclk Architecture的示意图如下图所示:

blob.png

PCIe Spec强烈不推荐使用这种参考时钟架构,尽管这是其提出的三种参考时钟架构之一。PCIe Spec强调,如果使用这种架构,扩频时钟必须被禁止使用(2.5GT/s & 5GT/s),因为这中情况下使用扩频时钟的话,CDR的带宽需甚至需要大于5600ppm,这对于CDR来说是非常大的挑战。

需要注意的是,PCIe Base Spec V3.x中,提到对于8GT/s的PCIe链路而言,在Separate Refclk Architecture下实现扩频时钟也是可行的(即Separate Refclk With Independent SSC (SRIS) Architecture),但是需要更复杂的CDR设计,具体请参考Spec相关章节。

注:原文最早发表于本人的ChinaAET博客(Felix-电子技术应用-AET-中国科技核心期刊-最丰富的电子设计资源平台

PCIE(Peripheral Component Interconnect Express)是一种计算机扩展总线标准,用于连接外部设备与计算机主板之间的数据传输。PCIe连接的设备可以是显卡、声卡、网卡等。 Flow control(流量控制)是PCIE中的一种基础机制,用于在设备之间传输数据时确保数据的可靠传输。 PCIE的flow control可以分为两种方式:Credit-based Flow Control(基于信用控制)和Acknowledgment/Negative Acknowledgment Flow Control(确认/否定确认控制)。 基于信用控制是PCIE中最常用的流量控制机制。发送方设备在发送数据之前会向接收方设备发送一个信用(credit)值,表示发送方设备可以发送的最大数据量。接收方设备在接收到数据后会发回一个更新的信用值给发送方设备,发送方设备根据接收到的信用值确定下一次可以发送的数据量。通过这种方式,可以有效控制不同速度的设备之间的数据传输,避免数据丢失或信道阻塞。 确认/否定确认控制是PCIE中的一种备用方式,当发送方设备发送数据后,接收方设备会发回一个确认或否定确认信号给发送方设备,以告知是否成功接收数据。如果发送方设备收到否定确认信号,则会重新发送数据,确保数据的可靠性。 总结来说,PCIE中的flow control机制是为了确保数据的可靠传输而设计的。基于信用控制和确认/否定确认控制是两种常用的流量控制方式,可以根据不同的需求选择适合的方式来控制数据的传输。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值