功率电感生产厂家
联系我们
热门搜索
点击排行
推荐阅读
猜猜你喜欢的
研发资讯 您所在的位置: 首页 > 研发资讯

FPGA 解决方案和标准控制器内核比较

来源:    作者:    发布时间:2015-07-27 10:25:43    浏览量:

 案例2:高速浮点性能

  现在我们给出另一个 MicroBlaze算法加速示例。一个客户声称他的浮点处理在MicroBlaze系统上运行非常慢。他使用的算法可采用简单的环路同时得出几个结果。

for (i=0;i<512;i++) {
f_sum += farr[i];
   f_sum_prod += farr[i] * farr[i];
f_sum_tprod += farr[i] *
f电感生产厂家arr[i] * farr[i];
  f_sqrt + =
sqrt(farr[i]);
  if (min_f > farr[i]) { min_f =
farr绕行电感器[i]; }
  if (max_f < farr[i]) { max_f =
farr[i]; }
}

  所有数值均是单精度浮点值。我们首先想到的是最基础的一个问题:浮点单元 (FPU) 激活了吗?检查项目设置后,我们发现FPU仍然处于未启用状态。这就是为什么永远无法计算出这几个数的原因。FPU可在 MicroBlaze属性设置中加以激活。

  FPU支持共有两种。我们也选择扩展FPU (Extended FPU)来支持求平方根运算。现在,在50MHz 的MicroBlaze上需要 1,108,685个周期才能完成 512个值的全部循环。查看生成的汇编程序代码后,可以了解到创建平方根是仍然在使用数学库(Math-lib)功能。其在数学功能中的定义为:

  double sqrt(double);

  不过客户使用平方根函数工字电感仅为处理浮点数值。因此,MicroBlaze FPU定义了一个新的函数来取代原来的函数,解决这个问题:

  float sqrtf(float);

差模电感器  把表达式f_sqrt += sqrt(farr[i])变为f_sqrt += sqrtf(farr[i]),就会调用MicroBlaze内部的FPU内部平方根功能。现在执行代码只需要35,336个周期。特别是与第一个根本没有使用FPU的方案相比,我们再次通过小小的调整就实现了31倍的提升。在相同的执行时间内,可能需要大约1.5GHz的CPU才能给出上述这些结果。

 不过客户仍不满意,客户要求更高的速度。在这种情况下,把算法从浮点运算变为固点运算并不适合。因此,我们开发了一款新型专用硬件加速器(新型FSL IP)来加快对循环的处理。

  新的FSL IP使用CORE Generator模块浮点_v4_0来为4x ADD、2x MUL、1x GREATER、1x LESS和1x SQRT等操作创建9个示例。所有这些示例都可以实体化,并对相同的输入数据进行完全并行处理(图2)。

  FSL IP中实例的创建带有部分时延,但吞吐率仅为1。这要求为加速器内部的控制器硬件准备更多的芯片,不过这样可以在每个时钟周期内向协处理器提供新数据。

  在取回结果前,只有在处理循环末端才需要增加周期。

  我们采用直连方式把MicroBlaze连接到FSP IP时不需要FIFO。传输的所有数据都将缓存在IP内,并随即加以处理。

  从FSL IP返回到MicroBlaze的连接是使用FSL总线创建的。由于我们必须发回一些结果,因而这更加容易实现,而且可以更加简单地在IP内完成。部分CoreGen模块有一些已被添加到执行时间中的时延,并被getfsl()调用完全覆盖。MicroBlaze只需要等到所有结果都存贴片电感入FSL总线FIFO。不过,只要数据率是1,即可完全实现所要求的吞吐率。

  FSL总线的额外延迟仅会占用为数不多的一些周期。使用FSL硬件加速器的C代码如下:for (i=0;i<512;i++) {
putfsl(farr[i],fsl0_id);
}
// get the min,max values:
getfsl(min_f,fsl0_id);
getfsl(max_f,fsl0_id);
// get the sum and products:
getfsl(f_sum,fsl0_id);
getfsl(f_sum_prod,fsl0_id);
getfsl(f_sum_tprod,fsl0_id);
getfsl(f_sqrt,fsl0_id);

  算法的最终实施仅需大约4,630个周期,而且依然是全浮点实施。

  硬件需要本来应该用于实施硬件加速器的更多芯片才能并行计算出所有结果。不过与扩展FPU实施方案相比,我们最终提升了大约7.6倍。否则,如果使用标准处理器来替换这个50MHz的处理器,可能需要大约380MHz的CPU才能胜任(假设硬件自带有浮点平方根函数)。

  • 概述TD-SCDMA网络优化的流程及主要内容 TD-SCDMA作为我国通信业百年史上第一个拥有自主知识产权的3G国际标准,是我国自主创新的重要里程碑。我国从2006年开始推进TD-SCDMA的无线实验网络建设到中国移动TD网络四期建设的完工,T

  • 最新内置PSR芯片,分内置MOS和BJT的可做六级能效 这几款芯片是刚出来的,价格优势很明显现在有一款客户已经量产了,反馈还不错,想要资料的可以直接找我要来看看。现在主要是做5V2A,5V1A,还有12V1A的案子。
    sofa

  • 基于MB90092型的视频监控系统的设计与实现 随着监控现场的扩展和探头数量增多,在监控端的图像显示系统中,经常需要接收外部数据并把相关的信息实时地连同图像显示在监控屏幕上,以便使用人员知道该图像信息以何种方式来自何处及与之相关的信息,时间,

  •