可以实现。
硬件设计中需要加入支持DMA功能的PCIe
Switch芯片。
PCIe
Switch芯片上游接到CPU(根复合体),把两个PCIe设备挂接在这个PCIe
Switch下游。
软件上 *** 作PCIe
Switch内部的DMA控制器,就可以绕开CPU,实现两个PCIe设备之间的数据交换。
PLX公司就有很多支持DMA功能的PCIe
Switch。
希望对你有所帮助。
随着现代处理器技术的发展,在互连领域中,使用高速差分总线替代并行总线是大势所趋。与单端并行信号相比,高速差分信号可以使用更高的时钟频率,从而使用更少的信号线,完成之前需要许多单端并行数据信号才能达到的总线带宽。
PCI总线使用并行总线结构,在同一条总线上的所有外部设备共享总线带宽,而PCIe总线使用了高速差分总线,并采用端到端的连接方式,因此在每一条PCIe链路中只能连接两个设备。这使得PCIe与PCI总线采用的拓扑结构有所不同。PCIe总线除了在连接方式上与PCI总线不同之外,还使用了一些在网络通信中使用的技术,如支持多种数据路由方式,基于多通路的数据传递方式,和基于报文的数据传送方式,并充分考虑了在数据传送中出现服务质量QoS (Quality of Service)问题。
PCIe总线的基础知识
与PCI总线不同,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个设备互为是数据发送端和数据接收端。PCIe总线除了总线链路外,还具有多个层次,发送端发送数据时将通过这些层次,而接收端接收数据时也使用这些层次。PCIe总线使用的层次结构与网络协议栈较为类似。
11 端到端的数据传递
PCIe链路使用“端到端的数据传送方式”,发送端和接收端中都含有TX(发送逻辑)和RX(接收逻辑),其结构如图41所示。
由上图所示,在PCIe总线的物理链路的一个数据通路(Lane)中,由两组差分信号,共4根信号线组成。其中发送端的TX部件与接收端的RX部件使用一组差分信号连接,该链路也被称为发送端的发送链路,也是接收端的接收链路;而发送端的RX部件与接收端的TX部件使用另一组差分信号连接,该链路也被称为发送端的接收链路,也是接收端的发送链路。一个PCIe链路可以由多个Lane组成。
高速差分信号电气规范要求其发送端串接一个电容,以进行AC耦合。该电容也被称为AC耦合电容。PCIe链路使用差分信号进行数据传送,一个差分信号由D+和D-两根信号组成,信号接收端通过比较这两个信号的差值,判断发送端发送的是逻辑“1”还是逻辑“0”。
与单端信号相比,差分信号抗干扰的能力更强,因为差分信号在布线时要求“等长”、“等宽”、“贴近”,而且在同层。因此外部干扰噪声将被“同值”而且“同时”加载到D+和D-两根信号上,其差值在理想情况下为0,对信号的逻辑值产生的影响较小。因此差分信号可以使用更高的总线频率。
此外使用差分信号能有效抑制电磁干扰EMI(Electro Magnetic Interference)。由于差分信号D+与D-距离很近而且信号幅值相等、极性相反。这两根线与地线间耦合电磁场的幅值相等,将相互抵消,因此差分信号对外界的电磁干扰较小。当然差分信号的缺点也是显而易见的,一是差分信号使用两根信号传送一位数据;二是差分信号的布线相对严格一些。
PCIe链路可以由多条Lane组成,目前PCIe链路可以支持1、2、4、8、12、16和32个Lane,即×1、×2、×4、×8、×12、×16和×32宽度的PCIe链路。每一个Lane上使用的总线频率与PCIe总线使用的版本相关。
第1个PCIe总线规范为V10,之后依次为V10a,V11,V20和V21。目前PCIe总线的最新规范为V21,而V30正在开发过程中,预计在2010年发布。不同的PCIe总线规范所定义的总线频率和链路编码方式并不相同,如表41所示。
表41 PCIe总线规范与总线频率和编码的关系
PCIe总线规范
总线频率[1]
单Lane的峰值带宽
编码方式
1x
125GHz
25GT/s
8/10b编码
2x
25GHz
5GT/s
8/10b编码
30
4GHz
8GT/s
128/130b编码
如上表所示,不同的PCIe总线规范使用的总线频率并不相同,其使用的数据编码方式也不相同。PCIe总线V1x和V20规范在物理层中使用8/10b编码,即在PCIe链路上的10 bit中含有8 bit的有效数据;而V30规范使用128/130b编码方式,即在PCIe链路上的130 bit中含有128 bit的有效数据。
由上表所示,V30规范使用的总线频率虽然只有4GHz,但是其有效带宽是V2x的两倍。下文将以V2x规范为例,说明不同宽度PCIe链路所能提供的峰值带宽,如表42所示。
表42 PCIe总线的峰值带宽
PCIe总线的数据位宽
×1
×2
×4
×8
×12
×16
×32
峰值带宽(GT/s)
5
10
20
40
60
80
160
由上表所示,×32的PCIe链路可以提供160GT/s的链路带宽,远高于PCI/PCI-X总线所能提供的峰值带宽。而即将推出的PCIe V30规范使用4GHz的总线频率,将进一步提高PCIe链路的峰值带宽。
在PCIe总线中,使用GT(Gigatransfer)计算PCIe链路的峰值带宽。GT是在PCIe链路上传递的峰值带宽,其计算公式为总线频率×数据位宽×2。
在PCIe总线中,影响有效带宽的因素有很多,因而其有效带宽较难计算。尽管如此,PCIe总线提供的有效带宽还是远高于PCI总线。PCIe总线也有其弱点,其中最突出的问题是传送延时。
PCIe链路使用串行方式进行数据传送,然而在芯片内部,数据总线仍然是并行的,因此PCIe链路接口需要进行串并转换,这种串并转换将产生较大的延时。除此之外PCIe总线的数据报文需要经过事务层、数据链路层和物理层,这些数据报文在穿越这些层次时,也将带来延时。
在基于PCIe总线的设备中,×1的PCIe链路最为常见,而×12的PCIe链路极少出现,×4和×8的PCIe设备也不多见。Intel通常在ICH中集成了多个×1的PCIe链路用来连接低速外设,而在MCH中集成了一个×16的PCIe链路用于连接显卡控制器。而PowerPC处理器通常能够支持×8、×4、×2和×1的PCIe链路。
PCIe总线物理链路间的数据传送使用基于时钟的同步传送机制,但是在物理链路上并没有时钟线,PCIe总线的接收端含有时钟恢复模块CDR(Clock Data Recovery),CDR将从接收报文中提取接收时钟,从而进行同步数据传递。
pcie透传测的方法如下:
1、安装PCIe设备,确保连接主机内部的PCIe插槽和外部连接器正确。
2、开启PCIe设备的电源,确保其正常工作。
3、检查PCIe设备的驱动程序,确保其已经正确安装并能正常工作。
4、在PCIe设备上测试透传功能,它可以将PCIe数据从主机传输到外部设备,或从外部设备传输到主机。
5、最后,完成测试,确保PCIe设备的透传功能正常,完成整个测试过程。
PCIe通道的分配:通常由主板制造商设计无法更改,用户仅能在有限范围内调整(拆分或复用)。对于MSDT[1],CPU提供了20或24条PCIe通道[2]。主板制造商通常将其中16条分配给独立显卡这样对带宽要求较高的设备,做成1或2条PCIe插槽(x16/x0或x8/x8),另外4条分配给NVMe固态硬盘(单个M Key M2插槽),其余低速PCIe设备一律通过PCH或FCH连接。
通常主板提供两个PCIe X16插槽,这两个插槽是共用的CPU的PCIe通道吗?
是。
对于MSDT,可供独立显卡使用的PCIe通道只有16条。Intel只有Z、Q、W和C系列芯片组支持拆分这16条通道[3],理论上可拆分为x16或x8/x8或x8/x4/x4[4],B和H系列桌面芯片组一律只能做成1条PCIe x16插槽(即第2条PCIe插槽由PCH提供,通常为x4)。
MSDT的PCIe通道数有限,无论如何也无法突破其带宽上限[5]。
现在NVIDIA和AMD已基本放弃消费级显卡的SLI/CF功能,绝大多数游戏都无法从多显卡系统中获益。如果只是普通家用的话,消费者没有必要考虑多显卡需求。
目前的中高端显卡在PCIe Gen4 x8和x16下的性能差距十分有限(小于10%)[6]。
一般主板都会提供两个M2接口,用以连接固态硬盘。是不是通常一个M2接口共用显卡的X16通道,一个走南桥和DMI通道?
不是。
Intel处理器和PCH之间采用DMI总线连接,十代酷睿以前的桌面处理器只能提供16条PCIe插槽[7],绝大多数主板上的M2插槽全部由PCH提供[8]。Intel从十一代酷睿开始提供20条PCIe插槽,第1条M2插槽多为CPU提供[9],而其它M2插槽通常仍为PCH提供。在NVMe固态硬盘普及早期,由于芯片组能提供的PCIe通道数有限,这些M2插槽常常会和SATA接口复用。
AMD无集显锐龙一直是24条PCIe通道(x16连接独显,x4连接固态,x4连接FCH),带集显的锐龙APU前两代是16条PCIe通道(x8连接独显,x4连接固态,x4连接FCH),从4000G系列开始改为与无集显锐龙相同的24条PCIe通道[10]。
以最新的酷睿和锐龙平台为例,独立显卡使用的PCIe插槽和M2插槽之间通常没有复用关系,即在M2插槽中安装固态硬盘不会影响独立显卡的性能。
随着CPU和芯片组之间的总线的升级,现在MSDT的PCIe通道和带宽瓶颈有所缓解。对于Skylake平台,CPU提供16条PCIe Gen3通道,通过DMI 30 x4总线和PCH连接,Z170芯片组一共26条HSIO通道。当时提供2条M2插槽的高端主板在安装2条PCIe Gen3 x4的M2固态硬盘时往往会有2到4个原生SATA接口无法使用。而今天的高端Z690主板能在安装4条PCIe Gen4 x4的M2固态硬盘的同时,不受影响地使用6个原生SATA接口和USB 10Gbps接口。由于CPU和芯片组之间的总线升级到了DMI 40 x8,其实PCH下的PCIe设备已经基本不存在瓶颈。
以上就是关于pcie设备能否与其他pcie设备直接交换数据怎么实现全部的内容,包括:pcie设备能否与其他pcie设备直接交换数据怎么实现、哪种存储设备可以直连到pcle总线总线提供可靠性的驱动器、pcie透传怎么测等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)