Thread 中讨论的其他器件:TDA4VH
工具/软件:
硬件:TDA4VH、PCIEx4 连接 FPGA、 从 TDA4VH 的 DDR 读取 FPGA。 我们测试最好的带宽是1.8GB/S。
1. 请、 TDA4VH?上是否有任何问题
2. TDA4VH pciex4?上的最大速度是多少
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的 Chen:
我们使用 PCIe SSD 卡测量的数字发布在此处: https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j784s4/10_01_00_05/exports/docs/devices/J7_Family/linux/Release_Specific_Performance_Guide.html#PCIe-NVMe-SSD
理论上、每个 PCIe 通道都应能够以1Gb/s 的速度运行、但会有一些来自标头和 DMA 初始化的开销。 我们发现、在我们随 EP 打包的 SDK/RC 示例中、DMA 是瓶颈、因此在 FPGA 案例中也可能发生同样的情况。
一个了解 DMA 是否是瓶颈的实验是、看看您是否可以向 PCIe 启动多个数据流、而每个数据流都使用不同的 DMA 通道。 如果整体性能翻倍、则最有可能的 DMA 成为瓶颈。
此致、
Takuma
尊敬的 Chen:
我们没有在 SDK 上发布 x4宽度的数字、但我们在内部看到了以下内容:
使用 SDK 10.0 Linux 内核时、以下是使用 DMA 使用 pcitest 实用程序进行 RC 到 EP 数据传输的结果:
序号 | 参数 | 传输大小(以字节为单位) | 以 KB/秒为单位的吞吐量 | 吞吐量(千比特/秒) |
1. | 读取 | 1. | 4. | 0.00003. |
2. | 读取 | 1024 | 4294. | 0.03435 |
3. | 读取 | 1025 | 4311. | 0.03449 |
4. | 读取 | 1024000 | 1514445 | 12.11556 |
5. | 读取 | 1024001. | 1504268. | 12.03414 |
6. | 写入 | 1. | 4. | 0.00003. |
7. | 写入 | 1024 | 4360 | 0.03488 |
8. | 写入 | 1025 | 4447 | 0.03558. |
9. | 写入 | 1024000 | 1326244. | 10.60995. |
10. | 写入 | 1024001. | 1322281. | 10.57825 |
11. | 副本 | 1. | 4. | 0.000032 |
12 | 副本 | 1024 | 4361. | 0.034888 |
13 | 副本 | 1025 | 4360 | 0.034888 |
14 | 副本 | 1024000 | 1100749. | 8.805992. |
15 | 副本 | 1024001. | 1101597 | 8.812776 |
此测试是在 AM69-SK 用作 RC、J784S4-EVM 用作 EP 的情况下执行的。
协商链路宽度:x4、链路速度:8 GT /秒(第3代)。
所有测试(读取/写入/复制)都在 RC 和 EP 之间且启用了 DMA (pcitest 命令中的-d 选项)。
在 RC 上运行了以下命令:
读取=> pcitest -d -r -s
写入=> pcitest -d -w -s
Copy => pcitest -d -c -s
读取=> EP 中 RC 的源缓冲器和目标缓冲器。
写入=> EP 中的源缓冲器和 RC 中的目标缓冲器。
Copy => RC 中的源缓冲区和目标缓冲区。 EP 启动对 RC 源缓冲区的读取、然后对 RC 的目标缓冲区进行写入。
此致、
Takuma
尊敬的 Takuma:
为什么"PCIex4和链路速度:8 GT /秒(第3代)"的最大吞吐量是1.2G 字节/ 秒、理论上应该大于3.5 Gb/秒。
按如下所示记录:
/cfs-file/__key/communityserver-discussions-components-files/791/5481.dmesg.txt
/cfs-file/__key/communityserver-discussions-components-files/791/5481.lspci.txt
谢谢。
尊敬的 Chen:
我从 lspci 日志中看到 PCI_ENDPOINT_TEST 内核模块正在使用中。 J784S4 EVM 上运行的软件来自 pci_endos_test.c、该软件未针对性能/基准测试进行优化、而是针对功能显示进行了更多优化。
理论上、硬件设计的性能上限为8GT/s。 示例是我与所用示例基准测试软件共享的基准测试编号。
此致、
Takuma
此致、
Takuma
尊敬的 Chen:
我认为 J784S4的软件存在通信错误或误解。 无论 EP 或 RC 如何、从 J784S4进行软件传输都是必要的。 如果没有运行任何软件、将不会设置条形码、协商链路训练、设置传输等、因此不会发生事务。
我可以在您的日志中看到以下行:"内核模块:pci_endpoint_test"。 这 意味着 PCI_ENDPOINT_TEST 内核模块正在使用中。 您可能尝试说、您创建的没有在 J784S4 EVM 上运行的用户软件(对)、但我要说的是、您使用上游 Linux 内核提供的演示软件来测试功能(这就是共享日志所指示的)。
我们尚未发布 J784S4编号、但它们使用的 PHY 和 PCIe 控制器与我们在此处发布的 J7200相同: https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j784s4/10_01_00_05/exports/docs/devices/J7_Family/linux/PHY.html#PCIe-NVME-SSD Release_Specific_Performance_Guide。 这里使用 PCIex2实现了1.5Gb/s 的速度,这接近理论值。 使用的基准测试软件是 FiO。
此致、
Takuma
尊敬的 Chen:
开发人员从 350 MB/s 开始,使用不同的选项大大提高了写入速度。 我认为使用 FPGA 进行读取/写入也会发生类似的问题。
此致、
Takuma