当前位置:网站首页>PCIe学习-PCIe总线的基本概念(六)
PCIe学习-PCIe总线的基本概念(六)
2022-04-22 07:45:00 【年少生而为人】
PCIe总线的提出可以算是代表着传统并行总线向高速串行总线发展的时代的到来。实际上,不仅是PCI总线到PCIe总线,高速串行总线取代传统并行总线是一个大的趋势。如ATA到SATA,SCSI到USB等……
不过,为了兼容之前的PCI总线设备,虽然PCIe是一种串行总线,无法再物理层上兼容PCI总线,但是在软件层上面却是兼容PCI总线的。
和很多的串行总线一样,PCIe采用了全双工的传输设计,即允许在同一时刻,同时进行发送和接收数据。如下图所示,设备A和设备B之间通过双向的Link相连接,每个Link支持1到32个通道(Lane)。由于是串行总线,因此所有的数据(包括配置信息等)都是以数据包为单位进行发送的。

与绝大部分的高速连接一样,PCIe采用了差分对进行收发,以提高总线的性能。一个PCIe Lane的例子如下图所示:

除了差分总线,PCIe还引入了嵌入式时钟的技术(Embedded Clock),即发送端不再向接收端发送时钟,但是接收端可以通过8b/10b的编码从数据Lane中恢复出时钟。一个简单的时钟恢复电路模型如下图所示:
注:PCie Gen3以及之后的版本采用了128b/130b的编码方式。

PCIe相对于PCI总线的另一个大的优势是其的Scalable Performance,即可以根据应用的需要来调整PCIe设备的带宽。如需要很高的带宽,则采用多个Lane(比如显卡);如果并不需要特别高的带宽,则只需要一个Lane就可以了(比如说网卡等)。
和PCI-X总线一样,由于非常高的传输速度,PCIe是一种点对点连接的总线,而不像PCI那样的共享总线。但是PCIe总线系统可以通过Switch连接多个PCIe设备,也可以通过PCIe桥连接传统的PCI和PCI-X设备。一个简单的PCIe总线系统的拓扑结构图如下所示:
注:这里的Switch实际上包含了多个类似于PCI总线中桥的概念。

图中的Root Complex经常被称为RC或者Root。在PCIe的Spec中,并没有特别详细的关于Root Complex的定义,从实际的角度来讲,可以把Root Complex理解为CPU与PCIe总线系统通信的媒介。Endpoint处于PCIe总线系统拓扑结构中的最末端,一般作为总线操作的发起者(initiator,类似于PCI总线中的主机)或者终结者(Completers,类似于PCI总线中的从机)。显然,Endpoint只能接受来自上级拓扑的数据包或者向上级拓扑发送数据包。
所谓Lagacy PCIe Endpoint是指那些原本准备设计为PCI-X总线接口的设备,但是却被改为PCIe接口的设备。而Native PCIe Endpoint则是标准的PCIe设备。其中,Lagacy PCIe Endpoint可以使用一些在Native PCIe Endpoint禁止使用的操作,如IO Space和Locked Request等。Native PCIe Endpoint则全部通过Memory Map来进行操作,因此,Native PCIe Endpoint也被称为Memory Mapped Devices(MMIO Devices)。
版权声明
本文为[年少生而为人]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_45437140/article/details/114523482
边栏推荐
- Seven crimes of hackers in social engineering -- greed (Ping of death)
- oracle 数据库常识以及使用
- 236. The nearest common ancestor of a binary tree (medium)
- pictures rotating
- Client server communication project 2
- C语言之scanf/sprintf、fscanf/fprintf、sscanf/sprintf、snprintf
- cesium中实现楼层分解动画
- JMU enumeration weekday
- Constructor and toString
- 129. 求根节点到叶节点数字之和(Medium)
猜你喜欢

CentOS 安装 MySQL

MATLAB提示:要使用 ‘xxx函数‘,则必须授权、安装并启用了以下产品:xxx toolbox

94. 二叉树的中序遍历(Easy)

重整笔记记录:【终极方法】在Vscode中用户创建自定义代码模板

Dynamic memory management of C

Flutter GridView Demo

Level 2: ACL access control list

win10安装Mongo出错Service ‘MongoDB Server’ failed to start

Action inattendue dans une instruction SQL

Matlab installation product selection, how to select the products to be installed
随机推荐
字符串替换相关题目(合并数组)
SQL database multiple choice question (2)
猴子吃桃子问题(循环、递归)
94. 二叉树的中序遍历(Easy)
Machine learning notes - Mathematics in principal component analysis
CentOS MySQL installation
图片旋转
Redis is easy to use
空心字母金字塔
1315. 祖父节点值为偶数的节点和(Medium)
函数指针和指针函数
指针和数组(操作详解)
[paper reading] [3D object detection] voxel set transformer: a set to set approach to 3D object detection from point clouds
Monkey eating peach problem (loop, recursion)
客户端与服务器项目3
JS judge the element to the top and fix it
Single page application
OSPF class IV, class V and class VII LSA details
MATLAB提示:要使用 ‘xxx函数‘,则必须授权、安装并启用了以下产品:xxx toolbox
Fundamentals of go language (1)