ASIC|从边缘到中心网络,为什么是ASIC?

正文字数:7269阅读时长:10分钟
在边缘网络上,Cloudflare正在进行着自己的计划。ASIC扮演了越来越重要的角色,从网络、AI计算、3D渲染、视频编解码等。Cloudflare网络工程师介绍了ASIC在网络方面的关键价值,以点及面,看上去ASIC在边缘大有可为。
文/Tom Strickx
译/Kalinda Xie
在Cloudflare,我们以遍布全球100多个国家200多个城市的全球网络感到自豪。为了处理通过我们网络的所有流量,我们运用多种技术。现在让我们看一下所有这些技术的奠基石之一…ASICs。不,不是跑鞋。
什么是ASIC?
ASIC代表应用专用集成电路。顾名思义,这是一种用例非常狭窄的芯片,适用于单个应用程序。这与CPU(中央处理单元),甚至GPU(图形处理单元)形成了鲜明的对比。CPU是为通用计算而设计和构建的,在很多方面做得相当好。GPU更适合图形(与其名字相符),但是在过去的15年中,已经发生了向GPGPU(通用GPU)的急剧转变,其中CUDA或OpenCL等技术使您可以使用高度并行的特性GPU进行通用计算。GPU使用的一个很好的例子是视频编码,或者最近在自动驾驶汽车等应用中使用的计算机视觉。
与CPU或GPU不同,ASIC在构建时就考虑了单个功能。Google Tensor处理单元(TPU)就是很好的例子,用于加速机器学习功能[1]或用于轨道操纵[2],其中编码了特定的轨道操纵,例如霍曼转移(Hohmann Transfer),用于移动火箭(及其有效载荷)到不同高度的新轨道。而且它们在网络行业中也有大量的应用方向。从技术角度上讲,网络行业中的用例应称为ASSP(应用专用标准产品),但是网络工程师是简单的人,因此我们更喜欢将其称为ASIC。
为什么选择ASIC
ASIC的主要好处是效率极其高。硬件越复杂,就越需要冷却和电源。由于ASIC仅包含其功能所需的硬件组件,因此可以减小其整体尺寸,并减小其电源要求。这对网络的整体实际尺寸有正面的影响(设备不必太笨重即可提供足够的散热),并有助于降低数据中心的功耗。
降低硬件复杂性还可以降低制造过程的故障率,因此而简化生产。
缺点是您需要在硬件中嵌入很多功能,一旦出现了新的技术或规范,任何没有采用该技术的芯片都将无法支持它(例如VXLAN)。
对于网络设备,这非常理想。总体而言,网络行业发展缓慢,需要花费大量时间才能将新技术推向市场(如IPv6,MPLS的实施,xDSL可用性等)。这意味着芯片不需要每年进行开发,而可以在更慢的周期内创造出更大的技术进步。例如,博通(Broadcom)从“战斧3(Tomahawk 3)”到“战斧4(Tomahawk 4)”花费了两年的时间,但在此过程中,它们的吞吐量增加了一倍。前面列出的好处对于网络设备也常有帮助,因为它们以较小的尺寸允许相当大的吞吐量。
构建ASIC
与任何类型的芯片一样,构建ASIC是一个长期的过程。与CPU一样,如果硬件设计存在缺陷,则必须从头开始,并报废整个构建线。因此,开发生命周期非常长。它以FPGA(Field Programmable Gate Array现场可编程门阵列)中的原型设计开始,在该设计中,芯片设计人员可以编写他们所需的功能并确认兼容性。所有这些都是通过HDL(Hardware Description Language硬件描述语言),例如Verilog,完成的。
原型制作阶段结束后,他们开始将新的数据包处理管道烘焙到铸造厂的芯片中。此后,就不能再对芯片进行任何更改了,因为它实际上已经“烧录”到了硬件中(不同于可以重新编程的FPGA)。由于很少有硬件公司会批量购买ASIC来构建设备,这进一步增加了困难。因此,每单位的成本会急剧增加。
所有这些都意味着ASIC的迭代周期趋向于放慢脚步(例如,与Intel Process-Architecture-Optimization模型中的每年都进行的更新相比),并且通常是较小的增量更新:例如,端口速度的增加是递增的(1G10G25G40G100G400G800G...),并且与芯片的SerDes(Serialiser / Deserialiser 序列化器/解串器)部分的升级捆绑在一起。
新协议的支持要困难得多,在将其加载在芯片上之前可能需要多个开发周期。
ASIC做什么
我们网络设备中的ASIC负责数据包的交换和路由,并且是第一道防线(以无状态防火墙的形式)。由于如何快速交换数据包具有绝对的本质,因此快速的内存访问是主要问题。大多数ASIC将使用一种特殊的存储器,称为TCAM(三重内容可寻址存储器)。该内存将用于存储各种查找表。这些可能是转发表(此数据包的去向),ACL表(访问控制列表,允许此数据包访问)或CoS表(服务等级表,可以为特定的数据包赋予优先级)。