大家好,我现在正用socFPGA做高速信号采集的项目,FPGA驱动AD芯片每秒钟产生80Mbyte的数据,我要把这些数据写到SSD里,我试了两种方案:
1:FPGA将数据写到FPGA端的DDR中,HPS通过AXI brdges桥将数据读到linux中,但我发现读的速度很慢,只有50Mbyte每秒,linux再把数据写到SSD中,整个过程就更慢了,每秒只能写25Mbyte到SSD
2:linux预留512M的空间给FPGA通过FPAG to SDRAM写入数据,这512M内存不归linux管理,FPAG写入的速度是很快,但在linux中用mmap映射后linux读这512M的内存速度很慢,只有130Mbyte每秒,然后两把这些数据写到SSD里,整个过程的速度就只有50Mbyte每秒了
SSD的写入速度有130Mbyte每秒,所以瓶颈应该是mmap函数和访问了外部的存储器,我试过异步写入,一个线程用来把数据拷到linux中,一个线程写SSD,但整体速度最高只能达到65Mbyte每秒,和要求的相差太远了,请问那位高人做过类似的项目,能给我一些建议吗,谢谢 |