14773|51

965

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

altera soc高速信号采集HPS读DDR速度太慢,求助 [复制链接]

 
  本帖最后由 石玉 于 2016-10-31 16:36 编辑

大家好,我现在正用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每秒,和要求的相差太远了,请问那位高人做过类似的项目,能给我一些建议吗,谢谢


此帖出自Altera SoC论坛

最新回复

楼主你是怎么把AD采集的数据通过FPGA写入ARM端DDR的?求指点?或是工程发一下,谢谢,842275462@qq,com  详情 回复 发表于 2018-5-27 18:56
点赞 关注(1)
 
 

回复
举报

2

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
SSD是瓶颈 你可以多开几个BUFFER 多个线程保存数据 看看显卡是怎么做的
此帖出自Altera SoC论坛

点评

SSD不是瓶颈,我不使用SSD,就把不归linux管理的512M内存拷贝到linux中,速度最快也只有130Mbyte每秒,如把FPGA端的数据拷到linux中就更慢了  详情 回复 发表于 2016-10-31 17:45
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你还是抛开Linux 裸奔吧
此帖出自Altera SoC论坛

点评

裸奔 我们还要做一个QT界面,数据在SSD中以文件的格式保存,数据还要用数据库检索和读取,还要拷到PC上做分析,应该还是要Linux的  详情 回复 发表于 2016-10-31 17:48
 
 
 

回复

965

帖子

0

TA的资源

纯净的硅(高级)

4
 
791709249 发表于 2016-10-31 16:47
SSD是瓶颈 你可以多开几个BUFFER 多个线程保存数据 看看显卡是怎么做的

SSD不是瓶颈,我不使用SSD,就把不归linux管理的512M内存拷贝到linux中,速度最快也只有130Mbyte每秒,如把FPGA端的数据拷到linux中就更慢了
此帖出自Altera SoC论坛
 
 
 

回复

965

帖子

0

TA的资源

纯净的硅(高级)

5
 
791709249 发表于 2016-10-31 16:54
你还是抛开Linux 裸奔吧

裸奔  我们还要做一个QT界面,数据在SSD中以文件的格式保存,数据还要用数据库检索和读取,还要拷到PC上做分析,应该还是要Linux的
此帖出自Altera SoC论坛
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

6
 
石玉 发表于 2016-10-31 17:48
裸奔  我们还要做一个QT界面,数据在SSD中以文件的格式保存,数据还要用数据库检索和读取,还要 ...

请问你是如何操作hps的外设的
此帖出自Altera SoC论坛
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

7
 
石玉 发表于 2016-10-31 17:48
裸奔  我们还要做一个QT界面,数据在SSD中以文件的格式保存,数据还要用数据库检索和读取,还要 ...

请问你是如何操作hps的外设的
此帖出自Altera SoC论坛
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

8
 
石玉 发表于 2016-10-31 17:48
裸奔  我们还要做一个QT界面,数据在SSD中以文件的格式保存,数据还要用数据库检索和读取,还要 ...

请问你是如何操作hps的外设的
此帖出自Altera SoC论坛

点评

地址映射后直接操作寄存器  详情 回复 发表于 2016-11-6 12:51
 
 
 

回复

169

帖子

1

TA的资源

一粒金砂(高级)

9
 
采用DMA传输,不要用mmap
此帖出自Altera SoC论坛

点评

有问题想请教一下。多谢。 fpga将75M的数据直接写到hps内存。fpga写hps内存有什么比较好的例程么? hps内存中通过网络发送,但是现在tcp速度只有41MB/s,请问有什么提高速度的方法?  详情 回复 发表于 2017-4-11 18:54
我现在动行linux系统,使用memcpy拷贝内存,不是使用DMA传输的吗?  详情 回复 发表于 2016-11-6 12:53
 
 
 

回复

965

帖子

0

TA的资源

纯净的硅(高级)

10
 
13588030054 发表于 2016-11-5 20:27
请问你是如何操作hps的外设的

地址映射后直接操作寄存器
此帖出自Altera SoC论坛
 
 
 

回复

965

帖子

0

TA的资源

纯净的硅(高级)

11
 
yupc123 发表于 2016-11-6 09:01
采用DMA传输,不要用mmap

我现在动行linux系统,使用memcpy拷贝内存,不是使用DMA传输的吗?
此帖出自Altera SoC论坛

点评

你用FPGAtoHPS的桥试一下,先把数据缓存在FPGA侧的DDR,再通过FPGAtoHP的桥(DMA传输)把数据传给HPS,  详情 回复 发表于 2016-11-7 08:46
这个我不清楚,但是你的速度没上来,我想是你没有用DMA,它使用的是突发传输,带宽利用率很高的,可达99%  详情 回复 发表于 2016-11-7 08:42
 
 
 

