分享

深蓝研究|FPGA的前世今生(一)

 kaller_cui 2021-03-13
阅前提示
本文目的是以一个非正式的开端讨论及介绍FPGA,希望为了解相关领域的读者从另一个角度描绘这个经常接触的东西,也为没有接触过FPGA的读者提供一个初步了解的材料。
下面就让我们开始吧!


01
FPGA的定义及其早期商业化
FPGA(Field-Programmable Gate Array)即现场可编辑门阵列,指代一种可以'现场编辑’的逻辑门阵列,是集成电路(Integrated circuits)的一种,隶属于广义的PLD(Programmable Logic Device, 可编程逻辑器件),也可以说FPGA为PLD的子集,属于标准器件(通用芯片),该类别内最出名的是CPUGPU。与标准器件相对的是定制芯片,如ASIC(Application Specific Integrated Circuit, 专用集成电路)。一般来说,越偏向定制的芯片,开发、设计、制造等相关费用越高昂,也就需要更长的资金周转时间。FPGA的优势我们可以简要理解为:使用FPGA可部分达成ASIC功能,而不需要相对高昂的开发,设计,制造等相关费用。FPGA和ASIC的成本有以下关系:
图片
如图所示,只有当公司使用芯片数量达到了一定层级,才有可能摊平前期研制ASIC的高昂费用。据笔者了解,一般情况下要达到这一使用量级,投入的固定成本及边际成本可能高达几千万甚至上亿美金。20世纪70年代初,PLD是作为早期测试芯片亦或是ASIC的潜在替代品进入市场视野的,但是当时的PLD在诸多关键性指标,如运算性能、稳定性、功耗、价格等元素上均无法实现大面积商业化。具体对比以及FPGA的实现原理会在之后的文章讨论(包括FPGA与CPU,GPU,CPLD等的对比)。

FPGA的早期商业化运营是由Xilinx公司主导,该公司的Ross FreemanWilliam Carter在八十年代的早期专利布局中占据了有利地位。关于FPGA的两项专利俗称Freeman专利和Carter专利,直到二十一世纪初才权限期满。以此为契机,FPGA行业一时百花绽放,出现了众多公司,如SiliconBlue,Achronix,Tabula等。但是2010年以来,行业集中度越来越高,资源愈发向寡头聚拢,新兴企业相继退出市场。FPGA行业甚至整个半导体行业并购活跃,其关键战略目标为:数据中心

2015年英特尔Altera做价130亿美金的收购已经震动了市场,而恰恰在这篇文章发出的一个多月前,AMD也宣布做价350亿美金收购Xilinx,成为半导体行业有史以来最大的收购案例之一。时至今日,曾经FPGA市场的两大寡头玩家AlteraXilinx已被收购(或被计划收购),达成新一轮战略布局,未来的数据中心算力竞争在国际上基本形成了三权分立的格局:
图片
数据中心算力国际竞争格局
图片
1.Intel+Altera(已完成)
2.AMD+Xilinx(已宣布)
3.Nvida+Arm(已宣布)+Mellanox(已完成)
这一格局的形成与摩尔定律将面临的物理瓶颈逐渐显现有不少关系。当集成电路的基本组成单位晶体管的物理大小逼近'极限’,我们通常意义下所指的制程,如13nm, 7nm, 5nm与其二十年前的含义逐渐产生偏差,人们不再用它来描述晶体管的物理大小,而是作为一个习惯的延续来描述技术迭代

在可见的未来中,量子计算机的风口应该会到来,但是最乐观的估计其初步商用化也至少在两到三年,大面积覆盖及生态的形成起码以十年二十年计数。在下一代计算机算力格局形成突破之前,异构计算及相关架构领域将不可避免地成为诸方角力的发力点。PLD/FPGA及其周边市场在近十年急速发展,蕴藏着巨大的机会,其中微软于2014年正式进入实操阶段的Catapult计划是一个十分重要的节点,感兴趣的读者可去先行了解。


