您的位置 >> 硬件平台

看FPGA计算机怎样颠覆未来
更新于2014-10-22 15:54:30 文章出处:与非网
分享到:

 如果说我们所用的“通用计算机”是以CPU为计算单元来处理部分或全部计算任务,并且应用程序员可以方便使用的计算机系统,那么“FPGA计算机”就可以认为是由FPGA(现场可编程门阵列)完成部分或全部计算/处理功能的、应用层程序员可用的计算机系统。那为什么计算机技术发展到目前这个阶段,我们一直使用的通用计算机难以满足很多新涌现的计算需求,而需要FPGA计算机这样的新型计算设备来满足?又如何才能使FPGA开发板变成FPGA计算机?
1、移动互联网、物联网、智能硬件的深入发展产生的‘大数据’及深度学习等对‘大数据’的实时分析不断对计算提出更高需求,而这些计算需求是通用计算机系统无法满足的
“移动互联网”、“物联网”时代,网络中需要处理的数据呈现爆炸式增长。迫于网络传输及系统实时响应的压力,众多的传感终端必须“智能化”,将数据就地处理,而不能将数据单纯地传到后端等待处理。即使这样,数据中心的计算压力也越来越大。传统的依靠频率提升来提高处理性能的方式面临巨大的能耗压力而无法继续。此外,在“物联网”环境中,外部事件的发生具有连续性、并发性、实时性等特点。而传统的串行方式的计算机系统的特点是顺序执行、平均性能最佳。因此,要更好地满足物联网应用的计算需求,计算机系统需要提供: 1)真正的硬件并行处理能力,对于外部并发的事件从硬件上提供真正的并行处理;2)提供硬件级别的时间可预测性;3)大数据的高速处理能力。为特定应用提供最适合的硬件结构,最大限度地采用硬件并行处理,在保持较低频率的情况下大幅提升计算性能。


2、与多核方式相比,基于FPGA的异构计算系统(FPGA计算机)具有可更好地满足特定计算的优势
多核方式是相同的多个CPU核同时工作来提高并行处理能力,是以软件的方式进行的任务级的并行。而FPGA计算机由于包含可重构器件FPGA,能够以软硬件协同的方式支持多种不同的并行方式,因此可以为特定算法/应用提供最适合的运行方式。打个比方:假如一件事情可以划分为若干可同时执行的不同的子任务。对于多核,就像具有相同技能的若干工人,即使承担的是不同的任务,也无法发挥每个核最大的潜力;而对于异构系统,就像具有不同特长的若干工人,通过恰当组合可以发挥各自的最大潜力,并使得整个任务以最高效的方式完成。


3、FPGA为什么具备了作为计算单元的条件
FPGA(现场可编程门阵列)可以看作一种‘空白’芯片,用户通过编程/逻辑设计可以使之形成‘特定’芯片,因此可以为特定算法/应用提供最佳的计算模式。目前,随着工艺的进步,FPGA资源更为丰富,可以实现更复杂的算法;同时,其性能、功耗、价格等指标也不断优化;更重要的是,随着高层综合技术、OpenCL等的发展,我们已可以用C语言进行FPGA上的算法设计,大大提高了算法设计的效率。因此使得FPGA可以更多地作为计算单元承担数据的处理任务。


4、目前的众多FPGA开发板为什么不是“FPGA计算机”
目前也有不少基于ARM+FPGA、DSP+FPGA或异构SoC(如Zynq、FPGA SoC)的异构平台,在这些平台之上,用户往往需要从FPGA电路板设计、接口/驱动设计、内存访问设计到算法逻辑设计和软件设计进行全流程负责,导致开发难度大、开发周期长、研发成本高。虽然高层综合技术使得我们可以用C开发FPGA应用,但其仍需要对硬件结构和系统的深入理解和把握,远不是仅熟悉算法的应用层开发人员可以胜任的,所以还无法称之为FPGA计算机。只有能屏蔽所有底层物理细节,使应用层的开发人员可以方便使用,才称得上是一台FPGA计算机。


5、如何使“FPGA开发板”升级为“FPGA计算机”
众所周知,基于通用CPU的计算系统之所以能被普遍使用,是因为采用了分层次的开发模式,不同层次的开发人员只需要关注本层次的问题,有效降低了用户的开发难度。比如,有专门的CPU提供商、整机制造商、操作系统提供商、编译器提供商以及大量的中间件(支持库)的开发商,从而使算法/应用的开发者只需要关注应用本身而无需投入更多精力在计算机系统本身的使用上。
因此,使“FPGA开发板”升级为“FPGA计算机”就需要填补FPGA系统中从裸片到应用之间存在的关键空白环节,解决现有基于FPGA的系统开发时存在的问题。包括:1)提供模块化、标准化的裸机设计,便于不同应用作为扩展模块使用;2)系统的接口驱动;3)对包括FPGA在内的硬件资源进行动态管理和配置,为用户屏蔽底层硬件细节;4)提供面向领域的并行算法支持库给用户直接调用,避免重复开发并降低开发难度;5)提供一套和具体芯片类型无关的可移植、可扩展系统架构,使得用户基于该架构的开发可更方便地移植到不同的FPGA计算机硬件平台而不需要繁琐的移植工作。
通过研发FPGA操作系统iOpenFOS,我们已经初步解决了上述问题,大大降低了FPGA系统的开发难度,使开发人员可在应用层进行开发,将所有精力投入在自己最核心的算法上。

 

关于OpenHW | OpenHW使用说明 | FAQ | 相关法律 | 版权声明 | 网站地图
联系邮件:aimei@eefocus.com  联系电话: 0512-80981663-8069    Fax:0512-80981279
Powered by eefocus.com