acm-header
登录

ACM通信

实践

客户端计算硬件中的fpga


电路板上的处理器芯片

图片来源:江杰峰

回到顶部

现场可编程门阵列(fpga)是非常通用的。它们被广泛应用于特定应用集成电路(asic)在经济上不太可行的各种应用和行业。尽管在将fpga集成到设备中时,设计者面临着面积、成本和功率的挑战,但它们提供了显著的安全和性能优势。其中许多好处可以在客户机计算硬件(如笔记本电脑、平板电脑和智能手机)中实现。

FPGA是一种集成电路(IC),由可配置逻辑块(clb)组成,通过可编程互连线(图1);22在制造之后,它可以配置为所需的应用程序或功能需求(因此,现场可编程)。相比之下,ASIC在制造后不能进行修改或更改。例如CPU、GPU或SoC(芯片上的系统)。

f1.jpg
图1。Xilinx Spartan-3A FPGA。

硬件设计人员使用硬件描述语言(hdl),如VHDL或Verilog来描述FPGA内逻辑元素的结构和/或行为。然后使用电子设计自动化(EDA)工具来合成设计并生成FPGA配置,通常称为比特流;最后,将比特流应用到FPGA中。(这种解释过于简单化,只能作为fpga的基本描述。)

世界上最大的FPGA制造商是最近被AMD收购的Xilinx和英特尔(前身为Altera,于2015年被英特尔收购)。截至2019年,FPGA市场规模估值为90亿美元,预计到2025年将达到142亿美元。8

尽管fpga用途广泛,在各种应用程序中大量使用,但在现代客户端计算硬件(例如,笔记本电脑、智能手机、台式机和平板电脑)中却鲜有使用。本文研究了在客户端计算硬件中使用fpga的挑战和好处。

回到顶部

当前的应用程序

fpga通常用于硬件设计的早期阶段,用于快速原型、测试和开发,因为它们可以随意重新配置。否则,设计师将不得不把他们的设计,每次更新或修改,送去铸造;这既耗时又费钱。其他常见的应用包括航空航天和国防(例如,航空电子设备和导弹防御系统)、音频和视频(数字信号处理、编码和解码)、医疗(超声波和x射线)以及各种其他市场和行业。

fpga也常用于云计算和数据中心应用程序。微软的Azure SmartNIC是一种网卡,它使用FPGA来加速通过其Azure云服务提供的虚拟机的网络性能(更低的延迟和更高的吞吐量)。7Amazon Web Services (AWS)提供带有FP-GAs的虚拟机,开发人员可以使用这些虚拟机来加速他们的应用程序。20.对于那些希望在自己的数据中心运行应用程序的人来说,fpga可以作为外设组件互连Express (PCIe)扩展卡使用,可以集成到新的或现有的服务器中;然后开发人员可以使用它们来加速他们的应用程序。19

一般来说,只要生产的单元或设备的体积相对较小,就会发现FPGA,因此使用FPGA进行应用比设计和制造ASIC更经济。

回到顶部

挑战

当硬件设计人员在客户端计算设备中集成fpga时,出现了各种各样的重要挑战。这些因素包括面积(FPGA将占据的印刷电路板上的空间量)、功耗和成本。

区域.在2008年的Macworld大会上,时任苹果公司CEO的史蒂夫·乔布斯发布了MacBook Air,这是一款轻薄的笔记本电脑,可以装进一个信封里。当时,消费电子行业已经在向更薄、更轻的设备发展;这是一个自然的过程。然而,与竞争对手相比,MacBook Air实在是太薄太轻了,以至于原始设备制造商别无选择,只能按下快进键,把设备的尺寸和重量放在首位,以保持竞争力。直到今天,大小和重量仍然是硬件设计人员和客户端计算设备消费者的优先考虑因素。

与asic相比,fpga在同等数量的逻辑和功能实现上使用更多的区域。所讨论的计量单位是平方毫米(mm2),乍一看似乎可以忽略不计;然而,在现代设备设计中,每一微米都很重要。

成本。从物料清单(BOM)的角度来看,fpga比asic更昂贵。根据目标受众和市场(如消费电子产品)的不同,OEM或系统设计师必须处理紧的利润率和特定的价格目标,以便产品在经济上可行并以值得的数量销售。通过引入FPGA来增加BOM可能导致产品或系统的总体目标价格超出可接受的范围。