02
当前国内造芯热与牧村浪潮
当前国内的造“芯”活动热火朝天,从笔者的认知角度来说,因为芯片行业处于“起步”阶段,下游制造能力存在制约,诸多芯片厂商的发力点为ASIC方向'AI芯片’及相关架构,而战略性放弃通用芯片的研发,此不失为一条路径。在我国十四亿人口的人口红利下,不同公司的工程师们不断重复着相似的路径,ASIC早期的昂贵投入也因为人口红利的关系,能够在我国以一个相对低廉的成本实现针对目标产品的产业化

但是从国际大趋势来看,如果牧村浪潮(Makimoto’s Wave)继续显灵,那么我们即将进入的是一波高度标准化而非客制化的芯片浪潮当中,这也是当今上述三大芯片厂商势力布局的方向。简要来说,牧村浪潮指的是芯片的风口及研发力量不断在客制化以及标准化中摇摆,见下图:
图片
客制化周期中,国产芯片迈出了优秀的一步,百花绽放,大量手机等各式电子产品中集成了SoC,而国产手机也背靠此出海,攻城掠地获得了不少成就。如果说移动终端是这一个客制化周期的关键词,笔者认为,下一个大周期的关键词为数据中心。我国的技术格局在客制化方向是有优势的,因为背靠大量工程师。但在下一个大周期中,可能会面临不少挑战。

在不同的大周期中,并不是说一端会取代另一端,而是说行业发展以其中一端为重,且同一方向的周期延续性也较长。例如1987-1997年的ASICs实际上一直延续至今,是2007-2017年SoC/Sip发展中很重要的一部分。FPGA/PLD也是如此,其真正的大型产业化应用与浪潮本身是隔了一个周期的。笔者可以看到的国产芯片发展趋势不外乎看似废话的两点:
图片

1. 随着国际潮流摆向标准化器件;

2. 坚定走向客制化道路,以便十多年后“弯道超车”。

本篇为FPGA系列文章的先导篇,简要介绍FPGA行业的发展。因涉及因素众多,不免有些泛泛而谈之感。正文部分笔者将从FPGA可查阅的有趣历史记录入手,带领读者观摩二十多年前的FPGA对于全世界领先的优秀科学家及研发人员来说意味着什么。


03
历届FCCM大会预测报告
所谓的历史记录其实是一份FCCM(Field-Programmable Custom Computing Machines, 现场可编辑自定义计算机器)大会带有一定娱乐性的预测报告,参会嘉宾被分为几组,分别提出一些议题,然后再汇总投票,得票最多的即为第一名。预测中,会同时出现有意思的玩笑、吐槽以及严谨认真的讨论分析,当我们站在2020年这一时间节点,回溯过去二十多年来有过的预测,似乎还可以看到大会上的参会者们几杯小酒下肚、开始畅想不远的未来的场景,颇有几分历史浪潮滚滚而来之感。
FPGA在过去可以看作FCCM的一个组成部分,但是这一称呼随着时代的发展在2010年前后销声匿迹了。因资料有限,笔者假定FCCM与PLD事实上为一个可互相替代的称呼,现在学界可能统一称为PLD。而FCCM目前一般指代IEEE(电气和电子工程师协会)下的同名子会议,是世界上关于FPGA最大的官方论坛之一。其他高规格的论坛还包括:

·FPGA(美国):

International Symposium on Field-Programmable Gate Arrays

·FPL(欧洲):

International Conference on Field-Programmable Logic and Applications

·FPT(亚洲):

International Conference on Field-Programmable Technology

以下为FCCM协会历届预测内容,因为有些内容年代久远且笔者个人水平有限,无法判断或注解其含义,如有错误,请读者们不吝赐教。如若有什么有趣的经历或感想,也欢迎后台来信交流!(内容按得票多少排序)

FCCM协会历届预测内容
原作者:FCCM/Mike Butts
编译及注解(灰色部分):Q

1996年对2001年的预测 


·We will hate the tools.

我们将会憎恨这个工具。

20年前的判断至今可能仍然成立吧,FPGA这一器件本身及其使用过程仍然有很大的提升空间。

·FCCM ’01 will have 1K attendees and a 100 vendor trade show.

在2001年的FCCM会议上,将会有1000名参会人员,100家参会厂商。

·$100M/year FCCM industry with two public companies.

到2001年的FCCM大会时,FCCM产业将价值1亿美金,有两家大型公司。

