bois设置pcie速度

bois设置pcie速度,第1张

1、首先,我们重启电脑,开机时使用热键进入bios设置。

2、由于不同的电脑进入方法不同,可以点击右侧链接查看具体方法。【bios进入方法】

3、打开bios设置后,进入其中的“settings”

4、接着依次进入“高级”“PCI子系统设置”

5、回车选中后,在其中使用方向键选择“Gen4”回车确定。6、设置完成后,按下键盘“F10”保存设置就能开启pcie4.0了。

下表列举了各代PCIE的性能,可见 PCIE总的传输速率 = lane数 * 单lane带宽

PCIe和PCI最大的改变是由并行转为串行,并通过差分信号传输。

BAR(BaseAddress Register)

DW(32bit)

PCIe属于封装分层协议,数据报文在Device Core产生之后,在分别经过事务层(Transaction Layer)、数据链路层(Data Link Layer)、物理层(Physical Layer)之后会依次被增加ECRC,Sequence Number,LCRC,Start,END等数据块。

在PCIe总线中,存储器写请求TLP使用Posted数据传送方式。而其他与存储器和I/O相关的报文都使用Split方式进行数据传送,这些请求报文需要完成报文,通知发送端之前的数据请求报文已经被处理完毕。存储器读写请求TLP使用地址路由方式进行数据传递,在这类TLP头中包含Address字段,Address字段具有两种地址格式,分别是32位和64位地址。在存储器读写和I/O读写请求的第3和第4个双字中,存放TLP的32或者64位地址。存储器、I/O和原子 *** 作读写请求使用的TLP头较为类似。

在PCIe总线中,有些TLP含有Data Payload,如存储器写请求、存储器读完成TLP等。在PCIe总线中,TLP含有的Data Payload大小与 Max_Payload_Size 、 Max_Read_Request_Size 和RCB参数相关。

RC (PCI Express root complex) ,在RC模式时,使用PCIE类型1配置头

EP (endpoint device)工作方式,在EP模式时,使用PCIE类型0配置头

PCIe总线规定在TLP报文中,数据有效负载的最大值为4KB,但是PCIe设备并不一定能够发送这么大的数据报文。PCIe设备含有“Max_Payload_Size”和“Max_Payload_SizeSupported”参数,这两个参数分别在Device Capability寄存器和Device Control寄存器中定义。

而Max_Payload_Size参数的大小与PCIe链路的传送效率成正比,该参数越大,PCIe链路带宽的利用率越高,该参数越小,PCIe链路带宽的利用率越低。

Max_Read_Request_Size参数在Device Control寄存器中定义。该参数与存储器读请求TLP的Length字段相关,其中Length字段不能大于Max_Read_Request_Size参数。在存储器读请求TLP中,Length字段表示需要从目标设备读取多少数据。

值得注意的是,Max_Read_Request_Size参数与Max_Payload_Size参数间没有直接联系,Max_Payload_Size参数仅与存储器写请求和存储器读完成报文相关。

在PCI总线中,所有需要提交中断请求的设备,必须能够通过INTx引脚提交中断请求,而MSI机制是一个可选机制。而在PCIe总线中,PCIe设备必须支持MSI或者MSI-X中断请求机制,而可以不支持INTx中断消息。在PCIe总线中,MSI和MSI-X中断机制使用存储器写请求TLP向处理器提交中断请求。

与Legacy中断方式相比,PCIe设备使用MSI或者MSI-X中断机制,可以消除INTx这个边带信号,而且可以更加合理地处理PCIe总线的“序”。目前绝大多数PCIe设备使用MSI或者MSI-X中断机制提交中断请求。

1、驱动程序向 *** 作系统申请一片物理连续的内存

2、主机向该地址写入数据;

3、主机将这个内存的物理地址告诉FPGA;

4、FPGA向主机发起读TLP请求—连续发出多个读请求;

5、主机向FPGA返回CPLD包—连续返回多个CPLD;

6、FPGA取出CPLD包中的有效数据;

7、FPGA发送完数据后通过中断等形式通知主机DMA完成;

1、驱动程序向 *** 作系统申请一片物理连续的内存;

2、主机将这个内存的物理地址告诉FPGA;

3、FPGA向主机发起写TLP请求,并将数据放入TLP包中—连续发出多个写请求;

4、FPGA发送完数据后通过中断等形式通知主机DMA完成;

5、主机从内存中获取数据;

参考下文: https://blog.csdn.net/eagle217/article/details/81736822

DMA Subsysterm for PCIe用了一系列的descriptors,这些descriptors组成了一个链接列表。它们用来指明DMA transfers的源地址。目的地址以及DMA transfer的长度。他们由驱动程序产生。并且存储在host 内存中。DMA中的控制器会发起抓取descriptor lists来完成初始化并开始执行DMA *** 作。描述符的结构如下:

每个DMA通道都会有自己的descriptors列表。DMA读取到一个descriptor之后会提取其中的src_addr与Dst_addr,然后根据这些地址来完成memory transfer。完成当前descriptor对应的transfer之后。DMA 通道会根据当前descriptor的Nxt_addr来抓取下一个descriptor。而且descriptor中的Nxt_adj记录了列表中还剩下未完成的descriptor的个数。一旦为0,那么当前descriptor的control字段中的STOP位会置高。DMA就会停止抓取descriptor。

DMA channel在在每次的抓取descriptor的请求中都会尽可能抓取最多的descriptors。这个数目被MRRS限制。也被descriptors buffer的容量限制

主板是华硕X370 Prime,本身自带一个M.2固态硬盘插槽,后面想再扩展一张,方便剪辑视频素材。

实施方案:

1.买一张绿联的PCIE转M.2 nvme扩展卡 (49R)

2.自备的一个M.2 nvme固态硬盘,1T(理论速度: 3000+MB/s读速2500+MB/s写速。

插在主板上的PCI-E卡槽后,用AS SSD Benchmark软件测试,读写速度很慢。(各700MB/s左右)

用软件查询硬盘S.M.A.R.T信息,发现传输模式有问题。-- PCIe 2.0 x2

这个传输模式和通道都不正确。

后来在主板BIOS中设置,修改PCIE带宽配置,从原来的自动改为4X,强制使用x4通道。再次尝试,传输模式变为PCIe 2.0 x4,读写速度均为1500MB/s,有提升但还是不足。

后来经查询,发现华硕X370主板那几个PCIE插槽并不全是PCIe3.0,只有前两个插槽是PCIe 3.0速度的。

后来更换插槽再测试,问题解决。

传输模式变为PCIe 3.0 x4

读写速度:2500MB/S和2700MB/s,与理论速度接近。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11131082.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存