Processing math: 0%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

在网存储系统研究综述

汪庆, 李俊儒, 舒继武

汪庆, 李俊儒, 舒继武. 在网存储系统研究综述[J]. 计算机研究与发展, 2023, 60(11): 2681-2695. DOI: 10.7544/issn1000-1239.202220865
引用本文: 汪庆, 李俊儒, 舒继武. 在网存储系统研究综述[J]. 计算机研究与发展, 2023, 60(11): 2681-2695. DOI: 10.7544/issn1000-1239.202220865
Wang Qing, Li Junru, Shu Jiwu. Survey on In-Network Storage Systems[J]. Journal of Computer Research and Development, 2023, 60(11): 2681-2695. DOI: 10.7544/issn1000-1239.202220865
Citation: Wang Qing, Li Junru, Shu Jiwu. Survey on In-Network Storage Systems[J]. Journal of Computer Research and Development, 2023, 60(11): 2681-2695. DOI: 10.7544/issn1000-1239.202220865
汪庆, 李俊儒, 舒继武. 在网存储系统研究综述[J]. 计算机研究与发展, 2023, 60(11): 2681-2695. CSTR: 32373.14.issn1000-1239.202220865
引用本文: 汪庆, 李俊儒, 舒继武. 在网存储系统研究综述[J]. 计算机研究与发展, 2023, 60(11): 2681-2695. CSTR: 32373.14.issn1000-1239.202220865
Wang Qing, Li Junru, Shu Jiwu. Survey on In-Network Storage Systems[J]. Journal of Computer Research and Development, 2023, 60(11): 2681-2695. CSTR: 32373.14.issn1000-1239.202220865
Citation: Wang Qing, Li Junru, Shu Jiwu. Survey on In-Network Storage Systems[J]. Journal of Computer Research and Development, 2023, 60(11): 2681-2695. CSTR: 32373.14.issn1000-1239.202220865

在网存储系统研究综述