不清楚2001年的情况,但是后来确实是一个Altera与Xilinx双雄称霸的产业格局。

·Top 3 application areas will be communications, military, image processing, and one we don’t know of today.

FCCM的前三应用领域将为:通信,军事,图像处理,以及一个我们今天不知道的领域。

这一个我们不知道的领域就是机器学习(Machine Learning)。

·FCCM languages will be Visual Verilog++™, gcc, and Matlab.

FCCM语言将会是Visual Verilog++™,gcc和Matlab。

Gcc和Matlab似乎不是现在主流的FPGA编写语言。

·Time-sliced FPGAs will be commercially available, and used in FCCMs.

FGPA将会被商用,并被用在FCCMs中。

没错的,以至于十多年后,FCCMs这个称呼已经完全消失于互联网之中了。现在FCCM一般指代这一大会,而失去了本身最开始的意思:现场可编辑自定义计算机器。

·Dynamic FPGAs with on-chip DRAMs in FCCMs.

FCCMs中将会有动态的FPGAs以及'芯上’DRAMs (动态随机存取存储器)。

没错的,但是我们需要用FPGAs整个取代FCCMs,再来理解这一语句就通顺了。

·Microprocessors will have FPGA logic (for x86 emulation ;-), but not in the API.

微处理器中将会有FPGA逻辑(用于x86模拟), 但是不会在API(Application Programming Interface, 应用程序编程接口)中。

·FPGAs used in FCCMs will have embedded functional units.

用在FCCM中的FPGAs将会有内置的应用单元。

对的。

·FCCM apps will be downloaded from the Internet a’la Java.

FCCM apps 将可以被从网络Java中下载。

·FPGAs used in FCCMs will have 4-LUTs, FFs, and not enough routing.

用在FCCM中的FPGAs将会有4-LUTs(Look-up Tables, 查找表),FFs(Flip Flop, 触发器),但是不会有足够的路线。

·It didn’t fit.

这玩意没用。


1998年对2003年的预测 


·We will still hate the tools.
我们仍然会憎恨这个工具。
仍然憎恨!
·90% of embedded systems on a chip will contain FPGA logic for FCCM-type usage.
对于FCCM类型的使用,90%以上的SOC (System on Chip, 芯片级系统) 将会包含FPGA逻辑。
·FPGAs in FCCMs will have hardwired functional units.
FCCM中的FPGA将会有固线的工作单元,如ALU,FPU,MPY,PCI等。
·At FCCM ’03, Mark Shand will give a paper on interfacing to the Hubble Telescope using FCCMs.
在2003年的FCCM大会上,Mark Shand将会发表一篇关于FCCMs与哈勃望远镜的论文。
·At FCCM ’03, there will still be a high number of gratuitous architectures presented.
在2003年的FCCM大会上,仍然会有大量无用的架构出现。
这里可能是在玩一个梗或双关,此处的architectures可能指代多种东西,包括FPGA架构,FCCM组织架构,会场布置等。
·FCCMs will place and route themselves.
FCCMs将会为自己规划路线,及放置自己。
此处为嘲讽FCCMs的线路规划和放置过于复杂,希望能够自己动手将自己安置好:)
·The predominant FCCM language will be Java++… but someone will still be doing C to FCCM.
FCCM编程语言占据统治地位的会是Java++,但是仍会有某人在用C语言编程FCCM。
2003年时可能是的,但是后期不是了。
·Splash II apps will still appear at FCCM ’03.
Splash II apps仍然会在2003年FCCM大会中出现。
Splash II是什么待各位读者去了解。
·A “savior” killer app for FCCMs will appear.
一个为FCCMs所用的救世主级别的杀手级应用将会出现。
不详。
·We will see the first conscious FCCM.
我们将会看到第一个有意识的FCCM。
可能是双关,呼应第六条。
·CAD will be the killer app for FCCM.
CAD会成为FCCM的杀手级应用。
从我们现在站在2020年的角度来说,存疑。
·It didn’t fit.
这玩意没用。

2000年对2005年的预测 


