沧小海笔记之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”微信公众号,回复“PCIE”可获取相关资料,其中包括
1、协议规范的中文翻译
2、相关英文资料
3、PCIE的使用教程
沧小海笔记之PCIE协议解析——第一章 PCIE概述(上)相关推荐
- 【沧小海笔记】之基于FPGA的以太网设计相关知识——第三章 xilinx 三速以太网IP核(TEMAC)的介绍
总目录在这里哦~ https://blog.csdn.net/z123canghai/article/details/114649502 Xilinx为我们提供了一个叫做"Tri-Mode ...
- 沧小海笔记之基于xilinx的三速以太网相关知识的学习与理解
目录 第一章 读<图解TCP/IP>笔记 第二章 互联网概述 第三章 物理层介绍(基于88E1111) 第四章 xilinx 三速以太网IP核(TEMAC)的介绍 第一章 读< ...
- 沧小海基于xilinx srio核的学习笔记之第二章 Rapidio技术概述
总的目录在这哦~ https://blog.csdn.net/z123canghai/article/details/114648658 目录 第二章 Rapidio技术概述 2.1 总体原则 2.2 ...
- 沧小海详解面试的必答题——I2C协议
目录 第一部分:I2C协议的概述 第二部分:I2C协议的阐述 第三部分:AT24C04简述 第四部分:基于verilog的程序设计(暂无) 对于大多从事FPGA行业的应届生来说,在面试过程中很可能会被 ...
- 沧小海笔记本之xilinx srio核的学习记录之目录
目录 第一章:互连问题 第二章 Rapidio技术概述 第三章 xilinx srio核结构 3.1 xilinx srio核的结构介绍 3.2 ilinx srio核的HELLO格式和流控 3.3 ...
- 沧小海笔记本之A7系列FPGA资源介绍
目录 第一部分:I / OBANK部分资源介绍 1.1 I/O BANK概述与ILOGIC资源概述 1.2 IDELAYE2.IDELAYCTRL和OLOGIC的资源介绍 1.3 OSERDES ...
- 数据结构笔记(王道考研) 第一章:绪论
大部分内容基于中国大学MOOC的2021考研数据结构课程所做的笔记,该课属于付费课程(不过盗版网盘资源也不难找...).后续又根据23年考研的大纲对内容做了一些调整,将二叉排序树和平衡二叉树的内容挪到 ...
- 《小软笔记》用户协议
为了使用本软件及服务,请认真阅读本<用户协议>(以下简称"本协议"),确保您充分理解本协议中各条款.请您务必审慎阅读.充分理解各条款内容,并选择接受或不接受. 除非您已 ...
- 沧小海深入剖析xilinx的GTP/GTX核,掌握高速串行收发机制——第一章 前言闲谈
目录在这哦~ https://blog.csdn.net/z123canghai/article/details/107700878 第一章 前言闲谈 唯有学到最根本的,才能明白万变不离其宗,在遇到新 ...
- 王道考研 计算机网络笔记 第一章:概述计算机网络体系结构
本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 后续章节将陆续更新- 目录 一.概念.功能.组成.分类 1. 计算机网络的概念 2. 计算机网络功能 3. 计算 ...
最新文章
- scikit CountVectorizer源码
- leetcode-26. Remove Duplicates from Sorted Array
- Xamarin Android组件篇教程RecylerView动画组件RecylerViewAnimators(1)
- java 10 发布_Java 10 发布之后,大多数受访者仍在使用 Java 8(82%)
- ubuntu16.04安装opencv3.4
- hashlib 模块用来进行hash
- JAR——pinyin4j-2.5.0
- 小米自然语言处理工程师招聘条件与自己的对应整理
- python跳出两层(多层)循环--使用标志量
- 整理30份酷炫可视化大屏模板,一个代码不用敲,半天学不会来找我
- ios 应用程序证书安装以及发布
- vue.js MVVM模式介绍及案例
- 帮你整理了1000套实习报告模板,快快收藏
- matlab uicontrol 居中,[转载]matlab的uicontrol
- 【零散知识】最大类间方差法(大津法,Otsu)
- dpt rp1 android apk,DPT-RP1 新固件
- 电脑开机后显示器会出现无视频输入然后出现睡眠模式 最近几天会出现显示器打开就出来无视频输入?
- 如何在linux系统中设置定时任务?
- 404是什么意思?404错误页面是怎么造成的
- java中常用的时间格式yyyy-MM-dd'T'HH:mm:ss.SSSZ