大数跨境
0
0

从系统架构角度谈谈PCIe和XPU芯片

从系统架构角度谈谈PCIe和XPU芯片 Socnoc
2021-08-04
0
导读:今天我们从系统架构的角度介绍一下数据芯片出现的技术趋势,和边缘智芯认为数据芯片的技术路径。

    前几篇文章我们从网络模型上介绍了 DPU、IPU和XPU的特点。DPU、IPU、XPU都可以看成一种数据芯片,是以数据为中心的时代的必然产物。通过类比网络七层模型,我们将XPU定位于L2-L3,DPU定位L4-L7,IPU定位L7。目前大部分DPU创业团队来之以太网公司(Marvel、Juniper、Mellanox、Cisco,Huawei),具备很强的以太网背景,技术路线基本上是通过增加SoC/FPGA的方式增强以太网交换机的计算能力,将网络计算下沉到特定芯片中来。

    今天我们从系统架构的角度介绍一下数据芯片出现的技术趋势,和边缘智芯认为数据芯片的技术路径。


一、数据吞吐量催生出来的芯片


    上面这个图大家应该在很多场合都见过。从2018年开始,网络吞吐率(throughput)超过了CPU计算速度(MIPS),即传统的单CPU已经无法处理单网卡的数据了。在这种背景下,专门处理数据的芯片应运而生。于是乎2020年开始各路公司加入数据芯片战场,并给这个芯片取名DPU。

     这个逻辑看上是对的,但为什么数据吞吐率超过CPU之后就要诞生DPU呢?原因我们得从系统架构设计说起。

 

二、计算架构1984-2009:北桥为中心


    最开始大概1980s开始,Chip and Technologies公司(历史上第一个Fabless设计公司,被Intel收购演变成Inel系统部门)为了解决CPU分级管理不同设备的问题,设计了全球第一款北桥/南桥芯片。其中北桥负责高速设备,比如DDR和GPU的数据交换,而南桥负责网卡,硬盘的数据交换。


    在这种架构中,数据交换的核心其实是北桥和南桥芯片,而CPU只是负责计算和逻辑处理而已,北桥则要处理FSB、Memory Bus,PCI等不同协议之间的数据交换。我们熟知的Nvidia在这个时代芯片组市场占有非常重要地位。是什么时候CPU变成中心的呢?

 

三、计算架构2010-2021:CPU为中心


    随着外部设备(GPU、SSD、网卡等)的接口逐渐变成PCIe标准,北桥的功能变得简单,基本上只需要处理Memory Bus(内存总线)和PCIe总线即可。于是2009年Intel将北桥功能分解成内存控制器(MMU)和PCIe控制器(PCIe Controller)集成到CPU中来,从此CPU作为所有高速数据交换的中心。

    从Nehalem架构开始,“CPU + 南北桥”的架构被“CPU+chipset”的架构取代,而其中chipset芯片组负责处理一些低速和历史遗留的协议转换。这种架构的好处是减少了芯片数量,拉近了高速设备和CPU的距离,但缺点却是增加了CPU设计的复杂度,同时存在以下几个问题:


3.1 多CPU系统中CPU数据路径不对称和额外开销


    在多个CPU系统中第二颗CPU的位置就不是中心位置了,所有从网卡流入的数据都需要通过第一颗CPU“转发”给第二颗CPU,才能进行计算,无疑增加了一次CPU的开销,同时路径不同导致的延迟不同也对高性能计算造成了不小影响。虽然当前发展了多个技术来降低这个开销,但随着100G,200G,400G的普及,这个问题变得越来越严重。


    多CPU架构中CPU的浪费来源:1)流量处理计算,2)其他核心等待的延迟。互联网上有一个形象的图解释这个问题。随着CPU核心数量越来越多,这种“等待”提供数据的核心也就越来越多,资源利用率也就越来越低。


 

3.2 多PCIe设备数据交换路径不一致


    和多CPU类似,多GPU设备也存在数据路径不一致问题。不同的CPU(PCIe Controller)管理不同的PCIe设备,所有数据交换的时候需要多个PCIe Controller协同,于是出现了数据多次经过内存的问题。这个延迟对于GPU、AI这种计算非常密集的场景至关重要,甚至成为当前多GPU计算性能提升的核心制约因素。所以从这个角度看,Nvidia进入DPU领域势在必行。