·Each FPGA has its own IP address.
每一块FPGA有它自己的IP地址。
·Still using VHDL (and hating it), still talking about C to Silicon.
仍然使用VHDL(然而也仍然憎恨),仍然在尝试让硅谷用C语言。
最终C似乎退出了FPGA的直接主流编程语言。
·CPUs + FPGAs are a reality.
CPUs+FPGAs将成为现实。
是的没错,现在所谓的异构计算就是为此。
·JBits grows up to become JBytes.
JBits成长为JBytes。
此处为一个关于JBits的梗,Jbits并不好用,详情可另外自行了解JBits.通俗来说8个bits构成一个bytes。
·Internet Appliances all have FPGAs.
所有互联网设备都将有FPGAs。
·FPGA Barbie™ says “Layout is hard”
FPGA 芭比公司说“设计布局可太难啦!”
每届大会的定向吐槽活动持续进行。
·We will merely dislike the tools.
我们仅仅会有些不喜欢这玩意。
比起大会刚刚召开时,没那么讨厌了!
·FPGA Systems-on-Chip are commonplace.
FPGA片上系统将会很常见。
确实是的,现在的很多FPGA板实际上可以算作SOC。
·80% of the communications infrastructure is reconfigurable.
80%的通信基建架构将是可重构的。
·Linux ported to XC4010.
Linux会对XC4010(现在FPGA龙头Xilinx的一款产品)开放接口。
·“Clippy” (that stupid Office assistant) becomes new hardware design aide.
微软愚蠢的Office智能助手“回形针”将会成为新的硬件设计助手。
这是一句有年代性的话,吐槽微软回形针的鸡肋,以及硬件设计师的无助。
·A C derivative will be the dominant HDL.
一种C语言的衍生语言会成为将来主导性的HDL(Hardware Description Language,硬件描述语言)。
似乎是的,但是现在仍然没有哪一种语言可以完全称的上是 'dominant’。
·Optical interconnect in FCCMs.
FCCMs中将会有光连接(Optical Interconnect)。
似乎是的。
·It didn’t fit.
这玩意没用。

2007年对2012年的预测 


·FPGAs will have floating point cores.
FPGAs 将会有浮点运算核心。
出现了。
·There will be enough women at FCCM 2012 that they complain about the bathroom lines. Note: this item suggested by the female Top 10 participants…
在2012年FCCM大会上将会有足够多的女性以至于她们会抱怨过长的洗手间排队队列。P.S.此项提案主要由女性参会者提出。
或许吧?!
·Partial reconfiguration has been realized in a real-life app.
部分重配置(Partial Reconfiguration)已经被在生活中使用的APP实现。
·An FCCM will be in the TOP500 Supercomputer list.
某一个FCCM将会在TOP500超算名单中。
表现出了一定的乐观。
·There will be viruses and malware for FPGAs.
将会有针对FPGA的病毒和木马。
出现了。
·All devices will require on-line patches like Windows.
所有FCCM相关设备将需要在线版本,就像Windows那样。
·Heterogeneous architectures dominate.
异步架构将会占据统治地位。
站在2020年的角度来说,是的。
·All chips will be defect-mapped and self-healing.
所有的芯片都将能自动识别错误及自我修复。
???
·Bill Gates changes his name to Bill Luts.
比尔·盖茨将改名为比尔·查找表。
吐槽当时的首富比尔盖茨先生,在这个时间节点上,微软的研究团队(Microsoft Research)实际上也正发力研究FPGA,直到该项目首发之前,当时的业界肯定是有不少的交流。
·We hate the tools more.
我们更加憎恨这个工具了。
这玩意的设计及编程语言使用确实仍然是许多人的苦恼。
·Still no standard platform or tools, open source FPGA still a dream.
仍然不会有一个标准化的平台或者工具,开源FPGA是一个遥不可及的梦想。
似乎仍然是这样的,各平台各自为阵。
·It didn’t fit.
这玩意没用。
最后一次出现喽。

2011年对2016年的预测 