回复

169

帖子

1

TA的资源

一粒金砂(高级)

12
 
石玉 发表于 2016-11-6 12:53
我现在动行linux系统,使用memcpy拷贝内存,不是使用DMA传输的吗?

这个我不清楚,但是你的速度没上来,我想是你没有用DMA,它使用的是突发传输,带宽利用率很高的,可达99%
此帖出自Altera SoC论坛
 
 
 

回复

169

帖子

1

TA的资源

一粒金砂(高级)

13
 
石玉 发表于 2016-11-6 12:53
我现在动行linux系统,使用memcpy拷贝内存,不是使用DMA传输的吗?

你用FPGAtoHPS的桥试一下,先把数据缓存在FPGA侧的DDR,再通过FPGAtoHP的桥(DMA传输)把数据传给HPS,
此帖出自Altera SoC论坛

点评

你说的应该是HPStoFPGA桥吧,这个方法试过了,速度很慢,把FPGA端的DDR中的数据拷到linux中才50Mbyte每秒  详情 回复 发表于 2016-11-7 15:58
 
 
 

回复

965

帖子

0

TA的资源

纯净的硅(高级)

14
 
yupc123 发表于 2016-11-7 08:46
你用FPGAtoHPS的桥试一下,先把数据缓存在FPGA侧的DDR,再通过FPGAtoHP的桥(DMA传输)把数据传给HPS,

你说的应该是HPStoFPGA桥吧,这个方法试过了,速度很慢,把FPGA端的DDR中的数据拷到linux中才50Mbyte每秒
此帖出自Altera SoC论坛

点评

我说的是FPGAtoHPS  详情 回复 发表于 2016-11-7 20:53
 
 
 

回复

169

帖子

1

TA的资源

一粒金砂(高级)

15
 
石玉 发表于 2016-11-7 15:58
你说的应该是HPStoFPGA桥吧,这个方法试过了,速度很慢,把FPGA端的DDR中的数据拷到linux中才50Mbyte每秒

我说的是FPGAtoHPS
此帖出自Altera SoC论坛
 
 
 

回复

46

帖子

0

TA的资源

一粒金砂(中级)

16
 
请问楼主linux端的mmap映射长度是多少,为什么我在2个hps间网络传输一段物理地址内容时每次只能映射24Kbyte 的长度?我是新手
谢谢
此帖出自Altera SoC论坛

点评

映射了512MByte  详情 回复 发表于 2017-3-8 09:34
 
 
 

回复

965

帖子

0

TA的资源

纯净的硅(高级)

17
 
vlah 发表于 2017-3-8 09:31
请问楼主linux端的mmap映射长度是多少,为什么我在2个hps间网络传输一段物理地址内容时每次只能映射24Kbyte ...

映射了512MByte
此帖出自Altera SoC论坛
 
 
 

回复

46

帖子

0

TA的资源

一粒金砂(中级)

18
 
请问如何改大映射mmap长度需要在linux系统中设置?我发现我的mmap函数只要超过25K就会导致系统崩溃。
网上没查到相关的说明,希望您能告诉我一下。
还有请问您项目中最后是采用第二种传输方式么?谢谢

此帖出自Altera SoC论坛
 
 
 

回复

46

帖子

0

TA的资源

一粒金砂(中级)

19
 
现在我只能每次映射了24Kbyte 循环收发。感觉这样肯定影响速度
此帖出自Altera SoC论坛

点评

MMAP映射的是物理地址,你是不是先用MMAP映射了一段物理地址,然后向这段物理地址写数据,然后socket再读这段物理地址的数据发送出去?  详情 回复 发表于 2017-3-8 09:50
 
 
 

回复

965

帖子

0

TA的资源

纯净的硅(高级)

20
 
vlah 发表于 2017-3-8 09:41
现在我只能每次映射了24Kbyte 循环收发。感觉这样肯定影响速度

MMAP映射的是物理地址,你是不是先用MMAP映射了一段物理地址,然后向这段物理地址写数据,然后socket再读这段物理地址的数据发送出去?
此帖出自Altera SoC论坛

点评

是的,我在引导参数中将linux的内存改为768M,希望映射的范围在768M。希望用第一个Cyclone v 的fpga通过桥将数据写到hps内存768M到900M左右的物理地址,然后hps将通过映射物理地址将这些数据通过tcp发送。现在我只是  详情 回复 发表于 2017-3-8 09:58
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表