星融元浅析交换机芯片的演进之路

无所不能的芯片

科技时代,无论是人们常用的手机、电脑及数码产品,还是企业应用的数据中心 、高性能计算、工业机器人,都离不开芯片的支撑。特别是在全球经济数字化、竞争主体的国家化以及产业链问题的安全化的大背景之下,芯片半导体产业并非仅仅是一个经济问题或者市场问题,直接与国家的发展联系在一起,成为国家之间用来经济制衡的武器。

而今天,我们主要来聊一聊通信行业中,起通信和连接作用的 络交换芯片。

交换芯片让数据在信息高速公路畅通流动

根据灼识咨询数据,2021年全球以太 交换芯片总体市场规模为386亿元,同比增长5%;灼识咨询预计2025年该市场规模有望达到434亿元,2021-2025年CAGR约3%。

纵观整个产业的发展,在过去的三十年中,互联 已经变得非常商业化,企业 络的协议和技术已经发生了变迁。但是我们也应该看到,虽然作为互联 中坚力量的以太 和TCP/IP协议栈显然是开放的,但是交换芯片和交换机制造商都对内部的组件讳莫如深。所以,我们只能从浅显的角度分享交换芯片,但也希望有一天,领先交换芯片制造商(如Broadcom/Mellanox /Barefoot/Innovium)详细谈论他们的技术,让交换机技术公开会成为现实,实现百家齐放/百花争鸣的局面。

作为换机、路由器等 络设备中的核心存在, 络交换芯片可以支持 络设备实现海量数据在数据中心、承载 、核心骨干 等“信息高速公路”交流交换,让数据在信息高速公路畅通流动。

交换芯片的工作原理:需要传输的数据包由端口进入交换芯片后,首先进行数据包头字段匹配,为流分类做准备;而后经过安全引擎进行硬件安全检测;符合安全的数据包进行二层交换或者三层路由,经过流分类处理器对匹配的数据包做相关动作(如丢弃、限速、修改VLAN 等);对于可以转发的数据包根据优先级放到不同队列的缓冲管理中,再由调度器进行队列调度,并执行流分类修改动作,最终从目标端口发出。

但不得不说,提及交换芯片,有很多概念往往会混淆不清,PHY、MAC、SERDES是什么?和芯片是什么关系?CPU、ASIC又要如何区别?……让我们带着这些问题,进一步认识交换芯片。

1、PHY、MAC、SERDES眼花缭乱?

1)PHY芯片:工作在物理层,一般称为端口收发器/以太 收发器,实现802.3物理层相关规范。

2)MAC芯片:工作在数据链路层,实现802.3数据链路层相关规范。

3)SERDES:串行器和解串器,在交换机领域负责芯片内部并行信 和链路上串行信 的相互转换,连接MAC和PHY。

补充来说,我们需要认清 卡和交换机芯片的区别: 卡是L2设备,内部集成了PHY和MAC;交换机是L2设备,交换芯片集成了MAC,通过SERDES连接外置的PHY芯片或光模块。

2、CPU、ASIC傻傻分不清?

1)首先,CPU/ASIC都是芯片概念的子集,CPU是常应用于计算机领域的芯片,ASIC是常应用于交换机领域的芯片。

2)其次,随着VLAN技术的普及, VLAN间路由需求逐级强烈。但路由器端口速率低且成本高,限制了 络规模,故三层交换技术发展开来。早期三层交换是基于CPU计算路由,转发效率低下。

为实现线速转发,专用ASIC芯片在交换机领域开始盛行。ASIC芯片的计算能力和计算效率都直接根据特定的算法的需要进行定制的,所以其可以实现体积小、功耗低,高可靠性,保密性强,计算性能高,计算效率高等优势。

可编程交换芯片顺势而生

在ASIC芯片时代, 络的 文处理和转发逻辑全部被蚀刻在硬件芯片中,由完全线速的芯片逻辑完成,软件不再参与这些过程,从而让 络的性能得到突发猛进的提升。但是,随着IT业务的不断发展,上层业务与控制软件对底层 络的特殊需求也逐渐涌现出来。

传统交换芯片限制上层业务软件

例如,如果能够将一些类似于NAT(Network Address Translation, 络地址转换)或SLB(Server Load Balancer,服务器负载均衡)等常用的功能下移到底层交换芯片中实现,就能够将整个业务在 络上的处理性能大幅提升,并且大幅降低业务自身的部署复杂度,从而使得系统的整体效率得到提升。然后,这样的需求在传统交换芯片时代是不可能被满足的。

可编程交换芯片(programmable switching ASIC)就是在这样的背景下应运而生的。

特别是,随着传统 络向开放 络演进,交换芯片可编程能力的重要性凸显。根据Omdia预测,至2024年可编程芯片在数据中心交换芯片出货占比将达到23%,2019-2024年CAGR达26%,保持持续提升态势。