权力。fpga比asic更耗电。12在大型、复杂的系统中(功耗不是很大的限制,或者一个或多个fpga的功率增加可以忽略不计),功耗可能不是太大的问题。然而,在客户端计算设备中,功耗在整个系统设计中被赋予了很高的优先级。较低的总拥有成本(TCO)和较长的电池寿命(在移动设备的背景下)是消费电子领域非常可取的特性。

回到顶部

好处

将fpga集成到客户端计算硬件实现了各种好处。18它们可以用来加速其他昂贵的操作,这反过来又可以提高性能和能效。它们的可重构特性允许已经部署的硬件在其生命周期内进行更新(例如,修复安全问题或提高性能)。如果操作谨慎,选择通过FPGA在硬件中实现特定功能有可能增加设备的整体安全性。

硬件加速。硬件加速和异构计算架构正变得越来越普遍。换句话说,使用正确的工具;并非所有工作负载都适合于某一特定类型的硬件(例如,cpu或gpu)。

在现代计算设备中有几个这样的例子:

  • 苹果的M1 SoC具有专门的神经网络硬件,称为神经引擎;它用于Face ID、Animoji和其他机器学习工作负载/任务。虽然这些任务可以在CPU或GPU上处理,但使用专用硬件可以获得显著的功率效率和性能优势。
  • 手臂的大。LITTLE架构结合了两种类型的CPU核心:那些设计为更高的性能和那些设计为功率效率;某些任务和工作负载更适合不同的功率和性能概要。
  • AES- ni(高级加密标准新指令)加速了AES加解密操作。考虑到这些操作执行的频率,在硬件上加速这些操作可以带来功率效率和性能优势。

fpga可以用于加速特定工作负载,如果这些工作负载足够大,可以实现性能和/或电源优势。oem和系统设计师可能更喜欢FPGA而不是ASIC,原因如下:

  • 如前所述,设计和制造ASIC在经济上是不可实现的。
  • 没有这样的硬件可以加速这样的工作负载。
  • 使用可用的硬件,加速器不存在所需的集成或功能。

打补丁和更新。如前所述,使用FPGA的一个主要好处是在部署后可以重新配置。实际上,这意味着硬件可以随着时间的推移进行修改或更新。这对设计师(例如,减少制造开销)和消费者(例如,不混淆该购买哪个产品或产品过时)都有好处。例如,如果加速特定音频或视频编解码器的编码或解码,则实现可能会随着时间的推移而更改或更新。

另一个主要好处是能够修复或修补随着时间的推移发现的安全漏洞。6asic在生产后无法进行修改;“幽灵”(Spectre)和“熔解”(Meltdown),以及它们各自的变种,都是一个硬件漏洞能造成多大破坏的鲜明例子。给硬件打补丁的能力不能被夸大。


凡是生产的单元或设备的体积相对较小的地方都可以找到FPGA,因此使用FPGA进行应用比设计和制造ASIC更经济。


增强安全性。在深入本节之前,让我们先弄清楚两件事:

  • 没有完全安全的系统。从哲学上讲,我们作为人类是不完美的,我们设计和使用的系统本质上也是不完美的。
  • 硬件是本质上比软件更安全。如果某些东西是在硬件而不是软件或固件中实现的,这并不会神奇地使其更安全。

尽管有这两点,在硬件中实现一个特定的功能可以提高系统的整体安全性。例如:

  • 用于微软Xbox One视频游戏控制台的SoC,如图所示图2,有一个专用的硬件PIN,用于访问机密密钥以解密敏感数据。13这确保了密钥在任何时间点都不会暴露给软件或系统的任何其他部分。

f2.jpg
图2。Xbox One X SoC架构的高级描述。

  • 与使用更传统存储架构的设备相比,使用Apple T2 SoC的系统中的苹果存储架构在安全和性能方面都有优势。见图3, SoC位于CPU和非易失性存储器之间的直接内存访问(DMA)路径上。3.这使用于加密和解密数据的密钥远离系统的其他部分(例如,CPU和在其上运行的任何软件)。这种体系结构的另一个好处是增强了性能;T2 SoC作为存储控制器,执行对NAND闪存模块的所有读取和写入。

