打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
FPGA、CPU、ASIC、SoC、TPU等等,一文说明它们到底什么区别


世界变化太快,本来生活中就只有CPU,后来又闯入了MCU、FPGA、GPU、DSP、ASIC,已经难以分辨了。现在又多了SoC、SiP、TPU、XPU,让我们读书看报越发艰难啦。


它们共同特点是都属于IC(Integrate Circuit,集成电路),并且具有运算功能。这篇文章就是要区分开它们。


FPGA就如一块生铁,其它都是工具

生铁买回家没法直接使用,但它能做成各种工具。



FPGA (Field Programmable Gate Array,现场可编程门阵列),把它装在电路板上也没法直接使用。FPGA工程师的任务就是通过改变物理上的连接关系,实现各种逻辑和运算功能。


就像一块生铁能打造出很多工具,FPGA最强大的地方在于,可以灵活实现各种结构,对事件进行即时响应。比如对于大量的运算:


  • 把累加操作变成流水线操作,一个时钟周期就完成一次很多数的累加。类似接力搬砖,只要人足够多,可以迅速把砖头移动到很远的地方。

  • 可以模拟出100块CPU计算单元,大幅提升并行计算速度。类似于有很多个人在不同的位置同时搬砖,只要人数够多,砖头一会儿就搬完了。


为了应对人工智能深度学习对运算的需求,百度和赛灵思合作,基于FPGA推出XPU(X Processing Unit),X应该就是想表明很厉害、万能的意思吧。


FPGA的缺点也明显:


  • 不可能对每个门电路进行优化,用户连接只在一定颗粒度上是可行的。比起专用芯片来,速度慢、功耗大。

  • 受工艺限制,比起专用芯片来,量产成本高很多。

  • FPGA的开发比起软件编程来,麻烦很多。需要考虑一些硬件设计的问题,比如信号时间上对齐、资源的评估、节能等。


FPGA名字当然有其演化的历史,但实践上看,名字起得并非完美。


由于名字中有“可编程”的字眼,导致很多人认为FPGA工程师是软件设计人员。而软件工程师只是忿忿的说,“FPGA能实现递归函数吗?不行吧。你这也叫编程?”他们绝对不会认为FPGA工程师是自己的一员。


如果从避免混淆的角度来看,我觉得叫FCGA (Field Connectable Gate Array,现场可连接门阵列)更清晰。 “连接”表明从硬件上改变了它,这样FCGA工程师就清晰无误地属于硬件设计工程师了。如果对应到其它硬件电路设计流程,他们同时负责设计、仿真、原理图、PCB布线、和测试工作。


CPU是通用工具,其它都是专用的

通用工具有很多种。当一个人说工具时,我们很难具体指明他在说什么。


CPU(Central Processing Unit,中央处理器),它在电路板上的地位是配置和控制其它所有设备,当然也包括FPGA。从功能上看,它是最要的器件。当电源正常工作后,第一件事情就是启动CPU系统,之后CPU检查其它硬件的状态,并依次配置和启动它们,最终让系统进入工作状态。我所认知的CPU都是支持软件编程的,这保持了通用性。


从控制其它设备和可以编程的角度来看,MCU、DSP、SoC、甚至ASIC都可以划分到CPU的范畴。


  • 因特尔、AMD等大厂的CPU广泛应用于PC上,它们构成CPU最经典的概念。


  • MCU(Micro Controller Unit,微控制器),通常称为单片机。常说的ARM,就是单片机的一种。跟PC上的CPU相比:


    • 内部集成了很多设备,比如存储器、数模、模数转换器、时钟单元、各种通信接口等。MCU只需加上很少的外部器件,就能做出很实用、高可靠性的产品,比如Pad、白色电器、汽车控制系统等等,生活中无处不在。

    • 通常MCU处理速度比CPU低,毕竟大部分的应用场景对运算的要求并不高。

    • 功耗比CPU低很多,对于需要电池的设备有很大的吸引力。

    • 种类繁多,便宜的几块钱就能买到,也能满足很多简单控制的需求。


  • DSP(Digtial Signal Processor,数字信号处理器),可以看成MCU的一种,它强调对运算的优化,适用于视频、音频大数据流的处理。


