前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软硬件融合技术内幕 进阶篇 (9) —— 中国人民的骄傲

软硬件融合技术内幕 进阶篇 (9) —— 中国人民的骄傲

作者头像
用户8289326
发布2022-12-13 08:57:42
3360
发布2022-12-13 08:57:42
举报

在前两期《软硬件融合技术内幕 进阶篇 (7) —— 恶魔导演的战争》和《软硬件融合技术内幕 进阶篇 (8) —— 永朽不垂的小丑》中,我们论证了,期望通过交换ASIC/NP和SoC来实现SmartNIC的困难——对于数据平面一些大量重复的运算,使用固化电路实现的硬件加速单元进行卸载(offload),虽然能够取得很好的执行效率,但如果这些运算的算法需要迭代,那么,固化电路将难以胜任。

举一个栗子:

我们知道,MD5是一度流行的Hash算法,可以用于数字签名等场景。但是,在2004年,王小云教授发现了MD5算法的严重漏洞,能够用大大短于预期的时间,发现两个MD5值相同的串,也就是所谓的Hash碰撞。紧接着,2005年,王小云教授又发现了SHA-1算法的类似漏洞。这是中国人民的骄傲。

很快,有人利用这两个漏洞,成功伪造了符合X.509标准的数字证书。因此,国际上将MD5和SHA-1视为不安全的Hash算法,并推荐SHA256代替。那么,如果在SmartNIC中采用固化的电路来执行加密和签名算法,一旦这些算法被发现严重漏洞,为SmartNIC迭代新的算法版本将变得极为困难。

为了解决这种困难,工程师们想到了一种可以修改内部逻辑的处理器——可编程逻辑器件。

可编程逻辑器件是一种特殊的芯片,可以根据工程师们写的硬件描述语言(Hardware Description Language, HDL) 的编译结果,来实现不同的逻辑。一般而言,用于实现较为复杂的计算逻辑的可编程器件是FPGA (Field Programmable Gateway Array,现场可编程门阵列)。

大名鼎鼎的FPGA厂商,Xilinx就在2020年,为SmartNIC推出了基于FPGA的方案Alveo。

从图中可以看出,Alveo是一款PCI-E卡,对外提供2个25G SFP28以太网接口,其核心是UltraScale+ XCU25 FPGA。

XCU25本身提供64K个CLB (configurable logic blocks) ,每个CLB可以包含8个6路输入的LUT(LookUp Table,用于实现组合逻辑),16个Flip-flop触发器 (用于实现时序逻辑,16个可以实现256种状态);以及内置的SRAM,用于存放一些表项。

如图,开发者可以对LUT6(包括2个LUT5)进行编程,生成特定的组合逻辑,再将LUT6的输出O5和O6连接到两个Flip-flop触发器,影响其状态。图中2个触发器可以构成4种状态。

我们在前文《软硬件融合技术内幕 基础篇 (15) —— 古墓丽影与挖矿 (下)》中讲过,“挖矿”使用的算法SHA256,需要保存中间状态,还需要使用补码和异或等组合逻辑运算。那么,利用FPGA的Flip-flop触发器,以及LUT组合逻辑计算器,就可以很容易地实现这一类常用算法了。如果SHA256算法由于某些原因不允许继续使用,程序员们通过为FPGA刷新固件,也可以很容易地为SmartNIC实现新的验签算法。

XCU25除了具备海量的触发器和组合逻辑计算单元外,还集成了5个PCI-E 4.0的核,4个100G以太网的MAC(包括Intelaken核),开发者不需要购买这些IP(也就是FPGA开发的代码库),就可以利用FPGA芯片内置的这些部件,来实现一块网卡的最基本的功能。而SmartNIC所需要的数据平面加速功能,如密钥与签名算法、Overlay封装和解封装、RDMA等功能,可以通过FPGA的其他可编程单元实现。

然而,以Xilinx Alveo为代表的FPGA Smart NIC方案,也有着一些较为严重的弱点:

我们知道,大型云厂商对SmartNIC的诉求,不只是一张网卡,还需要它能够实现基于网络的云存储加速,以及Hypervisor功能卸载等高级数据平面加速能力,将服务器上的CPU资源尽可能地释放出来。但SPDK,Hypervisor等来自开源社区的组件,基本都是使用C/C++等软件开发使用的编程语言编写的,与FPGA开发使用的硬件描述语言(HDL)相差非常大。如果需要用HDL在FPGA中重写Hypervisor,或在FPGA中实现SPDK的卸载,其工作量相当于重构一个KVM等Hypervisor。

那么,有没有办法让SmartNIC既可以运行高级语言编写的程序,又能利用FPGA实现灵活可编程的硬件加速算法呢?

请看下期分解。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅云霓的技术小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档