f3.jpg
图3。使用T2 SoC的苹果设备上的存储架构。

  • 生物特征认证,即使用指纹或面部等身体测量数据进行身份验证的方式,正变得越来越普遍,因为它比密码认证更强大。处理生物特征信息会引起严重的隐私和安全问题,例如如何存储、处理和处理信息。早期的生物特征认证机制直接在主机设备上(即在CPU上的软件中)处理个人的生物特征信息;这意味着生物特征信息现在暴露在软件和系统内的各种组件中。现代生物识别认证机制,如Synaptics FS760016所示图4在单个SoC上存储、处理和处理所有生物特征信息;这意味着生物特征信息永远不会暴露给主机操作系统、CPU或系统的任何其他硬件或软件组件。

f4.jpg
图4。synaptics FS7600生物特征认证SoC。

因此,选择实现系统体系结构的某些功能可以带来安全方面的好处。fpga与ASIC具有相同的潜在优势,另外还可以在整个系统的生命周期中进行重新配置。如果安全是系统设计的优先级(它应该是),那么在发现安全漏洞时做好准备并能够补救它们(可能通过对FPGA的更新)也应该是优先级。

回到顶部

把它们放在一起

本节重点介绍一个使用FPGA代替ASIC的场景,以演示将可编程逻辑集成到客户端计算硬件设计中的实用性。该场景中,客户端计算设备内部的SSD (solid-state storage device)通过FPGA实现存储控制器的功能;图5是SSD体系结构的高级描述。FPGA将用于实现:

f5.jpg
图5。计算设备使用的存储设备架构。

  • 加密引擎。对读/写的数据执行所有加密/解密操作。
  • DRAM控制器。与DRAM(通常用作缓存)的接口。
  • NAND闪存控制器。与存储设备内部NAND flash模块的接口。
  • 处理器。存放存储设备的核心逻辑。
  • 主机控制器接口。通过非易失性内存主机控制器接口规范(NVMe)、串行ATA (SATA)、串行连接SCSI (SAS)等与主机(例如,笔记本电脑、桌面电脑、智能手机和平板电脑)进行接口。

需要注意的是,如果FPGA用于其他方面(例如,音频/视频、编码/解码、面部识别),那么本节中的许多要点也会适用。

区域。标准M.2 2280 SSD硬盘尺寸为22mm × 80mm,总长度为1760mm2.这种形式的因素是一个单一的,刚性的硬件。虽然实现这个假想SSD中描述的逻辑所需的FPGA比商业SSD上的大多数存储控制器asic都要大,但对设计人员来说,将组件分离是有利的。与其把所有东西都塞到一个M.2 2280的外形上,为什么不利用PCB(印刷电路板)的空间并将组件分散开来呢?


没有完全安全的系统。从哲学上讲,我们作为人类是不完美的,我们设计和使用的系统本质上也是不完美的。


所示图6从2020年开始,13英寸MacBook Pro将使用不规则形状的PCB板,以充分利用机箱中每一平方毫米的空间。组件被放置在整个过程中,而不是使用较大的、刚性的组件,如M.2 ssd。(注意NAND闪存模块和Apple M1 SoC的位置。)

f6.jpg
图6。2020年底13英寸Macbook Pro PCB的形状/布局。

图7展示了分布在整个PCB上的SSD组件的示例布局,而不是集中在M.2 2280的形状系数中。M.2 SSD将占用PCB上相当大的空间,使其更具有挑战性,以适应其他组件。将组件分开并将它们分散在PCB上可以更好地利用空间。这是一个公平的妥协,以确保满足大小/空间要求。

f7.jpg
图7。SSD设备各部件布局示例。

功率和性能.Intel Optane 905P SSD在激活时消耗9.35W,空闲时消耗2.52W;其顺序读写带宽分别为2600mb /s和2200mb /s。9Ruan等人已经证明,类似于本文提出的SSD设计(fpga加速SSD)消耗约10W的活动功率,与使用四核ARM CPU作为存储控制器的SSD相比,性能平均提高了12倍。15在功耗增加的同时,性能也有了显著的提高。

知识产权盗窃。逆向工程可以揭示IC的结构、设计和功能。针对这种情况的常见保护是IC伪装,但这带来了显著的面积、功率和延迟开销。14TechInsights为反向工程集成电路提供专业服务,17Degate甚至还提供软件产品,可用于对集成电路进行逆向工程。5虽然逆向工程通常是出于合法原因进行的,但恶意实体可能会对IC进行逆向工程,以窃取/盗版设计。然而,当试图在FPGA IC上这样做时,恶意实体只能了解FPGA本身,而不能了解实现的逻辑或IP。

