Lattice Blog

Share:

FPGA初探

An FPGA Primer, Bob O'Donnell
Posted 01/10/2020 by Bob O’Donnell

Posted in

现代企业老生常谈的一个话题就是,随着行业不断成熟,它们会更加专业化。客户需求通常也会趋向复杂,这就需要对产品进行优化满足这些特定的需要。

整个技术行业,尤其是半导体行业,都是如此。如今的科技产品比以往任何时候都要多样、复杂,而在创造这些科技产品的背后,是更加多样化的半导体计算解决方案。

过去几年里,半导体技术进步有趣的地方在于,不仅芯片数量出现爆炸式增长,支持芯片的基本架构也层出不穷。产业的发展程度已经远远超越了如今大多数技术产品中常见的CPU和微控制器作为系统大脑的设计,GPU、APU、TPU等多种类型的加速器芯片以及另一种不算常见的加速器——FPGA(现场可编程门阵列)正扮演着愈加重要的角色。

在许多情况下,这些加速器与CPU等芯片一起工作,用于加速某些对应用至关重要的任务,例如计算机视觉应用中的图像识别。多种芯片协同工作的架构通常称为异构计算。它一段时间以来都是技术行业最热门、最重要的发展之一。

尽管异构计算相对“新颖”,但是这些加速器芯片背后的许多补充架构已经存在了许久。例如,第一批FPGA是在1980年代中期设计的。自从那时起,它们就被用作许多不同类型技术产品的关键组件。FPGA的设计初衷是成为ASIC(专用集成电路)更灵活的替代品。顾名思义,ASIC是专用于特定产品的专用芯片。ASIC被设计为可以非常快速地执行某些特定的功能,甚至比CPU之类的通用计算引擎还要快,因此它们在特定应用中是个不错的选择。然而,ASIC设计起来十分困难、价格高昂,在实际应用中并非总是最佳选择。另外,最重要的是,ASIC一旦设计并生产出来,就它的功能基本不能修改,除非重新设计和构建全新的芯片。

另一方面,FPGA本身就是灵活的芯片。顾名思义,在芯片生产并在设备中运行之后,它们可以在“现场”进行编程或重新编程。 这种“能够更新”的特性非常实用,因为可以向使用FPGA的设备添加新功能(或修复现有功能中的缺陷)。例如,随着机器学习算法不断“学习”并进化,最初被编程运行该算法的FPGA可以更新,从而运行较新版本的算法。因此,虽然FPGA提供的灵活性通常要比同等ASIC代价稍高,但在许多应用中,它们也能提供更高的价值。

实际而言,可重新编程的特性也意味着公司能够让基于FPGA的产品快速上市,因为产品设计完成之后,仍然可以对其功能进行更新,而无需在构建完成之前完成所有的功能设计。

FPGA拥有的一系列逻辑块和高速接口可用于控制芯片的内部运作。从概念上来看,这类似于一堆乐高积木,可以根据需要进行重新排列和重新配置。现代FPGA设计的关键优势在于各个功能可以并行运行,从而极大加速处理特定类型的工作。这也是FPGA和微控制器的主要区别,许多微控制器只能串行运行。

正如同大规模的专业化趋势一样,FPGA本身也已开始涉足不同领域,其中一些设计针对高功耗的数据中心应用,而另一些则针对低功耗应用。无论哪种情况,它们都能提供可定制的计算能力,这已成为现代设备和服务的重要组成部分。

Bob O’Donnell是市场研究公司TECHnalysis Research的总裁兼首席分析师,该公司为技术行业和专业金融领域提供战略咨询和市场研究服务。您可以在Twitter上关注他@bobodtech

Share: