采用硬件加速发挥MicroBlaze处理能力

MicroBlaze处理器是赛灵思(Xilinx)在嵌入式开发套件 (EDK) 中提供的两款32位内核之一,是实现硬件加速的灵活工具。图1是MicroBlaze的典型设计。该内核含有一个32位乘法器,但不含浮点单元(FPU)、桶式移位器或专用硬件加速器。对Xilinx公司Spartan FPGA 器件而言,默认系统含有区域优化的MicroBlaze(采用三级流水线),但大多数客户通常在开始时使用速度优化版(采用五级流水线)进行性能评估,其优点是小巧简洁,易于扩展。

Xilinx客户针对这种处理器设计所要求的两个实际应用案例可说明MicroBlaze在硬件加速方面的作用。本文以 Spartan 器件为重点,比较 FPGA 解决方案和标准控制器内核,展现我们能够达到的性价比。这一方法同样适用于Virtex FPGA。

案例1:实施位反转算法

在第一个应用示例中,假定MicroBlaze处理器的运行速度仅为50MHz。采用 Spartan-3或Spartan-6器件可轻松实现这一速度。诸如本地存储器总线(指令和数据,LMB)以及处理器本机总线(PLB)等所有内部总线的运行速度均达到50MHz。为简单起见,假定没有连接外部DDR存储器。

现在假设客户想要在这个CPU上实施位反转算法。MicroBlaze自身没有通过硬件直接提供这个功能。再假定每秒需要完成2万次位反转操作。

要解决这个问题,大多数客户首先会采用纯软件方案,因为这样可轻松地实现想要的功能。而且如果性能足够高,无需进行任何修改。

为此,让我们先从简单的软件算法出发,实施简短精悍的解决方案。结果确实简单、精巧而且容易理解,不过效率很低。
unsigned int v=value;
unsigned int r = v;
int s = sizeof(v) * CHAR_BIT - 1;
for (v >>= 1; v; v >>= 1)
{
r <<= 1;
r |= v & 1;
s--;
}
r <<= s;
return r;

这段程序运行相当顺利,不过就算在专门针对速度优化的MicroBlaze(使用五级流水线)上运行处理一个32 位字的算法,也用了220个周期。要执行2万次位反转操作,在速度为50MHz的MicroBlaze上约需88ms。

客户试图采用略有不同的方法来优化算法,但仍作为纯软件解决方案来实施。

要进一步提升性能,就要采用纯硬件解决方案,通过一种新的方式来让硬件加速器充分发挥性能。

为了加速这种基础操作,只需要在MicroBlaze快速单工链路(FSL)上连接一个非常简单的内核。标准FSL实施方案使用FSL总线(包括同步或异步FIFO)将数据从 MicroBlaze内核传输到FSL 硬件加速器IP核。带FIFO 的FSL总线与FIFO可对上述两者间的数据存取进行去耦。

如果采用带FIFO的标准FSL总线,则一般情况下执行时间为4个周期:一个周期用来将MicroBlaze上的数据通过FSL写入FIFO;一个周期用来将数据从FIFO 传输到FSL IP;一个周期用来把结果从FSL IP传送回 FSL总线的FIFO中;最后一个周期则负责从FSL总线读出结果并传输至 MicroBlaze。

MicroBlaze到FSL总线的连接以及FSL总线到FSL IP的连接可在EDK的图形视图中轻松创建。

这样代码要长得多,效率也有大幅度提升,但时间还是太长了,执行2万次操作现在仍然大概需要52ms。

随后客户在互联网上进行了一些调查,找到一种更好的算法,把代码改编为:

unsigned x = value;
   unsigned r;
   x = (((x & 0xaaaaaaaa) >> 1) | ((x
& 0x55555555) << 1));
   x = (((x & 0xcccccccc) >> 2) | ((x
& 0x33333333) << 2));
 x = (((x & 0xf0f0f0f0) >> 4) | ((x
& 0x0f0f0f0f) << 4));
 x = (((x & 0xff00ff00) >> 8) | ((x
& 0x00ff00ff) << 8));
 r = ((x >> 16) | (x << 16));
 return r;

 

   来源:电子产品世界
微信扫描分享本文到朋友圈
扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 2、回复“ZGDX”免费领取《中国电信5GNTN技术白皮书
  • 3、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 4、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 5、回复“5GX3”免费领取《R1623501-g605G的系统架构1
  • 7、回复“6G31”免费领取《基于云网融合的6G关键技术白皮书
  • 8、回复“IM6G”免费领取《6G典型场景和关键能力白皮书
  • 本周热点本月热点

     

      最热通信招聘

      最新招聘信息

    最新技术文章

    最新论坛贴子