值得注意的是,fpga可能通过操纵和/或反向工程的比特流暴露于其他恶意攻击和/或盗版。位流可以被操纵,当它被加载到FPGA中时,它会导致不必要的行为;它也可能被提取和逆向工程。虽然这似乎令人担忧,但两者都是商业性的423和学术10方法可用于保护比特流。

成本。对于使用FPGA的计算设备的最终用户,整体TCO降低。在设备的整个生命周期中,随着SSD中IP块实现的改进(例如,效率和安全性)和FPGA配置的更新,对“新”设备的需求随着时间的推移而减少(当您拥有的设备可以“像新的一样好”时,为什么还要购买一个新设备呢?)资本支出减少了,因为需要购买的设备减少了;这也降低了终端用户的总体碳足迹。操作费用减少的原因是,在不可避免的安全相关问题发生时,补救措施只是更新SSD,这大概不会造成性能损失。实际上,唯一的问题是SSD内部NAND闪存模块的磨损均衡;然而,实际上,这只会在大量使用存储设备时才会出现问题,比如超过SSD的每天驱动器写入量(DWPD)。

对于计算设备的设计者来说,与任何工程项目一样,总成本不仅仅是BOM;非经常性工程(NRE)成本在大型项目中通常很重要。此外,还有修改硬件设计和提供迭代产品更新所带来的持续开发和支持成本。当使用FPGA而不是ASIC来实现SSD控制器时,BOM成本可能会增加,但FPGA可以降低持续开发成本。这是因为控制器的功能可能会随着时间的推移而更新,从而减少了设计新的ASIC的需求,并使产品通过另一轮监管认证。

系统设计师只需要“推送”一个更新到SSD(通过互联网或其他方式)来更新或改变其功能。对于原始设备制造商和系统设计师来说,在使用fpga时,考虑平衡不断减少的开发成本和增加的BOM成本是值得的。换句话说,“吸收”一些增加的BOM成本可能更可行,否则这些成本将被转嫁给最终用户,因为设计人员的总体成本可能会降低。

回到顶部

结论

虽然在客户端计算硬件中使用fpga的挑战不容忽视,但其好处远远超过集成它们所需的工作和努力。以下是一些已经在客户端计算硬件中使用fpga的著名例子:

  • 2014年发布的智能手机三星Galaxy S5采用了Lattice Semiconductor LPIK9D FPGA。1
  • 2016年发布的智能手机苹果iPhone 7采用了Lattice Semiconductor ICE5LP4K FPGA。21
  • 2019年发布的当前一代苹果Mac Pro台式电脑可以配置Apple Afterburner加速卡,使用FPGA加速解码和播放ProRes和ProRes RAW视频文件。2

这些产品不仅被知名、信誉良好的oem厂商所销售,也得到了目标受众和市场的好评。

有趣的是,AMD最近申请了一项将可编程逻辑集成到CPU的专利。11将可编程逻辑集成到其他类型的硬件中(也就是说,不只是作为系统中的另一个组件,而是作为组件本身的一部分),为更多类型的硬件设计打开了大门。例如,如果一个独立软件供应商(ISV)应用程序使用了一个计算成本很高的特定操作,那么在硬件上对其进行加速是有意义的,这样可以提高功耗和性能。

然而,对于硬件设计人员来说,考虑所有ISV应用程序是不切实际的。通过将可编程逻辑或可编程执行单元集成到客户端计算设备的CPU中,ISV可以将配置这些可编程执行单元(即比特流)所需的信息捆绑在一起,这样当应用程序正在使用时,CPU就可以使用它们来加速那些昂贵的操作。这在图811

f8.jpg
图8。集成在CPU中的可编程执行单元。

最后,硬件加速、产品更新的便捷性和增强的安全性如何转化为客户端计算硬件的消费者?很简单:使用产品时更好的整体体验和更低的整体TCO。所有的客户端计算设备都是针对这些特点设计的(没有人想要一个难以使用和昂贵的设备),所以上述产品受到欢迎也就不足为奇了,而且它应该作为一个指标,如果操作得当,集成fpga的产品可以获得成功。

回到顶部

参考文献

1.Alarcon, M., Fontaine, R., James, D., Krishnamurthy, R., Morrison, J., Yang, D., Young, C.三星Galaxy S5拆卸。科技的见解, 2014;https://www.techinsights.com/blog/samsung-galaxy-s5-teardown

2.苹果公司的支持。关于Mac Pro加力加速卡,2019;https://support.apple.com/en-us/HT210748

3.苹果公司的支持。专用AES引擎,2020年;https://apple.co/3iHBYbY

