沧小海笔记之PCIE协议解析——第一章 PCIE概述(上)

目录

第一章 PCIE概述(上)

1.1 PCIE是什么

1.2 PCIE的链接方式


第一章 PCIE概述(上)

 PCIE全称peripheral component interconnect express,一个词一个词翻译就是外围设备组件互联特快,就是贼快的外围设备互联接口协议,说是外围,那么,是谁的外围呢?最初是Inter公司在2001年提出的,也就是他们家X86处理器和外围设备互联用的一个协议,且是为了取代跟不上时代发展的PCI提出的,并在相关技术的不断发展中迸发出来了无限潜力,成为了FPGA工程师必啃对像。

如下图是本章内容,第一部分先介绍PCIE技术具有什么样的特点、应用场景等,第二部分介绍PCIE进行数据交换的物理链路,在计算机中的拓扑结构,第三部分概括介绍PCIE协议的两种传输机制、三层协议结构、四种事务类型。


1.1 PCIE是什么

说PCIE就不得不提一下PCI了,PCI和PCIE在物理结构上的区别在于一个是并行的,一个是串行的(嗯,我看得就是这么肤浅)。在协议上PCIE兼容PCI,并在其基础上不断升级,并在升级的过程中逐渐摆脱PCI的身影,例如I/O事务类型,PCIE就要逐渐取消了。

说PCI日落西山成为了明日花黄有点过分,但确实PCIE成为了时代的新宠,究其原因,还是其本身的限制,包括带宽、流量控制和数据传送质量等。PCI提高带宽的方法有两种,一是增加位宽,二是提高速率,可增加位宽提高成本,增大占板面积,提高速率影响信号完整性,而且负载能力受限,例如33MHz的可以驱动10个负载,66MHz最多只能驱动4个负载。而且PCI的服务质量也存在问题,其本身并没有流量控制,运行一个设备长期占用总线,这就很不好了。可是,我们可以说PCI设计的不好么?不可以,因为它曾经取得了巨大的成功,在他的那个时代是宠儿,正如我们总是看前辈留下的代码如同排泄物,但若处在他当时环境、条件下却未必做得更好,站在前辈的肩膀上,要告诫自己谦虚。

PCIE作为低开销、低延迟、高性能的互联协议广泛应用于市场各个方面,例如移动设备、工作站、服务器、嵌入式设备,为不同平台的互联通信提供了低成本高性能的解决方案。PCIE能够支持多种数据类型、具备电源管理、热插拔、错误处理功能、差异化服务(QoS)、通道可配置等功能。PCIE如此厉害,却只需简单的物理接口来实现,可谓不错的模块化设备,值得我们去学习。


1.2 PCIE的链接方式

曾经在写SRIO时说过,使用高速差分总线替代并行总线是大势所趋,PICE就是在这趋势下的产物。PCIE一般是如下的板卡和卡槽。其中金手指的宽度由通道数决定。

当然也可以是芯片间的连接,无论怎么连接,PCIE都是使用端到端的连接方式,而且在一条PCIE链路的两端只能各连一个设备进行数据交换。

如下图是个双通道的PCIE原理图,有两对串行收发数据线和一个参考时钟,在加上复位信号组成,结构可谓非常的简单。简单的硬件结构要实现互联这样复杂的功能,就需要复杂的软件设计来支持了。另外,参考时钟也不是必须的,PCIE可以通过CDR技术将时钟从数据恢复出来,这样进一步的减少了数据链路的复杂度 。

PCIE在两个组件之间采用LVDS也就低压差分信号驱动,全双工通信方案进行数据交换,如下图所示,我们看到差分信号上都有0.1uf的电容,这是进行AC耦合,该电容被称之为AC耦合电容。差分信号具有很强的抗干扰能力,因为外部信号会同时增加到两根极性相反的信号线上进而被抵消,此外还具有抑制电磁干扰的作用,所以用差分信号能够很好的保证传输质量。PCIE的物理层还通过电压均衡、CDR、极性控制、串并转换等技术实现数据的接收和发送处理。


另外,除了数据线还有很多信号,挑几个大概介绍一下

1、PCIE_CLK_P/N

         这个在上文说过,是可用可不用,根据设计需求而定,例如些板卡根据一个时钟振荡器产生多路同源时钟用于板上不同设备,保证其在相同的时钟域,如果远距离或者板级间(光纤连接)则没有同源时钟,就需要各自的时钟,然后利用CDR等技术进行时钟恢复。

2、PCIE_PERST

         全局复位信号,是控制器对PCIE设备进行复位的信号,PCIE设备用该信号复位其内部逻辑。

3、PRSNT信号

         上图有两个 PRSNT信号,这是和热插拔有关,如下图所示,要插入卡需要长短针的配合,保证其最后插入和最早拔出,进而在这间隙做些处理。卡槽则是一个接地一个上拉。

4、其他

我们还可以在原理图上看到些没用引出的信号,包括WAKE用于实现唤醒功能、SMCLK和SMDAT用于实现处理器收集外设的运行信息,不过现在很少用了、JTAG信号用于调试、还有12V和3.3V两种电压。

如下图是PCIE各版本的传输速率,其中GT/s和GB/s是两个不同的衡量指标,GT/s(Giga Transmission per second,千兆传输/每秒)即表示物理通道的每秒的传输速率,描述的是通道传输能力,与通道个数无关。例如PCIE-1.0版本,其通道的传输能力是2.5GT/S,如果使用单通道,则其速率为250MB/S,采用8B/10B编码后的传输速率就是2.5Gbps,如果采用4通道,其传输速率就是10Gbps,但通道的传输能力依旧是2.5GT/S。而且对于设备的通道数是可配置的,

看FPGA更多内容,请戳这里: FPGAUP网--专注打造FPGA知识平台

欢迎关注“沧小海的FPGA”微信公众号,回复“PCIE”可获取相关资料,其中包括

1、协议规范的中文翻译

2、相关英文资料

3、PCIE的使用教程

  • 25
    点赞
  • 251
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值