同一个网卡数据在不同GPU之间路径不一致

  

3.3 PCIe设备总线速率已经超过了CPU和CPU互联速率


    在上面提到,北桥南桥的出现是因为CPU的速率远远超过IO速率,从而采取的一个分级管理架构。但随着PCIe速率的提升,PCIe5.0的速率已经超过了CPU和CPU之间的互联速度。所以“分久必合、合久必分”,现在PCIe Controller又具备从CPU独立出来的历史机会了!

多CPU系统中各种线路速率,网络、PCIe、UPI、DDR4


    系统架构的设备总线控制芯片(PCIe Controller)是数据交换的核心芯片,伴随PCIe接口速率的提升,PCIe Controller(PCIe Switch)将发挥更多核心功能。

 

四、计算架构的创新:PCIe为中心的计算时代


    计算架构的创新已经成为一个共识。不管是Nvidia、Fungible的DPU还是Intel的IPU,除了计算模块之外都加入了PCIe控制器模块。


4.1 Fungible F1中的PCIe模块

Host Unit其实是PCIe的EP/RC芯片



4.2 Nvidia DPU中的PCIe Switch

Nvidia比较明了,以太网+SoC+PCIe Switch模块



4.3 AWS Nitro解决方案中的PCIe Switch

Nitro具体架构不清楚,但从互联结构上看,也是具备一个PCIe Switch模块的

 

    随着数据芯片的火热,PCIe模块会越来越多。而数据芯片本质上是通过以太网流量和PCIe数据之间的转换计算、和分发过程。

 

4.4 数据芯片架构总览


    综上,我们将新架构芯片或者数据芯片归纳如上图,三大模块,一个NoC。其中NoC可以看成一个PCIe Controller。


五、XPU是基于PCIe技术的数据芯片


    由于边缘智芯团队具备多年网络协议、PCIe系统、和数据中心研究、工作和创业经验,不同于其他数据芯片公司,做大而全的芯片,边缘智芯专注PCIe技术栈,按照“简洁即是创新”的技术思路,我们只做高速数据转发。


XPU:数据从网卡进入XPU,然后分发给CPU、GPU、SSD等


CPU为中心的业务数据流



XPU为中心的业务数据流

    在XPU为中心的架构中,网卡无需智能,只需要提供基本的网络协议功能即可。


最后我们总结一下系统总线技术发展趋势:

  • 1984年,为了节约CPU资源,低速设备由专用设备管理,诞生南北桥芯片;

  • 2009年,为了提供更快的CPU和设备通讯效率,CPU集成PCIe控制器,高速设备控制芯片退出历史舞台;

  • 2021年,CPU处理速度已经落后设备流量(网卡)和处理能力(GPU),高速设备管理芯片(PCIe Controller)又将从CPU中分离出来,成为独立芯片XPU

螺旋式发展的计算机架构历史

    

    写到最后,看似一个简单的集成和分离,但其中配套的操作系统和软件相当复杂。未来我们将介绍边缘智芯的另外一项核心技术:如何定义和适应新的软件架构!



PS:总线技术是一个系统架构方面的技术,一般对软件是透明的,主要在操作系统层面考虑,或者做系统级优化情况下考虑。简而言之,系统芯片的设计必须是软硬件紧耦合设计。

【声明】内容源于网络
0
0
Socnoc
边缘智芯是一家创新型芯片和系统架构设计公司。边缘智芯的技术理念为利用超低延迟的组网芯片构建低功耗、多并发、高性能、一机多卡、一芯多机的可组合的服务器和服务器集群。
内容 24
粉丝 0
Socnoc 边缘智芯是一家创新型芯片和系统架构设计公司。边缘智芯的技术理念为利用超低延迟的组网芯片构建低功耗、多并发、高性能、一机多卡、一芯多机的可组合的服务器和服务器集群。
总阅读13
粉丝0
内容24