1、可编程交换芯片是什么

顾名思义,可编程交换芯片最重要的特点在于可编程。可编程的意思是说,我们可以灵活在 络芯片上添加新的 络协议或者新的 络功能,而不需要重新设计一款新的芯片。可编程 络芯片主要由协议的解析器和处理模块组成的流水线两部分组成。解析器用于提取 络数据包的各种数据,而流水线则根据这些数据进行操作以及更新芯片内存上的状态。

2 、可编程交换芯片VS传统非可编程交换芯片

可编程交换芯片与传统交换芯片最大的区别就在于:传统交换芯片将 文处理和转发逻辑固化,可编程交换芯片的 文处理和转发逻辑是能够通过软件来按需调整的。因此,交换系统的设计开发者通过可编程交换芯片提供的高级编程语言,按照上层业务系统的需求开发芯片的 文处理和转发逻辑,然后将这样的逻辑下载到可编程交换芯片的处理流水线中,可编程交换芯片就可以按照这些定制的流程来处理 络流量和 文。

可编程交换芯片为上层业务软件解锁

3、可编程交换芯片带来的改变

1)在以可编程交换芯片为核心的交换系统中,业务与控制软件不再受限于底层芯片的能力,可以根据自身的需求进行开发与定制;

2)通过为不同的需求、不同的场景定制不同的 文处理和转发逻辑,芯片的各条流水线能够协同工作,在不损失系统整体性能前提下,将这些场景的需求在芯片的 文转发层面实现,从而使得系统整体的效率大幅提升。

当然,可编程交换芯片的硬件载体依然是ASIC与FPGA(Field Programmable Gate Array,现场可编程门列)的结合体,集成在芯片中的硬件资源(片载内存、流水线等)毕竟是有限的,因此也就不可能无限地将所有的 络功能全部在芯片中编程实现。但是,在当前的 络应用环境中,将一些常见的 络功能转移到芯片中以可编程的形式实现已经是绰绰有余了。

从其实现逻辑和所达成的效果来看,可编程交换芯片不仅是一次交换芯片硬件技术的发展,更是SDN(Software Defined Network,软件定义 络)这一理念在支撑 络的硬件芯片层面的一次伟大革新。可编程交换芯片让 络在保持高性能的前提下,前所未有地接近了软件定义这一未来发展趋势。

基于可编程交换芯片的实践

最后,我们来看一看可编程交换芯片的实践:

我们先从交换机在 络中扮演的角色说起,在云 络中,构成底层 络的交换机其实在不同的位置上扮演着不同的角色,云 络其实也对这些不同的角色提出了不同的需求。

云 络中的交换机扮演的不同角色

上图是一个典型的Spine-Leaf架构的云 络。在这个云 络中,所有的交换机其实被分为三种不同的角色(在实际环境中,因为Leaf交换机往往被部署在每个机架的顶部,因此也被称为ToR(Top of Rack)交换机):

1、Spine交换机,构成云 络的骨干交换机。

2、Server ToR,位于物理服务器机柜的顶部、将所有服务器接入云 络的交换机。

3、Gateway ToR,位于 关设备机柜的顶部、连接云与外部世界(Internet或云的其他部分)的交换机。

显而易见,上述的三种角色在云 络的不同位置承担了不同任务,它们需要处理的流量的特征、所需要花费硬件资源的配比等都是不同的。在传统交换芯片构成的 络中,我们只能用一套固定的处理逻辑来应对这些不同的需求,但是在可编程交换芯片的 络中,情况就不同了。

根据不同的场景动态加载不同的转发逻辑

可编程芯片能够为不同角色的交换机编制不同的转发逻辑、硬件资源分配配比:

1、对于Spine交换机来说:最关键的任务在于提供简单、线速的三层多路径转发通道,同时,在Asterfusion的协议无限云 架构中,要求其能够承载较大的二层转发表项即可。

2、对于Server ToR来说:最关键的任务在于提供虚拟计算节点世界的感知、虚拟 络的卸载和转发,同时,在Asterfusion的协议无限云 架构中,只要求其能够承载本地的二层转发表项即可。

3、对于Gateway ToR来说:最关键的任务在于承载、处理 关之间复杂的控制、转发策略和大容量的路由能力,同时,在Asterfusion的协议无限云 架构中,对于其二层转发表项的能力是非常低的。

当然,在上述架构中,我们完全也可以采用集中式或分布式的模型,将NAT、SLB等一些功能分布到Gateway ToR和/或Server ToR上。

星融元的全线云 络交换机产品,均采用可编程芯片架构。基于星融元的云 络交换机,云计算的运营者能够轻松搭建软件可编程、随需而变的云 络为云中业务构建一个灵活敏捷的 络平台。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月3日
下一篇 2022年8月3日

相关推荐