4.FPGA IFF拷贝保护使用Dallas Semiconductor/Maxim DS2432安全eeprom。Xilinx, 2010;https://www.xilinx.com/support/documentation/application_notes/xapp780.pdf

5.打浇口。Degate反向工程集成电路;https://degate.readthedocs.io/en/latest/

6.Dessouky, G., Frassetto, T., Jauernig, P., Sadeghi, a.r., Stapf, E.复杂性越大,脆弱性越大:从独立修复到可重构安全。IEEE安全与隐私5 (2020), 57-66;https://dl.acm.org/doi/abs/10.1109/MSEC.2020.2994978

7.费尔斯通(Firestone)等。Azure加速了网络:公共云中的smartnic。在15th网络系统设计与实现Usenix研讨会, 2018年,51 - 66;https://www.usenix.org/conference/nsdi18/presentation/firestone

8.大观点的研究。2020-2027年现场可编程门阵列市场规模报告;https://www.grandviewresearch.com/industry-analysis/fpga-market

9.英特尔。Intel Optane SSD 905P系列产品规格,2018;https://intel.ly/3qGeUib

10.Karam, R., Hoque, T., Ray, S., Tehranipoor, M., Bhunia, S.通过低开销混淆在基于fpga的系统中实现鲁棒比特流保护。IEEE。在2016年实习生会议记录。可重构计算和fpga, 1 - 8;https://ieeexplore.ieee.org/document/7857187

11.计算机系统中高效可编程指令的方法和装置。美国专利申请US20200409707A1, 2019。

12.Kuon, I., Rose, J.测量fpga和asic之间的差距。IEEE反式。集成电路与系统计算机辅助设计, 2 (2007), 203-215;https://ieeexplore.ieee.org/document/4068926

13.Mattioli, M, Lahtiranta, A.电子游戏主机中隐藏的潜力。IEEE微41, 2 (2021), 72-77;https://ieeexplore.ieee.org/document/9340369

14.Rajendran, J., Sam, M., Sinanoglu, O., Karri, R.集成电路伪装的安全性分析。在2013年ACM SIGSAC会议论文集。计算机与通信安全, 709 - 720;https://doi.org/10.1145/2508859.2516656

15.阮铮,何涛,丛杰。inside:面向新兴高性能驱动器的存储计算系统设计。在2019年Usenix年度技术会议论文集, 379 - 394;https://www.usenix.org/system/files/atc19-ruan_0.pdf

16.Synaptics的下一代指纹传感器安全:FS7600 Match-In-Sensor。AnandTech, 2018;https://bit.ly/3tN4XkJ

17.TechInsights。分析范围,2021年;https://bit.ly/38b6t89

18.Tessier, R., Pocek, K., DeHon, A.可重构计算架构。IEEE 103论文集, 3(2015), 332-354。

19.Venkatakrishnan, R., Misra, A., Kindratenko, V.加速fpga上科学代码的基于高级合成的方法。C科学与工程计算, 4 (2020), 104-109;https://dl.acm.org/doi/10.1109/MCSE.2020.2996072

20.王晓霞,牛玉玉,刘芳,徐铮,当FPGA遇到云:性能的第一眼。IEEE反式。云计算, 2020;https://ieeexplore.ieee.org/abstract/document/9086121

21.韦格纳,S.,考斯基,A.,戴维斯,C.,詹姆斯,D.,杨,D.,方丹,R.,莫里森,J.苹果iPhone 7拆卸。TechInsights, 2016;https://www.techinsights.com/blog/apple-iphone-7-teardown

22.维基共享。文件:Xerox ColorQube 8570 -主控制器- Xilinx Spartan XC3S400A-0205.jpg;https://bit.ly/3tObAU3

23.Xilinx. 40360 - FPGA -有什么方法来保护FPGA位流免受未经授权的复制?2021;https://www.xilinx.com/support/answers/40360.html

回到顶部

作者

迈克尔Mattioli他在高盛全球市场部领导Prime Services Engineering Consulting,此前曾领导硬件工程团队。他还共同主持TCG(可信计算小组)内的供应链安全工作组,并领导GSA(全球半导体联盟)内的一个专注于供应链来源和可追溯性的工作组。


版权归作者所有。
向所有者/作者请求(重新)发布权限

数字图书馆是由计算机协会出版的。版权所有©2022 ACM, Inc.


没有发现记录

登录为完全访问
»忘记密码? »创建ACM Web帐号
文章内容:
Baidu
map