ASIC是专用工具,精益求精

干特定的活,用专门的工具,无比顺手啊。



ASIC(Application Specific Integrated Circuit,专用集成电路),为了应对某一特定领域大量的需求,优化到每一个门电路,在性能上做到极致。牺牲了通用性,主要功能无法更改,好处是批量生产成本低、速度快(比FPGA更迅速)、能耗低。


  • GPU(Graphic Processing Unit,图形处理器),分担CPU对显示部分主要的工作量。顺序运算能力远不如CPU,但可以比较灵活的配置多进程,并行计算能力比CPU有数十倍的提升。也因此,现在常被借用来进行加速计算,跟图形已经没有关系了。编程通常是通过CUDA(Compute Unified Device Architecture)平台来实现的。由于人工智能深度学习的兴起,对计算能力要求飞速提升,GPU的行业老大英伟达的股价也一柱冲天。


  • 麒麟芯片,华为用在手机里,硬件实现了对各种通信协议的处理。手机出货量大,能大幅摊薄前期ASIC的开发成本,而且手机对功耗要求很高,尤其适合采用ASIC。


    麒麟960


  • TPU(Tensor Processing Unit,张量处理器),谷歌为了深度学习开发的芯片,架构不详。从名字来看,应该是对矩阵的运算做了优化,适配自己的深度学习软件框架TensorFlow。谷歌购买了世界5%的服务器处理器,这个量完全足够支持它开发一套专用的芯片。目前,谷歌还没有计划向外销售TPU。


由于深度学习的算法目前还处于迅速演进过程中,对深度学习ASIC的高度定制,比如针对某种神经网络的定制,是件高风险的事情。也许上午花了上千万定制的ASIC刚刚问世,下午就出现一种效率提高10倍的算法,那这块ASIC也就几乎没有什么价值了。


FPGA、CPU和ASIC比较

下图表明了它们的位置关系。



它们之间的对话是这样的:



SoC 和 SiP 是工具包

工具包的意思就是里面啥都可以有。



FPGA、CPU和ASIC各有优缺点,现在它们已经有融合的趋势了。


  • 因特尔,传统的CPU厂商收购了Altera(FPGA的主力厂商),CPU融合FPGA的心不言自明。


  • 而FPGA的老大赛灵思也早就开始在它的FPGA里面集成了CPU,构成Zynq系列的FPGA产品。


  • 华为专用麒麟芯片更是集成了CPU和GPU。


不仅如此,很多芯片也像单片机那样,集成数模、模数转换、存储器、各种通信协议。这些集成了的东西,你中有我,我中有你,难以再区分它们。SoC (System on Chip,片上系统),可以笼统的指代它们。单片机就是很典型的SoC。


而把很多器件融合到一颗芯片里面难度比较大。直接把它们拼接到一起,然后再加个壳,外观上构成一个器件,就是SiP(System in Package,封装系统),技术难度比较低,模块化较好,紧凑度差些,算是SoC的初级形式吧。


总结

FPGA像块生铁,自己怎么锻造就怎么用,CPU适应性强,怎么编程就怎么用,ASIC让你怎么用你就怎么用。SoC和SiP是多种芯片的融合体。各种芯片比较一遍,验证了一个朴素的道理,世上没有免费的午餐。性能(速度和功耗)、灵活性、价格三者,最多只能占两样。



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
聚焦芯片:GPU,CPU,SOC,DSP,FPGA,MCU,MPU,GPP,ECU等都是什么?
超异构计算:大算力芯片的未来
关于SOC、SOPC、NIOS、FPGA
AI群“芯”逐鹿,英伟达、谷歌、寒武纪等25家公司实力拆解
一文读懂AI芯片,GPU、CPU、FPGA、DSP应有尽有
Google的这款AI芯片TPU凭什么自称“超级”?与传统CPU有何差异?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服