您的位置 首页 ADAS

FPGA或将替代CPU而成为机器人开发的新宠

FPGA或将取代CPU而成为机器人开发的新宠-FPGA这个词可能很多人都有所耳闻,尤其是理工科的同学们大多数应该都自愿或被迫被这个词刷屏过。但要真追究起来FPGA到底是个什么东西。

FPGA这个词或许许多人都有所耳闻,尤其是理工科的同学们大多数应该都自愿或被逼被这个词刷屏过。但要真追查起来FPGA到底是个什么东西。许多非相关专业的人都会堕入一脸苍茫。不过说起开发板,或许知道的人就许多了,有些人会以为FPGA便是开发板。

但实践上FPGA指的仅仅开发板上面的那一小块芯片罢了(下图黄圈处),整个开发板的其他部件都是为了协同它作业,让它发挥出它的功能而存在的。

FPGA或将代替CPU而成为机器人开发的新宠

可即便有心的同学从前查到了这儿,或许也搞不懂它和CPU到底有什么区别,毕竟把它的方位换成CPU,整个开发板看起来就变成一块一般的电脑主板了嘛,感觉简直分分钟接上硬盘和显示器就能够开端LOL了。的确,不论从外形上来看仍是实践的功能上来看,FPGA和CPU都体现得太像了,但在这两者相似的表面之下,其内部结构其实有着根本性的不同,由于它的结构决议了它在处理机器人需求的许多运算,尤其是在机器感知这方面的处理时的速度会比CPU快许多,一起还能将功耗操控在很低的水平。

在讲FPGA之前,咱们先从咱们比较了解的CPU的数据处理方法讲起。首要需求着重的一点是,处理咱们指令的核算机元件自身是无法了解咱们的指令的,它们只能了解作为组成CPU最基本的元件——晶体管能完结的两种状况:“开”和“关”的意义,对应的便是1和0这两个机器码数字,这也是核算机的整个系统都依据二进制树立的原因。而为了让咱们下达的林林总总的指令变成CPU能了解的0和1,CPU需求一个专门的译码器来翻译咱们的指令。

其间的Control部分便是操控取指、译码等整个流程的部分,Cache是在高速的CPU与相对低速的内存间为了进步从内存取得指令的功率而设置的一个暂时指令存储器DRAM则是速度比较慢的那一部分指令存储器。能够看到,真实的核算单元ALU只占了CPU结构中不大的一部分。这样的规划是有原因的。CPU存在的意图是作为通用核算机的处理中心,留意“通用”二字,这意味着块中心有必要具有处理林林总总千奇百怪的指令要求的才能,而且由于要处理来自多个设备的恳求,它有必要具有随时间断现在的运算转而进行其他运算,完结后再从中断点持续当时运算的才能。

把这些话看完你或许都快睡着了,但在CPU内这些都要求在一会儿完结。所以CPU需求有非常杂乱的逻辑操控单元和这套共同的指令翻译结构。这都是确保CPU能顺利完结它的使命的有必要的东西。能够说,在核算功率和通用性上CPU献身前者挑选了后者。

而FPGA最早是从专用集成电路开展而来的半定制化的可编程电路。从诞生的那一天起它的身世就决议了它不像CPU那样能够灵敏的处理各种没有见过的指令,而只能依据一个固定的形式来处理输入的数据然后输出,FPGA的结构是这样的

FPGA或将代替CPU而成为机器人开发的新宠

很简略,绝大部分都是核算单元(上图中黄色部分其实就相当于CPU结构图中绿色的部分),但没有操控单元并不代表FPGA就不会履行指令了,事实上FPGA里操控单元的人物便是由图中的每个操控单元和单元之间可编程的逻辑衔接线来完结的,经过FPGA编程,开发者能够更改FPGA的每个单元的运算逻辑和单元之间的衔接方法,然后使其到达和一般的运转程序差不多的效果。它与CPU的不同,在于它无法应对没有被编程过的指令。

编程方法一旦确认,FPGA就只能依据被编程的处理逻辑和方法来处理特定的数据输入。但这样的架构换来的是FPGA内部简直满是核算单元,因而FPGA的实践运算才能会比看起来强得多,尤其是在运转简略但重复性高的使命的时分,由于简略,因而很少的几个逻辑单元,乃至一个就能独立输出这个运算的成果。而由于省去了CPU的取指和译码两个进程,FPGA重复运转相同代码的功率得到了极大的进步。

有一个比方打得很恰当,CPU就像大学里一位德高望重的老教授,积分微分啥都会算,但毕竟它只需一个人,当核算使命太重的时分也会被累趴下,而FPGA这样的结构,就像是整个小学里一切小学生组成的行列,每个人都只会算简略的加减乘除,但有些量大但不杂乱的运算使命交给他们便是会比较快。

详细体现在功能上,很明显的一点便是一般的CPU只能一起处理4到8个指令,而不算太差的只需FPGA优化妥当,能够一起处理256个乃至更多的指令。其实GPU的规划思路同FPGA相似,都是为了处理许多简略重复的运算而呈现的设备。但GPU的功能强悍的一起耗能也很高,而FPGA由于编程和优化都是直接在硬件层面进行的,能耗会低许多。

不难发现,整个进程重复性极高,而且其间并没有过于杂乱的运算。因而运用FPGA进行该算法的核算会比运用CPU快许多。事实上,文章中表明依据加州大学洛杉矶分校的一项相关的试验成果,FPGA在运转SIFT指令时的履行功率是CPU的足足30倍。 处理速度快这么多,耗能又如此小。也难怪有些人会以为FPGA具有代替CPU和GPU的才能了。

人类规划机器人的终究意图是期望它们能变得像咱们相同,用跟咱们相似的方法考虑,具有独立判别局势、处理使命的才能。咱们现在还不是很了解大脑作业的详细原理,但不管从经历仍是直觉来看,相似人类的思想都不是由很多逻辑简略的堆积起来的。由于思想这件事物的杂乱程度现已远远超出了运算的领域。

比如说,假如你想核算213 x 312而你想将它简化,你只需求很简略的将它分解成213个312相加,乃至是重复213次312个1相加。但假如你想算2的64次方呢?假如你想算sin(27°)呢?乃至假如你想算log230呢?假如你一定要将其分拆成简略的运算,你就会发现你需求的资源会以不可思议的速度增加,直到就连把全市的小学生都叫来也做不完的程度。

不能否定FPGA的确能在机器人开发中发挥很大的效果。但归纳来看,它和CPU,乃至GPU更像是一种各司其职的位置,动不动就谈代替,或许有失谨慎。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/340256.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部