FPGA为什么难以处理复杂的数据包?
答案:3 悬赏:70 手机版
解决时间 2021-11-08 04:26
- 提问者网友:人傍凄凉立暮秋
- 2021-11-07 10:55
FPGA为什么难以处理复杂的数据包?
最佳答案
- 五星知识达人网友:我住北渡口
- 2021-11-07 11:19
1.首先“处理如IP分片重组,解压缩以及数据包纠序时性能很低很低”,我不这么认为的。
2.看看CPU运行,它要经历 取指令-取数据-执行指令 这么几个过程,同时这几个过程同样是利用硬件完成的,那么从本质上说,软件的执行同样是硬件电路运行的结果。
3.有些看法中认为CPU执行速度快,因此相比FPGA来说性能高。其实FPGA的优势在于其并行处理的能力和流水线操作方式,原理上应该比软件快很多。就好比利用了很多个CPU同时处理数据,而且省却了很多无用的操作,例如取数据等。
4.“处理如IP分片重组,解压缩以及数据包纠序时性能很低很低”的观点出现主要是因为FPGA进行数据处理的设计难度大于软件设计。就好比利用CPP编写解压缩和利用机器码设计解压缩,后者明显难很多,而且和设计者的水平关系很大。同时如何设计内存接口也很关键。
5.所谓流水线的概念你可以想象一下汽车生产线。生产线上有很多个工位,同时进行着相关的加工生产,原料由生产线一段进入,经过流水线一步一步完成相应的加工工序。流水线的好处在于数据吞吐量很大,缺点是数据加工的时间较长。就像汽车生产线,一分钟可以出厂一辆汽车,但是由原料到汽车的过程却远远大于1分钟。
2.看看CPU运行,它要经历 取指令-取数据-执行指令 这么几个过程,同时这几个过程同样是利用硬件完成的,那么从本质上说,软件的执行同样是硬件电路运行的结果。
3.有些看法中认为CPU执行速度快,因此相比FPGA来说性能高。其实FPGA的优势在于其并行处理的能力和流水线操作方式,原理上应该比软件快很多。就好比利用了很多个CPU同时处理数据,而且省却了很多无用的操作,例如取数据等。
4.“处理如IP分片重组,解压缩以及数据包纠序时性能很低很低”的观点出现主要是因为FPGA进行数据处理的设计难度大于软件设计。就好比利用CPP编写解压缩和利用机器码设计解压缩,后者明显难很多,而且和设计者的水平关系很大。同时如何设计内存接口也很关键。
5.所谓流水线的概念你可以想象一下汽车生产线。生产线上有很多个工位,同时进行着相关的加工生产,原料由生产线一段进入,经过流水线一步一步完成相应的加工工序。流水线的好处在于数据吞吐量很大,缺点是数据加工的时间较长。就像汽车生产线,一分钟可以出厂一辆汽车,但是由原料到汽车的过程却远远大于1分钟。
全部回答
- 1楼网友:第四晚心情
- 2021-11-07 13:54
这个 你要是用电路处理这个当然困难了 FPGA可是硬件啊 你说的那些应该使用软件来处理吧 是协议层和应用层的东西 FPGA一般做固件 在物理层追问但是FPGA做解封装之类的处理就很快啊,有什么区别呢,跟我补充里提到的“流水线”执行步骤有什么关系么追答FPGA主要是并行 处理器还是流水呢 数据包是有格式的 解析需要一步一步来 每一步可以设计成一个电路模块 流水作业吧 这是我的理解啊
- 2楼网友:爱难随人意
- 2021-11-07 12:34
FPGA只是一个开发工具。如果使用FPGA构造简单系统加挂软件的话,主要性能受限在内嵌的CPU上;如果是构造专门针对某一个复杂数据包的专用处理单元的话,性能还是很高的,不过一般来说,FPGA的主频都很低(不超过100MHz),所以实际性能也不会太高。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