微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > FPGA软核之战点燃创新激情

FPGA软核之战点燃创新激情

时间:09-25 来源:互联网 点击:
新指令提升性能

Xilinx在MicroBlaze v7中添加了11种新的指令:3种用于浮点运算,其余8种则用于FSL的操作。这些新的浮点指令是简明易用的。其中的一个指令FSQRT,可在27或者29个时钟周期计算出一个32bit浮点值的平方根,具体的时间占用取决于MicroBlaze处理器配置了3级或者5级流水线。如果不采用FSQRT,则同样的运算应通过对软件库的函数调用来实现,耗时约为500个周期。

其他两种新的浮点指令可以把整数转换为浮点数或者执行相反的运算。FLT指令可以在4~6个时钟周期中把一个32bit的整数转换为32bit的浮点数,具体则取决于流水线的深度。要在软件中调用相同的函数将需要330个时钟周期。相反地,FINT指令则可以在5或者7个时钟周期中将一个32bit的浮点数变换为32bit整数,具体的时间长度取决于流水线深度。而软件调用将耗用88个周期的时间。

当协处理器通过FSL连接到MicroBlaze内核上时,另有8种新的指令可以改善I/O特性。这些指令采取了PUT和GET操作的形式,它们可以让程序以闭锁(blocking)或者非闭锁运算的形式管理协处理器的I/O。在分块关系中,CPU停止处理其他的操作,直到将协处理器的请求处理完为止。在非闭锁关系中,CPU继续处理其他操作,而协处理器的请求被送入一个FIFO缓冲器中。在缓冲器未被充满前,CPU不会被闭锁。开发者可以根据协处理器的需要来定义缓冲器的尺寸。

此外,MicroBlaze v7的FSL接口的数量是从前的两倍(16比8),而程序在运行过程中可以动态地将协处理器分配给各FSL接口。先前,协处理器在FSL间的分配是通过硬代码形式嵌入用户的软件中的。进行任何改动进行任何改动时,开发者都必须对软件进行重新编译。动态分配使得开发者编写出的软件能适应不断变化的条件和工作负载。多媒体加速库可以在专门完成快速傅里叶变换(FFT)或者有限脉冲响应(FIR)滤波器运算的协处理器上运行。

表2示出了将一个包处理器设计从MicroBlaze v6移植到v7后的结果—吞吐率改善了3倍以上,从约70Mb/s提升到250Mb/s 。不过,要注意这一对比并未将设计中的每个变量的变化所带来的影响隔离开。特别是,升级的设计版本中Ethernet控制器的速度要快得多。无论如何,这一对比展示了可以实现的性能水平。提升一个系统的最大理论带宽,并不一定能确保获得更高的吞吐率,而MicroBlaze v7的一个功能特色是为TEMAC提供更好的CoreConnect支持,而该功能是以硬连线方式融入Virtex-5 LXT芯片中。

表2 MicroBlaze v6和v7的性能对比



竞争对手ARM

从2006年起MicroBlaze v7是Xilinx今年推出的处理器的第三个新版本。改进步伐的加快可能是由于一个全新的竞争者的到来:ARM的Cortex-M1。

Cortex-M1是第一种批准用于在FPGA中的ARM处理器内核,而且它针对FPGA的可编程逻辑架构进行了优化。较早时,ARM允许获得授权者在FPGA上对其设计进行测试,但不能在芯片中采用最终的设计。推动ARM对其经营路线进行变革的部分原因是ASIC的设计和制造成本的不断上升,而另一部分原因是Xilinx MicroBlaze和Altera Nios II内核的流行。Xilinx和Altera在其处理器方面已经售出了几万个使用许可。

第一家宣布支持Cortex-M1的厂商是规模远远小于Altera或者Xilinx的Actel。Actel与ARM达成了特别的协议,让客户在采购Cortex-M1 FPGA时,无需再购买一个ARM许可证或者向ARM交付使用费。这一交易大大地降低了应用一个基于ARM的设计成本。Xilinx尚未发布一个类似的协议,但是笔者估计在未来很可能会宣布达成协议。虽然Cortex-M1和MicroBlaze处理器看上去将ARM和Xilinx变为两个相互竞争的对手,但它们的关系中的合作性仍然超过竞争性。ARM认为MicroBlaze主要是一种用于吸引客户的特价商品,Xilinx研制它主要是为了能卖出更多的FPGA。一个MicroBlaze v7的许可证售价仅为495美元,因此芯片,而不是许可证才是真正带来赢利的产品。Xilinx同样欣喜地看到客户购买其FPGA后与Cortex-M1一起使用。

即使是这样,虽然ARM和Xilinx的握手可谓真诚,但MicroBlaze v7还是给了Cortex-M1当头一击。与Xilinx用来吸引顾客的特价品一比高下,这一全新的ARM处理器可就吃了亏。虽然MicroBlaze v7定价低廉,但令人难堪的是,它却拥有大量Cortex-M1所不具备的功能,例如一个可任选的FPU、MMU/MPU、32bit 驱动器和指令/数据高速缓存。除此之外,MicroBlaze所能实现的时钟频率也要高于Cortex-M1的。ARM的最大一个卖点是Cortex-M1来自ARM。ARM架构本身几乎都已成为业界标准,而且它得到了数以吨计的各种外设IP、开发工具和软件的支持。

正如表3所示的那样,Altera的Nios II与MicroBlaze更为匹配,虽然它从2004年后没有得到较大幅度的升级。MMU/MPU选项是MicroBlaze v7超越Nios II的第一个巨大优势巨大优势。不过,Altera也拥有一项优势:可以由用户配置的指令集架构。Nios II开发者可以开发定制化的指令集来加速特定的应用,这将极大地提升性能。为了达到类似的效果,MicroBlaze开发者可以在可编程逻辑架构中实现协处理器。

请注意这些处理器之间存在的价格差异正在缩小。在Cortex-M1出现以前,由FPGA厂商发放的处理器内核使用许可与由ARM发放的处理器内核使用许可相比,其价格差异达到了4个数量级:一个MicroBlaze或者Nios II约为500美元,而一个ARM核则要价高达几百万美元。在Cortex-M1推出后,ARM已经一改过去长期以来不透露其许可收费情况的做法。虽然一个Cortex-M1许可的确切价格仍未公布,但ARM宣称它将愿意做不到十万美元的生意,这在价格方面是一个巨大的突破。而且,正如上面曾经提到的那样,Actel可以出售预先被配置了Cortex-M1内核的FPGA,而用户无需获得一个来自于ARM的许可。由于Altera和Xilinx事实上在赠送各自可以直接用于FPGA上的处理器内核产品,ARM不得不修正自己的许可证模式,以便让Cortex-M1更具竞争力。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top