基金项目: 国家自然科学基金项目(61832011)
详细信息
    作者简介:

    汪庆: 1997年生. 博士. 主要研究方向为存储系统和内存系统

    李俊儒: 1997年生. 博士研究生. 主要研究方向为可编程网络和分布式存储系统

    舒继武: 1968年生. 博士,教授,博士生导师. 主要研究方向为非易失内存存储系统与技术、存储安全与可靠性、并行与分布式计算

    通讯作者:

    舒继武(shujw@tsinghua.edu.cn

  • 中图分类号: TP302

Survey on In-Network Storage Systems

Funds: This work was supported by the National Natural Science Foundation of China (61832011).
More Information
    Author Bio:

    Wang Qing: born in 1997. PhD. His main research interests include storage systems and memory systems

    Li Junru: born in 1997. PhD candidate. His main research interests include programmable network and distributed storage systems

    Shu Jiwu: born in 1968. PhD, professor, PhD supervisor. His main research interests include non-volatile memory systems and technologies, storage security and reliability, and parallel and distributed computing

  • 摘要:

    以可编程交换机和智能网卡为代表的可编程网络设备在数据中心被越来越广泛地应用,它们支持在网络数据传输路径上执行自定义的数据处理逻辑,这为构建高性能的在网存储系统带来了新的机遇. 然而,可编程网络设备的硬件资源限制较多,如何充分发挥它们的优势、最大限度地加速存储系统仍面临着诸多挑战. 系统地综述了在网存储系统的研究进展,首先介绍了可编程网络设备的硬件结构与性能特征,并基于此总结了构建高性能在网存储系统面临的两大挑战:软硬件分工以及系统容错. 然后根据可编程网络设备执行的任务(缓存、协调、调度、聚合)对现有的在网存储系统进行分类和阐述,并以多个在网存储系统为实例分析对应的设计难点以及软件技术. 最后指明了在网存储系统进一步研究中需要着重探索的问题,包括交换机与网卡的协同、安全、多租户以及自动卸载.

    Abstract:

    Programmable network devices, represented by programmable switches and SmartNICs, are increasingly used in modern data centers to support the execution of customized data processing logic on network data transmission paths, which brings new opportunities for building high-performance in-network storage systems. However, programmable network devices have hardware resource limitations (e.g., limited expressive powers and small memory space), and there are still many challenges to fully utilize their advantages and maximize the acceleration of storage systems. We systematically review the recent research progress of in-network storage systems. First, we describe the hardware architecture and performance characteristics of programmable network devices, and based on this, we summarize two major challenges in building high-performance in-network storage systems: 1) division of labor between hardware and software, 2) fault tolerance of the storage systems. Then, according to the tasks performed by programmable network devices (data caching, distributed coordination, request scheduling, data aggregation), we classify and describe existing in-network storage systems. Moreover, using several examples of in-network storage systems, we analyze corresponding design difficulties and software technologies. Finally, we indicate open problems that need to be explored in further research on in-network storage systems, including switch-NIC collaboration, data security, multi-tenancy, and automatic function offloading.

  • 集成电路(integrated circuit,IC)的制造工艺随着摩尔定律发展至今,以硅为基础的半导体技术发展正面临挑战[1]. 随着IC产业进入后摩尔时代[2],芯片的晶体管集成规模增长速度放缓,传统的通过缩小CMOS集成电路尺寸实现芯片性能提升的方法亟需革新. 芯粒(Chiplet)技术被半导体产业视为一种可以延续摩尔定律的解决方案[3],在单片晶体管数量受限的情况下,Chiplet架构能够通过先进封装技术集成多个“小芯片”(即Chiplet),以支撑芯片整体晶体管数量继续提升. 国外的芯片设计厂商Intel[4-5],AMD[6-8]等都在积极布局,而目前国内仍受限于先进工艺制造能力,因此芯粒技术路线的探索具有现实意义和迫切需求.

    基于Chiplet架构的芯片其各个Chiplet通常只实现完整芯片的部分功能,尺寸相比于传统的单片片上系统(system on chip,SoC)更小,因而较小的面积使其在制造时具有更高的良率. 作为完整芯片的组成部分,Chiplet可以被视为硬件“IP”,能够在不同芯片中实现复用,从而降低芯片定制化的设计门槛和制造成本,缩短芯片开发时间. Chiplet架构在异构集成方面也具有天然优势,基于先进的集成封装技术,可以更好地应对物联网(Internet of things,IoT)、人工智能(artificial intelligence,AI)、5G和大数据[9-12]等新兴领域以及复杂应用场景对芯片的带宽、延时、算力以及功耗等指标的多样化、定制化需求.

    相比于SoC,基于Chiplet集成的系统具有更丰富的设计多样性,与此同时Chiplet的划分、布局以及互连等方面的问题也使得设计空间探索(design space exploration,DSE)更为复杂. 在传统的通用处理器设计流程中,通常以规范化的指标如能量延迟积(energy-delay product,EDP)、能量延迟面积积(energy-delay-area product,EDAP)等作为优化目标,使用合理的DSE算法搜索最优的微架构参数配置. Chiplet架构的DSE问题由于面临着更多维度的综合考量,需要在性能、功耗、面积(performance power area, PPA)与成本等评估指标上进行综合权衡.

    在芯片架构设计早期,设计者通常会采用体系结构模拟器进行设计空间探索,对目标设计进行建模与仿真,快速获取相关评估指标以支持进一步量化分析. 现有开源的体系结构模拟器(Gem5[13],GPGPU[14],Sniper[15]等)在面向Chiplet架构模拟时存在诸多不足,例如缺少完整的Chiplet体系架构建模以及模拟过程缓慢等问题. 由于Chiplet架构引入了新的设计模块和设计参数,如D2D(die-to-die)接口和互连延迟等因素,需要在建模和评估时考虑更多的设计细节. 此外设计空间探索是一个反复迭代的过程,包括设计、模拟、评估在内的完整流程,通常软件模拟器的模拟频率只能达到kHz级别[16],在模拟环节的耗时极大制约了设计空间探索的效率.

    针对以上问题,本文面向Chiplet设计空间探索,建立了一个快速的自动化设计、模拟和评估框架——FireLink,以应对Chiplet技术迅速发展所带来的芯片架构和技术变化. 旨在帮助相关领域研究者快速验证和评估Chiplet架构设计策略,更好地探索Chiplet架构的潜力和瓶颈.

    本文的主要贡献包括3个方面:

    1)搭建了一个面向Chiplet架构进行敏捷设计、快速模拟和全面评估的综合框架FireLink,该框架通过自建脚本实现多种开源工具间输入输出适配,提供了从输入设计参数、生成寄存器传输级(register transfer level,RTL)硬件描述、软件模拟、硬件实现到设计评估输出的自动化工作流程;

    2)构建了面向Chiplet架构的设计模型和一个全面的综合评估指标PPAC(performance power area cost),反映性能、功耗、面积、成本,实现了Chiplet架构设计的多层次模拟和全面评估;

    3)基于机器学习中的决策树算法提出一种对历史设计参数建模、预测并生成符合规则的设计参数的方法,以此裁剪设计空间规模,提升设计空间探索的效率.

    传统的SoC难以满足人工智能、高性能计算和数据中心等应用领域不断增长的高算力需求[17],基于Chiplet集成的芯片设计方法凭借其更高的性价比获得越来越多的关注. 但是基于传统的EDP,EDAP,PPA等指标的评估方法难以体现Chiplet架构的单位算力成本优势,因此亟需一种能够准确评估Chiplet综合“价值”的指标,进而凭借其更好地指导前期设计优化.

    目前面向Chiplet架构评估的相关研究普遍聚焦于单一的评估指标,缺乏完整的框架,难以综合分析设计、性能和成本之间的相互关系. Chiplet Actuary[18]提出了一个定量的成本模型,以帮助设计者在Chiplet设计初期粗略评估成本. 而Ahmad等人[19]在面向Chiplet异构集成的成本和良率分析中展示了更多细节,包括材料类型、测试方法、操作流程等,从而确定基于SoC分解的Chiplet实现的可行性. 虽然文献[20]对2.5维的集成电路设计进行PPA、信号完整性(signal integrity,SI)和电源完整性(power integrity,PI)的分析,但是缺少对成本的量化评估. 这些工作侧重于Chiplet架构设计过程中的某一个阶段,缺乏一个全面的评估框架来同时考虑性能、功耗、面积和成本等多个维度.

    目前面向Chiplet架构的建模和模拟技术研究正在广泛开展,一些研究团队利用商业EDA工具建立逻辑设计与物理实现的协同设计和仿真框架. 例如Kim等人[20]面向异构2.5维设计开发了一个高度集成的设计仿真流程,Kabir等人[21]提出了类似的前后端协同的处理器设计方法. 这一类型的工作依赖于商业的EDA工具和数据集,导致了其有限的适用范围. 虽然商业EDA工具和工艺库能够提供详细的芯片信息(功耗、面积、寄生效应、可靠性等),但是由于这些工具和数据致力于商业用途,存在许可证获取困难、使用规范严格、学习成本高等限制,使得其用于学术研究的效果并不理想. 此外,后端设计需要大量的计算资源和时间投入,设计参数的任何微小修改都需要完成长链路耗时的串行流程. 这种高昂的时间花费和成本开销限制了专业EDA工具在芯片早期开发设计中的进一步推广和应用. 因此本文的研究选择基于开源项目进行拓展,并且对Chiplet架构模拟过程进行了加速,减少后端物理实现流程对设计空间探索的影响.

    体系结构模拟器通过对目标架构建模、模拟和量化分析来指导设计,能够缩短芯片设计时间、降低开发成本[22],这些优势使其在芯片早期开发时具有突出地位. 周俊成[23]通过将RTL软件模拟器Sniper与Booksim 片上网络(network-on-chip, NoC)模拟器结合来对Chiplet架构设计进行联合模拟. Zhi等人[24]提出了一种使用开源模拟器为多Chiplet集成系统构建模拟器的通用方法,能够支持对大规模系统的并行模拟,实现了Chiplet间和Chiplet内互连的精确建模,并开发了针对Chiplet集成系统的分布式和共享内存模型. 虽然软件模拟器在研究中被广泛应用,但是对于复杂设计问题而言,其kHz级别的模拟运行速度严重影响了设计空间探索的效率,尤其需要对模拟过程进行监控和提取关键信息时,其速度会变得更加缓慢.

    软件的模拟速度难以满足Chiplet设计空间探索的需求,尤其对于在设计初期需要对目标设计快速进行迭代优化的情况下,模拟的速度是设计者必须考虑的关键问题. 基于FPGA加速的模拟方法能够以更高的频率运行模拟系统,但需要编写相应的寄存器传输级硬件设计代码且对设计修改困难. 本文所做的工作很好地权衡了模拟速度与设计空间探索效率之间的关系,基于Chisel[25]敏捷设计语言的设计框架能够快速实现Chiplet微架构和互连网络结构集成,然后自动生成相应的寄存器传输级硬件描述并通过FPGA加速模拟过程.

    Chiplet架构相较于SoC的设计空间更为复杂、模拟难度更大,因此研究者们在面向Chiplet架构的设计空间探索的工作各有侧重. 例如只关注于Chiplet架构下基于中介层的先进封装技术对片上网络设计[26-29]的影响,或是2.5维集成设计的物理特性(热效应、电气性能、应力等)仿真[30-32]. Pal等人[33]开发了基于Chiplet组装的处理器设计空间探索框架,目标是确定最优的Chiplet组合. 此前提到的Kim等人[20]的研究领域只专注于2.5维集成封装的芯片设计空间探索,通过完全自动化的架构、电路和封装全阶段EDA流程,分析并权衡基于中介层的Chiplet集成方案. 这些工作聚焦于先进封装,强调2.5维或3维集成电路设计的量化分析,但是建模缺乏对Chiplet微架构细节的考量.

    还有一些研究者以某一特定应用领域为方向探索Chiplet架构的设计空间,例如Puzzle[34]面向深度学习领域,Chopin[35]关注于成本效益, Lan等人[36]的研究工作以神经形态处理器为目标. 相比于这些研究者,更专精于某一特定目标进行基于Chiplet的设计空间探索研究,本文提出的面向Chiplet设计空间探索的评估框架是更基础性的、广泛适用的,能够对基于Chiplet集成的芯片设计方案的可行性进行全方位的分析和评估.

    本节将介绍FireLink的整体框架,以及框架集成的各个开源工具发挥的作用,并描述如何面向Chiplet架构进行设计、模拟和评估. 为便于阐述,明确3个术语在本文中的具体含义:

    1)Chiplet. 完整功能的芯片可以按照一定规则划分为多种类型的模块,然后由单个或多个模块集成的,具有特定功能的Die.

    2)Die.由晶圆切割的未经封装的物理器件.

    3)模块. 具有某种特定功能的集成电路.

    图1展示了FireLink的框架示意图,相关的工具及其功能如表1所示. FireLink基于开源平台Chipyard[43]进行拓展,Chipyard是一个基于Chisel的硬件设计平台. 框架集成了多种开源工具和不同种类的面向RISC-V 系统的RTL生成器,能够支持异构多核芯片开发的硬件设计、模拟和实现全流程. 这些部件间具有良好的互操作性,但是由于版本兼容性以及严格的输入限制问题,它们之间的互联并非天然适配,需要对传输信息进行专门处理. 例如Verilator并不支持 “finish()”和“fatal()”等不可综合的语句以及逻辑信号“X”的编译,Yosys[44]综合前也需要对代码进行语法检查. 通过创建一系列的脚本解决了这些问题,包括执行错误处理、输出数据采集和提取关键参数,整个流程能够自动化执行.

    图  1  FireLink框架示意图
    Figure  1.  Illustration of FireLink framework
    表  1  Chipyard支持工具的功能
    Table  1.  Functions of the Tools Supported by Chipyard
    工具 功能 目标
    Rocket Chip[37] RISC-V SoC生成器 处理器微架构
    Constellation[38] NoC 生成器 互连网络
    Verilator[39] 软件模拟器 软件模拟器
    RISC-V Tools[40] 系统开发工具链 可执行测试程序
    FireSim[41] 硬件模拟框架 硬件加速模拟
    FireMarshal[42] 工作负载生成器 自定义工作负载
    下载: 导出CSV 
    | 显示表格

    Chiplet的微架构设计依托于Rocket Chip生成器实现建模,它是一个基于Chisel语言的参数化的硬件生成器. 通过Chisel包装的大量开源IP语料库,能够快速地构建一个RISC-V系统所需的所有功能单元. 与此同时,Constellation作为一个多核互连网络的生成器已经被集成到FireLink框架中,为基于Chipyard构建的硬件设计建立互连网络. 该互连结构具有良好的灵活性和可配置性,能够支持任意有向图网络拓扑,通过物理结构、数据流方向和路由设置3个层次设计互连网络的方法极大简化了Chiplet之间的通信建立过程. 于是FireLink在构建分层的拓扑结构的基础上,可以实现精确的Chiplet内与Chiplet间的互连网络建模.

    多核系统由于共享缓存的存在,为保证缓存一致性带来的死锁问题是体系结构设计的难题. 虚拟网络是解决死锁的一种有效方法,网络能够通过虚拟通道传输不同类型的报文,但是设计额外的虚拟通道会产生高功耗和大面积,尤其在核数目较多的体系结构下这种负面的影响尤为突出[45]. 在FireLink框架下支持配置虚拟通道的互连网络设计,能够确保网络是无死锁的,这有利于快速构建网络而无须考虑复杂的流关系.

    为了兼顾准确性和模拟速度,FireLink框架重新设计了建模与模拟过程,对原有固定的标准模拟流程与功能部件解耦,并把模拟区分为基于软件的模拟和基于FPGA加速的模拟. 在进行软件模拟时,编译器Verilator根据预先的设计架构描述(Scala)将生成的SystemVerilog编译为可执行的模拟器代码,通过运行RISC-V Tools提供的基准测试程序集进行模拟.

    FireSim是一个通过FPGA加速模拟过程的硬件模拟平台,支持基于Chipyad平台建立的目标架构模型,能够对其进行周期精确的全系统模拟. FireSim对目标设计模型的寄存器传输级硬件描述进行综合并生成门级网表,综合后的网表映射到FPGA内部资源实现具体的电路,然后设计文件转换为比特流并被下载部署在本地FPGA上,由其进一步执行加速模拟. FireMarshal是面向RISC-V系统的工作负载生成工具,支持在FireSim流程中生成自定义程序负载,保证了测试程序的可拓展性. 工作负载由一系列“作业”组成,每个“作业”能够对应分配到目标系统中的多个逻辑节点上并行处理.

    FireLink框架能够对Chiplet架构设计的关键指标进行量化评估,包括性能、面积、功耗和成本. 在模拟过程结束时能够从模拟的运行时间、周期数和频率等信息中量化性能. 对面积指标的推算,凭借引入开源的Verilog综合和验证工具Yosys,对输入的RTL进行综合,生成目标设计架构的网表信息,以此来估算各模块的面积大小. FireSim通过对设计网表的电路实现,提供了功耗报告,这将作为芯片设计功耗量化指标的参考值. 为全面评估Chiplet架构设计在性能、功耗、面积与成本上的综合“价值”,框架引入了成本模型并提出了PPAC评估指标,相关原理和可行性将在2.3节中详细介绍.

    面向Chiplet架构设计空间探索领域,提出的框架FireLink相比于其他DSE工具和研究工作的优势在于建模的完整性和更快的模拟速度,关键指标对比如表2所示. 由于模拟目标、工作负载和系统配置等差异,模拟速度与精度难以进行横向比较,虽缺乏直接可比性,但是FireLink框架能够支持FPGA加速,这项功能确保了在对同等规模目标设计进行模拟时能够更高效.

    表  2  DSE工具和研究工作对比
    Table  2.  Comparison of DSE Tools and Research Work
    工具/方法 NoC 速度 评估指标 评估精度
    Gem5 很慢 性能
    GPGPU 很慢 性能
    HGBO-DSE[46] PPA
    BOOM-Explorer[47] 性能、功耗
    ScaleHLS[48] 很快 性能
    AutoDSE[49] 性能
    SoC-Tuner[50] PPA
    SODA[51] 很慢 PPA
    MOOS[52] 很慢 性能、功耗
    FireLink(本文) PPAC
    下载: 导出CSV 
    | 显示表格

    本文提出的框架支持了更多的建模细节,包括功能部件、微架构、互连网络以及Chiplet层次的系统架构设计. FireLink有效解决了传统的软件模拟速度慢导致的设计空间探索效率不高的问题,加速模拟的机理是基于Chisel直接生成寄存器传输级的硬件描述的过程,在框架下生成的是目标设计架构的模拟器而不是一个硬件原型,对于每一个目标设计的时钟都将由动态可变的多个FPGA时钟来进行模拟[41]. 另一方面,FireLink提出了对性能、功耗、面积和成本进行全面评估的指标PPAC,实现了对这些参数的自动化提取和准确量化,这为快速迭代和验证架构设计提供了有力的支持.

    完整的SoC系统由一系列不可分割的基础模块构建,从SoC分解到Chiplet的过程认为这些基础模块是不会更改的(D2D额外考虑). 这些模块相互组合或独立制造,为单个Die构成了不同的 chip ,即Chiplet,再通过Chiplet互连集成组成Chiplet架构系统,这一过程与Chiplet的分区划分方式密切相关. 以 {k}_{j} {k}_{i}' 分别代表模块j和Chiplet i的数目,公式描述为:

    \begin{array}{c}{C}_{\mathrm{S}\mathrm{o}\mathrm{C}}\leftarrow module=\left\{{m}_{1},{m}_{2},… ,{m}_{j}\right\},\end{array} (1)
    \begin{array}{c}{chip}_{i}=\left\{{m}_{2}^{{k}_{2}},{m}_{3}^{{k}_{3}},… ,{m}_{j}^{{k}_{j}}\right\},{m}_{j}\in module,\end{array} (2)
    \begin{array}{c}{C}_{\mathrm{C}\mathrm{h}\mathrm{i}\mathrm{p}\mathrm{l}\mathrm{e}\mathrm{t}}=\left\{{chip}_{1}^{{k}_{1}'},{chip}_{2}^{{k}_{2}'},… ,{chip}_{i}^{{k}_{i}'}\right\}.\end{array} (3)

    实验创建了一个SoC模型作为参照示例,其由8个Rocket Tile、4个L2 Bank和4个内存访问模块组成,通过4×4 的Mesh网络进行互连集成. 其中每个Rocket Tile微架构被设计为Rocket Core(Chisel编写的五级有序标量处理器内核)、PTW (page-table walker)、一级指令缓存(L1 instruction cache, L1I)和一级数据缓存(L1 data cache, L1D). Tile架构内还可配置一个Rocket核定制协处理器RoCC(Rocket custom co-processor)连接到内核,以在特定应用领域进行加速.

    图2所示,我们基于SOC划分对Chiplet架构进行建模. 考虑到Chiplet集成的复用特点,将SoC可以划分为Rocket Tile、L2 缓存和内存通道3种模块作为示例,它们可以被分别设计为独立的Chiplet,也可以相互组合成为不同类型的Chiplet. Chiplet间的互连是Chiplet架构的关注点,在先进的2.5维和3维封装中,通常采用基于NoC的互连结构[53].

    图  2  芯片建模示意图
    Figure  2.  Illustration of chip modeling

    相较于单芯片的网络结构,Chiplet间的互连网络面临着更复杂的互连挑战,即:

    1)层次化网络.Chiplet架构下的互连不仅要处理Chiplet内的通信,还要跨越Chiplet边界实现Chiplet间高效的数据交换.

    2)各向异性互连. 由于Chiplet异构的可能性以及Chiplet尺寸的差异,互连结构需要支持不同Chiplet之间的通信延迟和带宽可独立配置.

    3)不规则拓扑. Chiplet的放置布局会影响互连设计方案,并且先进封装也一定程度上限制了互联网络的物理结构,容易导致不规则的拓扑结构.

    Chiplet架构的互连网络设计关键在于联系Chiplet内与Chiplet间的数据传输,实现这一目标依靠Constellation支持的丰富的可配置的物理规范,包括网络通道、路由器配置和终端的关键参数等. FireLink下互连网络建模支持的关键设计参数包括:虚拟通道数目、有效负载宽度、终端延迟、互连传输速度和拓扑结构等,基于这些参数的差异化配置,可以细致描述Chiplet互连结构的关键特征,使得互连结构能够适配Chiplet的特定需求. 例如Chiplet内/间的链路距离对传输速率的影响可以由通道速度与终端延迟表征,有效负载宽度能够根据每个Chiplet的数据传输需求和内外互连场景进行特异性配置.

    通过建立分层网络结构来描述Chiplet内部互连与Chiplet间互连的传输效率差异性,Chiplet架构的互连结构建模问题得以解决. 除了可参数化的设计因素以外,FireLink框架还支持路由算法、流量规范和虚拟通道分配策略等互连网络设计权衡. 能够精确到每个节点的配置功能为Chiplet的互连结构提供了充分自由的设计空间,由此物理的封装实现能够有效映射到互连结构设计中.

    所有的设计文件都使用Chisel 语言构建,Chisel是一种以Scala为基础开发的开源的硬件设计语言,由于Scala中支持了丰富的包、类和预定义硬件描述,FireLink框架下进行硬件设计是高度模块化、参数化的. 相对于Verilog,VHDL,SystemVerilog等传统的硬件设计语言,使用Chisel进行开源处理器的敏捷化设计和开发探索十分高效,能够将硬件模块设计的时间压缩50%以上,进而减少芯片验证与实现的迭代周期(30%以上) [54]. 当目标设计完成后,Chisel格式的设计文件通过Chisel编译工具链转换为一种名为FIRRTL的中间表达,FIRRTL进一步可以生成SystemVerilog 格式的寄存器传输级硬件代码,后续的模拟过程都是以此作为输入.

    在基于Chiplet集成的芯片设计初期对其成本进行估计是有必要的,设计者必须清晰了解芯片设计策略在成本上的潜在优势,因为这将影响芯片架构设计决策. 在相同成本下的PPA表现劣于SoC集成的Chiplet集成设计方案是不可接受的.

    为了对Chiplet架构进行准确的评估,验证设计空间探索的正确性和可靠性的切实需求. 本文面向Chiplet架构提出了一个PPAC评估函数,该函数基于芯片设计的性能、功耗、面积和成本4个关键参数. PPAC是一个综合的评估指标,其包含的4个输入对结果的影响程度是不一样的,例如性能提升10%并不能和降低10%的功耗相等. 所以基于加权平均法对性能、功耗和面积因素分别赋予权重.

    {I}_{\mathrm{P}\mathrm{P}\mathrm{A}\mathrm{C}}=\frac{\alpha \times performance+\beta \times {power}^{-1}+\gamma \times {area}^{-1}}{cost}, (4)
    \alpha +\beta +\gamma =1. (5)

    式(4)中αβ\gamma 是权重系数,权重值随设计目标和应用需求调整以控制设计优化方向. 例如面向低功耗的设计,从体系结构的层次考虑能够使芯片功耗优化幅度更显著[55]β的取值将适当增加. 其余4个参数performancepowerareacost分别是目标Chiplet架构设计的性能、功耗和面积的量化指标以及成本模型的输出,它们的值在FireLink的流程中获取,并且获取这些值的方法是解耦的.

    性能作为评价体系结构设计的关键参数,在设计验证中,将目标设计的硬件描述实例化并映射到FPGA,通过运行真实的应用程序以获取精确的性能指标. Vivado 软件的综合工具将目标设计描述的SystemVerilog代码综合成硬件,在此过程中可以从输出的功耗报告中获取功耗参数power的相关信息.

    面积参数的获取通常需要基于商业EDA工具(如Cadence[56],Synopsys[57]等)完成,但对于前期设计而言这是一个非常耗时的过程,严重影响设计空间探索过程中反复迭代优化的效率. FireLink框架通过引入了快速RTL综合工具Yosys,在设计后端将SystemVerilog文件综合为门级网表,获取总体设计的晶体管规模大小,以估算面积. 与此同时,在FPGA加速仿真流程中,当通过Vivado对硬件设计进行综合和实现时可以得到利用报告作为面积参数的辅助参考.

    成本模型参考了Chiplet Actuary[15]的工作,在此基础上依托FireLink和设计流程重新解释了成本模型,以更好地指导该框架下对Chiplet架构的设计空间探索. 主要变化在于成本模型中的设计成本,如式(6)所示.

    \begin{split} {cost}_{\mathrm{d}\mathrm{e}\mathrm{s}\mathrm{i}\mathrm{g}\mathrm{n}}=\;&\sum _{{m}_{i}\in M}\left({K}_{{m}_{i}}{N}_{{m}_{i}}\delta +{C}_{\mathrm{m}\mathrm{o}\mathrm{d}\mathrm{u}\mathrm{l}\mathrm{e}}\right)+\\ &\sum _{{c}_{i}\in C}\left({K}_{{c}_{i}}{N}_{{c}_{i}}\delta +{C}_{\mathrm{c}\mathrm{h}\mathrm{i}\mathrm{p}}\right).\end{split} (6)

    图3所示,Chiplet集成系统在设计成本上的特征表现在3个方面:

    图  3  成本模型示意图
    Figure  3.  Illustration of cost model

    1)额外的D2D功能模块的设计成本;

    2)Chiplet集成芯片需要支付与SoC相同的功能模块设计成本,除此之外其基本的集成单元——Chiplet是由模块集合M的子集实现的Die,每一种类型的Chiplet会产生额外的架构设计成本;

    3)Chiplet集成具有一个显著的特点,这种设计使Chiplet可以在广泛的系统中重复使用,即Chiplet被视为成本可摊销的“硬件IP”.

    为解决面向Chiplet架构的芯片设计评估问题,尤其是面对基于SoC分解的Chiplet集成系统是否具备实现的经济可行性,本文基于提出的Chiplet架构设计和模拟框架FireLink以及可获取的数据信息重新对成本模型进行了描述. 成本模型中各个公式中的参数、特征数据均来自于公共数据和相关工作所开放的信息,推荐使用商业信息以及EDA后端真实数据以进一步获得更好的可靠性和准确性.

    基于RTL生成器的模块化硬件设计方法以及敏捷设计语言带来的快速可配置性,芯片的微架构设计被抽象和简化为设计参数的选择. 通过参数配置能够快速地描述目标设计架构并搭建完整的系统模型,这有助于设计空间探索快速迭代设计方案. 基于前文介绍的FireLink框架和工具链,本文设计了一个自动化的芯片设计优化和评估流程,以支持面向Chiplet架构的设计空间探索. 如图4所示,评估是整个流程的关键,它由基于设计参数优化的设计空间探索算法以及以PPAC指标为参考的设计验证方法2个部分组成.

    图  4  设计空间探索流程示意图
    Figure  4.  Illustration of DSE

    Chiplet架构的设计空间Φ是各Chiplet设计空间与Chiplet集成相关的设计参数 {P}' 的笛卡儿积,是一个复杂的高维空间. 其中 {P}' 不会作为设计空间探索算法的输入,将在算法运行过程前确定. {P}' 定义为多Chiplet互连层次的设计参数,主要集中在Chiplet间互连结构上,由于层次化的互连网络作为Chiplet间通信的基础架构,其设计决策直接关联到整个系统的物理实现,所以互连结构的设计参数需要在进行详细的设计空间探索之前被初步确认.

    \varPhi =\prod\limits_{i=1}^{n}{chip}_{i}\times {P}'. (7)

    图4中芯片架构所有的设计参数被包装为一个集合,它会确定一个完整的芯片架构. 如式(8)所示,每个设计参数p由多个离散的候选值v组成,这些候选值构成了设计参数的取值范围. 通常情况下,每种设计参数的候选值范围是不同的,并且分布是不均匀的.

    Chiplet=\left\{{p}_{1},{p}_{2},… ,{p}_{j}\right\}, {p}_{j}=\left\{{v}_{1},{v}_{2},… ,{v}_{i}\right\}. (8)

    Chiplet架构的设计空间探索问题实质上就是对所有影响设计的因素x进行选择权衡,通过评估架构设计的PPAC指标,衡量设计方案的优劣. 设计空间探索就是一个不断迭代搜索最佳设计的过程,可以表述为

    \begin{array}{c}{\boldsymbol{design}}=\left({x}_{1},{x}_{2},… ,{x}_{n}\right),\end{array} (9)
    \begin{array}{c}Y:{\boldsymbol{design}}\to Evaluation,\\ Y\left({\boldsymbol{design}}\right)=E\left(performance,power,area,cost\right),\end{array} (10)
    {{\boldsymbol{design}}}^{*}=\mathop{\mathrm{arg\;max}}\limits_{{\boldsymbol{design}}\in \varPhi }\;E\left({\boldsymbol{design}}\right). (11)

    丰富的设计参数在具备优异的设计灵活性的同时,也使得错误的配置更容易发生. 对于经验丰富的架构设计者而言,基于先验知识可以很好地避免这种情况. 但Chiplet集成的系统作为一种新的设计架构,并不能确保传统的多核架构设计“经验”总能发挥作用. 在面对设计参数集合这种离散数据时,ID3[58]算法具有很好的适用性,并且不需要对数据进行规范化和标准化处理. 为此在选择设计参数时通过采用ID3算法为历史设计参数选择构建决策树分类器,进而预测并生成合理的设计参数集,以尽可能避免“违法”的参数配置.

    设计文件首先会进行软件模拟以验证设计参数的有效性,因为在编译生成模拟器的寄存器传输级硬件代码过程中可能会出现 “illegal argument exception” 等类似错误. 如果当前编译的设计参数属于“illegal”,那么这一组设计参数将被打上“erro”的标签,然后写入一个数据集. 而成功编译并进行RISC-V基准测试的设计参数集合,作为成功的案例被标记为“success”. 以设计参数是否能成功编译作为分类特征,基于ID3算法对历史设计参数构建的决策树模型预测并生成合法的设计参数配置,并以此作为新的设计架构描述,这一过程变相实现了对设计空间的裁剪. 具体算法如算法1所示.

    算法1. 基于ID3生成设计参数算法.

    输入:历史设计参数数据集Data

    输出:预测的有效设计参数集合Parameters.

    Train_set, Test_set \leftarrow Split_dataset (Data);/*根 据目标特征划分训练集与测试集*/

    base_entropy \leftarrow Calculate_entropy(Train_set);

    /*计算数据集信息熵*/

    ③ for each attribute in Train_set

    ④  info_gain \leftarrow Gain(base_entropy, attribute, Train_set);/*计算当前属性信息增益*/

    ⑤  best_attribut \leftarrow Judge(attribute, info_gain); /*评判信息增益获取最佳属性*/

    ⑥ end for

    Tree.root \leftarrow best_attribute;/*最佳属性作为决策 树根节点*/

    ⑧ for each value in tree.root

    ⑨  subset \leftarrow Get_subset(Tree.root, value);/*获取 最佳属性的每个值子集*/

    ⑩ end for

    ⑪ if subset is empty

    ⑫  Tree.Add_leaf(value);

    ⑬ else if subset is not empty

    ⑭  subtree \leftarrow ID3_Subtree(subset);/*递归构建子 树*/

    ⑮  Tree.add_subtree(value, subtree);

    ⑯ end if

    ⑰ while node is not None /*选择一个叶节点开始 直至无下一节点*/

    ⑱  Parameter[node.attribute] \leftarrow node.value

    ⑲  node \leftarrow Tree.get_next(node);/*根据决策树的 规则选择下一个节点*/

    ⑳ end while

    PPAC作为一个评价目标Chiplet架构设计方案是否优异的关键判断因素,它受诸多设计因素影响,不仅是设计参数,也包括FireLink框架下各个工具本身的误差和程序运行的误差(即使在相同设计下测试程序每次的结果都不是完全一致的). 并且性能、功耗、面积和成本也并非真实芯片的数据,只是基于当前设计的模型的特征信息的一个量化的值. 但是对于早期的实际空间探索而言,这些指标足以反映芯片设计的“趋势”. 因为FireLink框架下Chiplet设计的架构不同于软件模拟器中的模型,所有的设计单元都会生成相应的硬件代码,并且能够基于FPGA进行电路实现. 所以在FireLink下的模拟数据具有较强的可信度,能够为Chiplet架构设计者提供可靠的参考和决策意见.

    在本节中将分析3个案例以证明提出的面向Chiplet架构设计空间探索的评估框架的可行性. 实验以8核RISC-V系统为目标,以2.2节中建模的SoC设计模型为基础. 实验相关参数如表3所示,实验构建了多个Chiplet集成芯片架构设计模型以探索不同维度的设计方法,并基于定量的综合评估帮助深入理解其背后的原理.

    表  3  实验相关参数
    Table  3.  Experimental Relative Parameters
    配置 参数 取值
    处理器核 类型 Rocket Core
    数目 8
    L1缓存 关联度 4路组相联
    大小/KB 32
    延迟 2
    L2缓存 关联度 8路组相连
    大小/KB 4×512
    内存通道 数目 4
    互联网络 虚拟通道数 4
    Chiplet内/间报文传输速度 4/1
    Chiplet内/间有效负载宽度 128/32
    FPGA 型号 U250
    运行频率/MHz 80
    下载: 导出CSV 
    | 显示表格

    分区划分、Chiplet尺寸与制造成本、Chiplet的复用性等多个因素影响下的设计权衡是一项困难的挑战,如何将单Die形式的SoC设计转换为Chiplet集成的系统是架构设计师首先需要进行思考的问题. 在FireLink框架下,芯片架构的设计被简化为一个功能部件堆叠配置的过程,这帮助设计者能够很容易地以功能作为划分标准实现SoC解构. 如第2节中所展示的那样,在此展示一个范例,简单地将SoC划分为处理器核心区、高速共享缓存区以及存储控制区,总线、接口及其余部件纳入互连网络区域中. 实际上在FireLink框架下设计空间的定义是更加灵活和广泛的,支持更广泛的划分方式. 由于Chisel语言的高度模块化特点,Core,MMIO,DMA,I/O等系统组件能够作为更细粒度的模块在系统中进行集成,并允许将这些模块合并或分离为单独的Chiplet.

    通过控制设计变量,每个案例设计仅对Chiplet的划分方式进行修改,在固定的硬件配置参数下设置了8种Chiplet架构功能划分和布局的设计范例,如图5所示. 根据分区划分方案建立Chiplet模型,其中Chiplet A将Tile和其他部件分别划分为2个独立的Chiplet,Chiplet B将Tile分别与Bank和DRAM模块组合形成2个不同的Chiplet. 与此同时还建立了Chiplet C和Chiplet D这2种由同种Chiplet集成的架构设计,其余4种分区划分的方案旨在探索Chiplet架构划分粒度对PPAC的影响. 构建完成的模型经编译生成对应的寄存器传输级设计文件,分别输入Yosys和Firesim流程中获取的面积、性能和功耗参数,然后估算成本.

    图  5  Chiplet分区示意图
    Figure  5.  Illustration of Chiplet partitions

    更进一步,需要考虑如何确定各功能分区的划分粒度、如何设计Chiplet的模块组成结构. 由于良率模型是一个负指数幂函数[18],显而易见随着单片的尺寸增加,其制造良率下降的速度会越来越快,极大地阻碍了大规模、大面积的单片SoC进一步提高集成度. 因此需要在完整的设计、模拟和评估框架下衡量Chiplet尺寸对设计方案总成本的显著影响,以快速确认设计方向.

    这项实验的目的是探讨SoC划分的经济效益,为此,对SoC的总成本和总的硅面积进行了归一化处理,以更直观地体现Chiplet集成方案与SoC的差异. 如图6所示,基于Chiplet集成的架构设计在总成本上普遍具有优势. 促成这一现象的原因一方面在于开发Chiplet的设计成本由于更广泛的应用性获得了更大程度的摊销,另一方面则是小尺寸Chiplet具有更高的良率从而降低了制造成本. 可以预见的是,随着市场需求(Chiplet生产的规模)增大,设计成本在芯片总成本中的占比会越来越小,工艺、材料和那些不可摊销的成本会变得越来越重要.

    图  6  Chiplet划分在成本上的差异
    Figure  6.  Difference in the cost of Chiplet partition

    图6所展示的,Chiplet架构在制造成本上相比于SoC的下降并不明显,这是因为在应用成本模型时,中介层的成本的权重重要性相比其他因素有所提高,以体现先进集成技术的高成本. 与此同时,SoC划分出的Chiplet并非越小越好. 因为分裂为更多数量Chiplet的同时,也引入了更多的D2D模块和更复杂的互连网络. 可以分析得出,更微小的划分会增加集成和封装成本,而总硅面积是增长的,并且当集成(例如有源中介层或3维集成技术)成本进一步提高时,SoC与基于Chiplet集成的设计之间的成本差距就越小. 事实上,如今Chiplet集成设计实现大规模量产面临的关键问题就在于如何降低先进封装的成本,否则基于Chiplet集成的芯片方案可能比SoC更昂贵. 随着时间的推移和技术逐渐成熟,SoC的成本会呈下降趋势,但是集成规模依旧难以提升. 因此,Chiplet集成作为能够在封装内持续提升晶体管集成数目的有效方法,随着先进封装技术的发展趋势向好,基于Chiplet集成的芯片架构将会有更好的发展前景.

    采用与3.1节Chiplet分区划分实验相同的硬件配置,表3中的设计参数不做改变,进行同样的实验流程. 如图7所示,实验建立了4种不同的Chiplet布局方案. 通过Constellation生成固定的3×3的Mesh 拓扑结构,将Chiplet分布到不同的逻辑节点上. 由于Constellation是一个高度解耦的规范系统,物理网络资源规范,逻辑端点行为和流控制规范相互分开. 路由节点间会自动生成匹配的逻辑规范和流控制,并且可以确保是无死锁的. 互连网络将和Chiplet的设计一起集成生成寄存器传输级硬件代码,最终映射到FPGA上,这一过程相当于自动完成了Chiplet之间的布局布线流程.

    图  7  Chiplet布局示意图
    Figure  7.  Illustration of Chiplet layout

    实验在本地FPGA上运行了GAP benchmark suite[59],以探索面向加速图形处理的Chiplet架构. 在图7中展示了Chiplet架构4种布局方式在功耗和性能上的差异,以相同配置的SoC功耗与性能作为参考. 可以发现一个现象:Chiplet集成的架构在功耗和性能上并不占有优势. 这是因为Chiplet间的互连延迟增加了内存访问的压力,数据处理的速度受到影响,并且额外的D2D通信开销会引入额外的功耗. 之所以4种布局的Chiplet集成架构在功耗和性能上的表现存在差异,主要原因在于通信效率. 其中Chiplet J和Chiplet L总有一个处理单元存在“远访问”,尤其对于Chiplet J中处于最边缘位置的Chiplet而言,访问缓存和内存的代价更高. 而Chiplet I和Chiplet K中的运算Chiplet总能就近完成访存动作,但Chiplet I的布局降低了数据在处理单元之间的传输效率,因此相比于Chiplet K产生了更高的功耗.

    由于相同的Chiplet尺寸,4种布局方案在面积上的差异可以忽略,此时传统的PPA指标难以全面评估它们的优劣. 基于Chiplet布局的拓扑逻辑复杂性分析布局方式对成本的影响[60],本文提出的PPAC指标计算能够实现对Chiplet布局方式进行评估. 必须注意的是,式(4)中的参数αβγ的选取对最终的评估结果存在直接影响,如图8所示.

    图  8  PPAC参数选取对Chiplet布局评估的影响
    Figure  8.  Influence of PPAC parameter selection on Chiplet layout evaluation

    Chiplet的布局规划是芯片设计的关键步骤,事实上这也是一个极其复杂的问题,这一过程需要考虑布线密度、传输延迟、信号干扰、散热性等多方面因素. 本文的关注点并不会深入到这些细节中去,而是进行一个更高维度的、抽象程度更高的探索. Chiplet放置在中介层上通过NoC实现互连接,通过改变Chiplet之间的位置关系,进一步研究Chiplet的逻辑布局对系统整体性能的影响.

    在微架构层次,Rocket Core公开了许多参数以支持灵活的定制化设计,包括浮点管道阶段的数量、缓存大小和转换旁路缓冲器(translation look-aside buffer, TLB)大小等. 实验选取了11个具有代表性的设计参数作为输入,设计空间规模约为7×109,如表4所示. 并且选择了来自于开源测试套件 RISCV-Tests[61]的12种基准测试程序来评估微架构的性能.

    表  4  Rocket核微架构设计参数空间
    Table  4.  Microarchitecture Design Parameter Space of Rocket Core
    模块设计参数取值
    MulmulUnroll1,2,4,6,8,10,12,14,16
    sfmaLatency1,2,3,4,5,6,7,8
    dfmaLatency1,2,3,4,5,6,7,8
    nPMPs1,2,4,6,8, 10,12,14,16
    CachenSets2,4,8,16,32
    nWays1,2,4,6,8,10,12,14,16
    nTLBSets1,2,4,6,8,10,12,14,16
    nTLBWays2,4,8,16,32
    nMSHRs1,2,3,4,5,6,7,8,9
    BTBnEntires4,8,12,16,24,28
    nPages1,2,4,6,8,10,12,14,16
    下载: 导出CSV 
    | 显示表格

    实验探索了基于Rocket核的Chiplet架构设计,其中不满足设计规则的设计参数数量大约占搜索空间的85%以上,一个合法微架构(8核规模下)完整的模拟评估时间为2~3 h,在100组错误数据训练下ID3算法对“合法”设计参数的预测准确率能够达到95%以上. 另一方面,通过ID3决策树模型分析,可以获取到每一种设计参数对于各类测试程序的影响程度. 每一种设计参数在不同类型的测试程序下对芯片性能产生的影响是不同的,图9展示了对于每种测试程序性能影响最大的3个设计参数.

    图  9  设计参数对测试程序性能的影响
    Figure  9.  Impact of design parameters on the performance of the test program

    处理器核的微架构中物理内存保护单元(physical memory protection unit,PMP)的数目对于RISCV-Tests下的PMP-benchmark测试程序的性能而言具有特殊的影响. 缺失状态保持寄存器(miss-status handling registers,MSHR)是用于处理缓存失效(cache miss)的功能单元,记录未完成的访存请求,展现了与运算性能显著的关联度. 建议在设计开始之前首先基于先验知识确定设计目标以及那些未知的和感兴趣的芯片参数,这将有效减少设计空间规模以及建模的复杂度,当然更大规模的设计空间探索在本文提出的FireLink下是可行的.

    表5展示了一种局部最优的设计方案,Chiplet架构自动DSE的结果与工程师手动设计的Rocket核集成SoC相比,除成本优势外,在PPA上并没有明显的优势. 这是由于设置了较高的互连“惩罚”,突出Chiplet架构对先进封装技术的依赖以及相应的高昂代价. 但是以相同的成本为约束时,Chiplet架构相对于SoC在成本上的冗余可以被投入在设计中,这意味着设计者会拥有更高的设计权自由度和更广阔的优化空间.

    表  5  Chiplet架构设计方案及评估结果
    Table  5.  Chiplet Architecture Design Schemes and Evaluation Results
    架构设计 目标 参数选择
    配置 布局类型 Chiplet E
    网络微架构 4,4:1,4,80,64,128, Mesh
    核微架构 4,2,4,4,16,4,4,4,2,28,8
    评估 性能 功耗 面积 成本
    ×0.93 ×1.03 ×1.13 ×0.86
    下载: 导出CSV 
    | 显示表格

    Chiplet架构基于一种自上而下的设计方法进行探索,首先需要确定Chiplet架构在多Chiplet集成层次的策略,基于先验知识和仿真探索其分区划分方式以及Chiplet间互连结构. 并且考虑各设计参数对不同类型应用程序的影响,能够倾向性地提高设计架构面向某一特定领域的性能.

    目前集成电路发展进入“后摩尔”时代,芯片设计制造面临着收益困境,Chiplet集成技术开始受到广泛关注. 面向新的处理器体系结构,传统的研究工具以及量化分析方法并不适用. 本文在许多不同的开源设计和开发工具之间进行了权衡与抉择,并通过控制版本、确保环境一致性和构建自动化部署脚本实现了不同工具间更高水平的协调和同步,从而创建一个完整的设计、模拟与评估全流程的设计空间探索框架——FireLink. 在该框架下探索了将单片SoC划分Chiplet的方法、集成这些Chiplet的布局方案以及单个Chiplet的微架构设计,并且提出了PPAC用于探索PPA与芯片成本的权衡. 基于敏捷设计与机器学习方法,FireLink提升了面向Chiplet架构设计的设计空间探索效率,为Chiplet体系结构提供辅助设计,能够有效解决芯片设计门槛高、周期长的现实难题.

    作者贡献声明:李开为论文主要完成人;曾坤指导实验;荣培涛、陈志强、张甜辅助完成实验并修改论文;王永文提出了指导意见.

  • 图  1   RMT可编程交换机的硬件架构

    Figure  1.   Hardware architecture of RMT programmable switch

    图  2   PMNet的数据更新协议

    Figure  2.   Data update protocol of PMNet

    图  3   NetCache的架构

    Figure  3.   Architecture of NetCache

    图  4   Concordia的架构

    Figure  4.   Architecture of Concordia

    图  5   Eris的事务提交过程

    Figure  5.   Transaction commit process of Eris

    图  6   SwitchTx的事务处理流程

    Figure  6.   Transaction processing workflow of SwitchTx

    图  7   AlNiCo的架构

    Figure  7.   Architecture of AlNiCo

    图  8   AlNiCo的RPC框架

    Figure  8.   RPC framework of AlNiCo

    图  9   R2P2的架构

    Figure  9.   Architecture of R2P2

    图  10   NetEC的架构

    Figure  10.   Architecture of NetEC

    表  1   4种智能网卡的对比

    Table  1   Comparison Among Four Types of SmartNICs

    类型性能易用性表达能力
    基于ARM CPU
    基于NP
    基于ASIC
    基于FPGA
    下载: 导出CSV

    表  2   交换机表达能力优化方案总结

    Table  2   Summary of Switch Expressiveness Optimizations

    优化方面主要措施典型方案
    内存空间提高内存共享程度dRMT[11],MP5[12],TEA[13]
    计算部件优化数据表达格式FPISA[14]
    执行语义提供新型编程模型Packet transactions[15]
    下载: 导出CSV

    表  3   4种在网存储系统的对比

    Table  3   Comparison of Four Types of In-Network Storage Systems

    对比方面在网数据缓存系统在网数据协调系统在网数据调度系统在网数据聚合系统
    网络硬件交换机/网卡交换机/网卡交换机/网卡交换机
    网络硬件处理内容数据元数据元数据数据
    网络硬件内存需求
    复杂度
    通用性
    主要场景键值缓存分布式协议远程过程调用纠删码、AI训练
    典型系统NetCache[16],KV-Direct[20]Concordia[10],SwitchTx[21]R2P2[17],AlNiCo[22]NetEC[23]
    下载: 导出CSV

    表  4   基于可编程交换机的缓存系统总结

    Table  4   Summary of Caching Systems Based on Programmable Switches

    系统针对场景可靠性扩展性支持写
    NetCache负载均衡
    DistCache负载均衡
    NetChain协调服务
    下载: 导出CSV

    表  5   在网缓存一致性系统对比

    Table  5   Comparison of In-Network Cache Coherence Systems

    系统针对场景系统接口通用性
    Concordia分布式共享内存用户态读写
    Pegasus分布式对象对象接口
    Mind分离式内存OS虚拟内存
    下载: 导出CSV

    表  6   在网事务系统对比

    Table  6   Comparison of In-Network Transaction Systems

    系统网络设备扩展性通用性并发控制协议
    Eris交换机确定性执行
    SwitchTx交换机乐观并发控制
    Xenic网卡乐观并发控制
    下载: 导出CSV

    表  7   在网数据调度系统对比

    Table  7   Comparison of In-Network Date Scheduling Systems

    系统网络设备调度对象请求类型一致性
    AlNiCo网卡多核事务请求
    R2P2交换机多机通用请求
    RackSched交换机多核/多机通用请求
    Harmonia交换机多机副本读
    FLAIR交换机多机副本读
    下载: 导出CSV

    表  8   在网数据聚合系统对比

    Table  8   Comparison of In-Network Data Aggregation Systems

    系统交换机硬件支持稀疏数据支持自定义类型
    NetECRTM
    SwitchMLRTM
    ATPRTM
    OmniReduceRTM
    iSwitchFPGA
    FlarePsPIN
    下载: 导出CSV
  • [1]

    Seagate. The digitization of the world: From edge to core [EB/OL]. [2022-09-20].https://www.seagate.com/files/www-content/our-story/trends/files/idc-seagate-dataage-whitepaper.pdf

    [2]

    Nvidia. ConnectX-6 [EB/OL]. [2022-09-20].https://www.nvidia.com/en-us/networking/ethernet/connectx-6/

    [3]

    Bosshart P, Gibb G, Kim H S, et al. Forwarding metamorphosis: Fast programmable match-action processing in hardware for SDN[J]. ACM SIGCOMM Computer Communication Review, 2013, 43(4): 99−110 doi: 10.1145/2534169.2486011

    [4]

    Intel. Intel Tofino intelligent fabric processors [EB/OL]. [2022-09-20].https://www.intel.com/content/www/us/en/products/network-io/programmable-ethernet-switch/tofino-3-product-brochure.html

    [5]

    NVIDIA. NVIDIA BlueField data processing units [EB/OL]. [2022-09-20].https://www.nvidia.com/en-us/networking/products/data-processing-unit/

    [6]

    Netronome. Agilio CX SmartNICs [EB/OL]. [2022-09-20].https://www.netronome.com/products/agilio-cx/

    [7]

    Nvidia. ConnectX SmartNICs [EB/OL]. [2022-09-20].https://www.nvidia.com/en-us/networking/ethernet/innova-2-flex/

    [8]

    Nvidia. Innova-2 Flex [EB/OL]. [2022-09-20].https://www.nvidia.com/en-au/networking/ethernet-adapters/

    [9] 马潇潇,杨帆,王展,等. 智能网卡综述[J]. 计算机研究与发展,2022,59(1):1−21

    Ma Xiaoxiao, Yang Fan, Wang Zhan, et al. Survey on smart network interface card[J]. Journal of Computer Research and Development, 2022, 59(1): 1−21 (in Chinese)

    [10]

    Wang Qing, Lu Youyou, Xu Erci, et al. Concordia: Distributed shared memory with in-network cache coherence[C]//Proc of the 19th USENIX Conf on File and Storage Technologies. Berkeley, CA: USENIX Association, 2021: 277−292

    [11]

    Chole S, Fingerhut A, Ma Sha, et al. dRMT: Disaggregated programmable switching[C/OL]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2017 [2023-02-09].https://doi.org/10.1145/3098822.3098823

    [12]

    Shrivastav V. Stateful multi-pipelined programmable switches[C]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2022: 663−676

    [13]

    Kim D, Liu Zaoxing, Zhu Yibo, et al. TEA: Enabling state-intensive network functions on programmable switches[C]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2020: 90−106

    [14]

    Yuan Yifan, Alama O, Fei Jiawei, et al. Unlocking the power of inline floating-point operations on programmable switches[C]//Proc of the 19th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2022: 683−700

    [15]

    Sivaraman A, Cheung A, Budiu M, et al. Packet transactions: High-level programming for line-rate switches[C]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2016: 15−28

    [16]

    Jin Xin, Li Xiaozhou, Zhang Haoyu, et al. NetCache: Balancing key-value stores with fast in-network caching[C]//Proc of the 26th Symp on Operating Systems Principles. New York: ACM, 2017: 121−136

    [17]

    Kogias M, Prekas G, Ghosn A, et al. R2P2: Making RPCs first-class datacenter citizens[C]//Proc of the 44th USENIX Annual Technical Conf. Berkeley, CA: USENIX Association, 2019: 863−880

    [18]

    Seemakhupt K, Liu Sihang, Senevirathne Y, et al. PMNet: In-network data persistence[C]//Proc of the 48th Annual Int Symp on Computer Architecture. Piscataway, NJ: IEEE, 2021: 804−817

    [19]

    Kim D, Nelson J, Ports D R K, et al. RedPlane: Enabling fault-tolerant stateful in-switch applications[C]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2021: 223−244

    [20]

    Li Bojie, Ruan Zhenyuan, Xiao Wencong, et al. KV-Direct: High-performance in-memory key-value store with programmable NIC[C]//Proc of the 26th Symp on Operating Systems Principles. New York: ACM, 2017: 137−152

    [21]

    Li Junru, Lu Youyou, Zhang Yiming, et al. SwitchTx: Scalable in-network coordination for distributed transaction processing[C]//Proc of the 48th Int Conf on Very Large Databases. New York: ACM, 2022: 2881−2894

    [22]

    Li Junru, Lu Youyou, Wang Qing, et al. AlNiCo: SmartNIC-accelerated contention-aware request scheduling for transaction processing[C]//Proc of the 47th USENIX Annual Technical Conf. Berkeley, CA: USENIX Association, 2022: 951−966

    [23]

    Qiao Yi, Kong Xiao, Zhang Menghao, et al. Towards in-network acceleration of erasure coding[C]//Proc of the Symp on SDN Research. New York: ACM, 2020: 41−47

    [24]

    Fan Bin, Lim H, Andersen D G, et al. Small cache, big effect: Provable load balancing for randomly partitioned cluster services[C]//Proc of the 2nd ACM Symp on Cloud Computing. New York: ACM, 2011: 264−275

    [25]

    Cormode G, Muthukrishnan S. An improved data stream summary: The count-min sketch and its applications[J]. Journal of Algorithms, 2005, 55(1): 58−75 doi: 10.1016/j.jalgor.2003.12.001

    [26]

    Luo Lailong, Guo Deke, Ma R T B, et al. Optimizing Bloom filter: Challenges, solutions, and comparisons[J]. IEEE Communications Surveys & Tutorials, 2018, 21(2): 1912−1949

    [27]

    Liu Zaoxing, Bai Zhihao, Liu Zhenming, et al. DistCache: Provable load balancing for large-scale storage systems with distributed caching[C]//Proc of the 17th USENIX Conf on File and Storage Technologies. Berkeley, CA: USENIX Association, 2019: 143−157

    [28]

    Jin Xin, Li Xiaozhou, Zhang Haoyu, et al. NetChain: Scale-free sub-RTT coordination[C]//Proc of the 15th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2018: 35−49

    [29]

    Van Renesse R, Schneider F B. Chain replication for supporting high throughput and availability[C]// Proc of the 6th USENIX Symp on Operating Systems Design and Implementation. Berkeley, CA: USENIX Association, 2004: 91−104

    [30]

    Sun Shangyi, Zhang Rui, Yan Ming, et al. SKV: A SmartNIC-offloaded distributed key-value store[C]//Proc of IEEE Int Conf on Cluster Computing. Piscataway, NJ: IEEE, 2022: 132−142

    [31]

    Li Jialin, Nelson J, Michael E, et al. Pegasus: Tolerating skewed workloads in distributed storage with in-network coherence directories[C]//Proc of the 14th USENIX Symp on Operating Systems Design and Implementation. Berkeley, CA: USENIX Association, 2020: 387−406

    [32]

    Lee S, Yu Yanpeng, Tang Yupeng, et al. Mind: In-network memory management for disaggregated data centers[C]//Proc of the 28th ACM SIGOPS Symp on Operating Systems Principles. New York: ACM, 2021: 488−504

    [33]

    Yu Zhuolong, Zhang Yiwen, Braverman V, et al. NetLock: Fast, centralized lock management using programmable switches[C]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2020: 126−138

    [34]

    Li Jialin, Michael E, Ports D R K. Eris: Coordination-free consistent transactions using in-network concurrency control[C]//Proc of the 26th Symp on Operating Systems Principles. New York: ACM, 2017: 104−120

    [35]

    Schuh H N, Liang Weihao, Liu Ming, et al. Xenic: SmartNIC-Accelerated Distributed Transactions[C]//Proc of the 28th ACM SIGOPS Symp on Operating Systems Principles. New York: ACM, 2021: 740−755

    [36]

    Cowling J, Liskov B. Granola: Low-overhead distributed transaction coordination[C]//Proc of the 37th USENIX Annual Technical Conf. Berkeley, CA: USENIX Association, 2012: 223−235

    [37]

    Kung H T, Robinson J T. On optimistic methods for concurrency control[J]. ACM Transactions on Database Systems, 1981, 6(2): 213−226 doi: 10.1145/319566.319567

    [38]

    Celis P, Larson P A, Munro J I. Robin hood hashing[C]//Proc of the 26th Annual Symp on Foundations of Computer Science. Piscataway, NJ: IEEE, 1985: 281−288

    [39]

    Kim J, Jang I, Reda W, et al. LineFS: Efficient SmartNIC offload of a distributed file system with pipeline parallelism[C]//Proc of the 28th ACM SIGOPS Symp on Operating Systems Principles. New York: ACM, 2021: 756−771

    [40]

    Zhu Hang, Kaffes K, Chen Zixu, et al. RackSched: A microsecond-scale scheduler for rack-scale computers[C]//Proc of the 14th USENIX Symp on Operating Systems Design and Implementation. Berkeley, CA: USENIX Association, 2020: 1225−1240

    [41]

    Kaffes K, Chong T, Humphries J T, et al. Shinjuku: Preemptive scheduling for μ second-scale tail latency[C]//Proc of the 16th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2019: 345−360

    [42]

    Zhu Hang, Bai Zhihao, Li Jialin, et al. Harmonia: Near-linear scalability for replicated storage with in-network conflict detection[C]//Proc of the 45th Int Conf on Very Large Databases. New York: ACM, 2019: 375−388

    [43]

    Takruri H, Kettaneh I, Alquraan A, et al. FLAIR: Accelerating reads with consistency-aware network routing[C]//Proc of the 17th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2020: 723−737

    [44]

    Plank J S. A tutorial on Reed-Solomon coding for fault-tolerance in RAID-like systems[J]. Software: Practice and Experience, 1997, 27(9): 995−1012 doi: 10.1002/(SICI)1097-024X(199709)27:9<995::AID-SPE111>3.0.CO;2-6

    [45]

    Shvachko K, Kuang H, Radia S, et al. The Hadoop distributed file system[C]//Proc of the 26th Symp on Mass Storage Systems and Technologies. Piscataway, NJ: IEEE, 2010: 133−142

    [46]

    Sapio A, Canini M, Ho C Y, et al. Scaling distributed machine learning with in-network aggregation[C]//Proc of the 18th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2021: 785−808

    [47]

    Lao C L, Le Yanfang, Mahajan K, et al. ATP: In-network aggregation for multi-tenant learning[C]//Proc of the 18th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2021: 741−761

    [48]

    Fei Jiawei, Ho C Y, Sahu A N, et al. Efficient sparse collective communication and its application to accelerate distributed deep learning[C]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2021: 676−691

    [49]

    Li Youjie, Liu Iou-Jen, Yuan Yifan, et al. Accelerating distributed reinforcement learning with in-switch computing[C]//Proc of the 46th Annual Int Symp on Computer Architecture. Piscataway, NJ: IEEE, 2019: 279−291

    [50]

    De Sensi D, Di Girolamo S, Ashkboos S, et al. Flare: Flexible in-network allreduce[C]//Proc of the Int Conf for High Performance Computing, Networking, Storage and Analysis. New York: ACM, 2021: 14−29

    [51]

    Di Girolamo S, Kurth A, Calotoiu A, et al. A RISC-V in-network accelerator for flexible high-performance low-power packet processing[C]//Proc of the 48th Annual Int Symp on Computer Architecture. Piscataway, NJ: IEEE, 2021: 958−971

    [52]

    Li Huancheng, Hao Mingzhe, Novakovic S, et al. LeapIO: Efficient and portable virtual NVMe storage on ARM socs[C]//Proc of the 25th Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2020: 591−605

    [53]

    Nishtala R, Fugal H, Grimm S, et al. Scaling Memcache at Facebook[C]//Proc of the 10th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2013: 385−398

    [54]

    Weil S A, Brandt S A, Miller E L, et al. Ceph: A scalable, high-performance distributed file system[C]//Proc of the 7th USENIX Symp on Operating Systems Design and Implementation. Berkeley, CA: USENIX Association, 2006: 307−320

  • 期刊类型引用(1)

    1. 刘韵洁,汪硕,黄韬,王佳森. 数算融合网络技术发展研究. 中国工程科学. 2025(01): 1-13 . 百度学术

    其他类型引用(0)

图(10)  /  表(8)
计量
  • 文章访问数:  541
  • HTML全文浏览量:  50
  • PDF下载量:  268
  • 被引次数: 1
出版历程
  • 收稿日期:  2022-10-08
  • 修回日期:  2023-03-05
  • 网络出版日期:  2023-08-01
  • 刊出日期:  2023-10-31

目录

/

返回文章
返回