·A high-level, object oriented solution for FPGA design will be popular.
一种高级的FPGA设计解决方案将会流行。
·Reconfigurable fabrics will be integrated onto Intel CPUs.
可重构性结构将会被集成于英特尔CPU中。
似乎是的。
·You can buy FPGA IP from an FPGA app store.
你将可以从FPGA app商店中购买FPGA IP。
大厂如Altera,Xilinx有这样的一个IP商店,但是还没有存在一个大一统的商店能为所有人服务,并打通所有相关产业链条。
·Heterogeneous architectures will be in common practice and will be in market.
异步架构将会在市场上很常见。
是的。
·VHDL and Verilog will remain ubiquitous for circuit expression.
VHDL和Verilog仍将是独一无二的电路描述及解析方式。
是的。
·Intel acquires an FPGA company.
英特尔将收购一家FPGA公司。
没错,英特尔收购了寡头之一Altera。
·Dynamic Partial Reconfiguration will be accessible to the masses.
动态部分可重构将会被大量可用。
·FPGAs will contain embedded GPUs.
FPGAs将会内置GPUs。
是的没错,Xilinx有这样的产品。
·FPGAs will move to 3D by having stacked dies within one package.
通过堆叠晶粒,FPGAs将可以垂直发展为3D的。
似乎出现了。
·Mike Butts will do another Top 10.
Mike Butts 还将做一个预测排名。
没错。

2016年对2021年的预测 


·The Top500 supercomputer list will include an FPGA-accelerated machine.
超算前500名将会有一台包含FPGA加速的电脑。
有了。
·A large fraction of datacenter nodes will include FPGA logic.
很大一部分的数据中心节点将用FPGA逻辑。
似乎是的。
·FPGAs will have hardware double-precision FPU DSPs.
FPGAs将会两倍于FPU (Floting-Point Unit, 浮点运算单元) ,DSPs(Digital Signal Processing, 数字信号处理)性能的硬件。
不太清楚,欢迎讨论交流。
·FPGA design tools will still need improvements.
FPGA 设计工具仍需要提升。
从笔者的了解来看,是这样的。
·FPGAs components will be a standard element of most high-end microprocessor architectures.
FPGAs部分将成为高端微处理器架构的一种标准。
·FPGA design tools will still need improvements.
绝大多数的FPGAs将自带高带宽的DRAM。
是的。
·Very few designers will use RTL-level tools – most designers of FPGAs will use high-level tools (C, C++, OpenCL) and/or IP integration.
极少的设计师会用RTL(Register Transfer Level, 寄存器转换级别)层级的工具;绝大多数的设计师会用高级别设计工具如C,C++,OpenCL,或IP集成。
是的。
·Xilinx will be bought by another company (IBM? Google?).
Xilinx会被另一家公司收购。
没错的,AMD于2020年11月左右宣布350亿美金收购Xilinx。
·All large FPGA designs use NOC overlays or hardened NOCs.
所有大型的FPGA设计会用'NOC overlays or hardened NOCs’。
此处不太理解什么意思,希望懂的读者朋友能够一起交流。
·FPGA-based machines begin colonization of Mars.
基于FPGA的机器将殖民火星。
看似玩笑,但是笔者认为可能性挺大的。
·Homogeneous FPGAs as we know them will no longer exist. FPGAs as we know them today will only show up as embedded components within complex, heterogeneous SOC devices.
我们今天所知道的同构FPGAs将不再存在。我们现在所知的FPGAs在将来只会做为一个内置元素在一个复杂的异构SOC设备中。
似乎有这样的发展趋势。


04
结语

真正的行业状况势必远复杂于此,不同概念的产品及架构也层出不穷,若要皆囊括于文章中,恐怕几本书也不够写。若读者对PLD/FPGA领域在看了本文后有更深的兴趣,可以着重关注以下三人及其团队的最新动向及研究以获得第一手资料了解。

1. 来自UCLA的Jason Cong及其团队。

2. 来自帝国理工的Wayne Luk及其团队。
3. 来自帝国理工的Peter Y.K. Cheung及其团队。
如果希望系统了解FPGA,笔者推荐《FPGA原理和结构》,作者天野英晴,翻译赵谦,中国工信出版社及人民邮电出版社出版,ISBN978-7-115-50331-2。

同时,2021年的FCCM大会应当会有针对下一个五年的预测,也值得关注。

【参考资料】
https://www./home/past-fccm-websites/
https://www./products/silicon-devices/fpga.html
https://www.intel.com/content/www/us/en/products/programmable.html
《FPGA原理和结构》,作者天野英晴

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多