首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Marvell:计算型存储入门(全文)

Marvell:计算型存储入门(全文)

作者头像
数据存储前沿技术
发布2025-02-11 17:06:54
发布2025-02-11 17:06:54
5290
举报

关于 Marvell

Marvell[1]是一家全球领先的半导体公司,致力于设计和提供高度集成的芯片解决方案。该公司专注于计算存储驱动器(CSD)和计算存储处理器(CSP),以及相关的硬件加速器和软件工具,帮助客户实现更高效的数据处理和分析。

Marvell在计算机系统架构方面具有丰富的经验,并拥有大量的专利技术。其产品广泛应用于数据中心、云计算、移动设备、物联网等领域。此外,Marvell还积极参与行业标准制定和技术研究,推动行业的创新发展。

对计算型存储的定义

引用了SNIA[2](Storage Networking Industry Association)的定义:

计算型存储被定义为将计算型存储服务与存储相结合,卸载主机处理或减少数据移动。

• 简而言之:将计算带到数据上 • 卸载主机 • 减少数据移动 • 避免网络瓶颈 • 减少功耗

图中展示了传统计算存储架构与计算存储架构的区别。在传统CPU中心架构中,中央处理器通过内存访问外部存储器,而数据必须经过网络接口卡才能到达外部存储器。这种架构存在集中式计算、DRAM带宽和容量挑战、大量数据移动(服务器内和网络)以及固定计算导致工作负载容量增长等问题

而在计算存储架构中,引入了计算存储阵列,它由计算存储驱动器组成,这些驱动器具有内置的计算功能,并且可以连接到计算存储处理器(无存储)。这种架构的特点是并行计算(利用率上升)、优化DRAM带宽和利用率、减少数据移动(降低功耗/延迟)以及随着容量增加扩展计算能力

计算型存储处理器(CSP)和计算型存储驱动(CSD)是计算型存储的关键组件。

比较了计算型存储驱动(CSD)和计算型存储处理器(CSP),说明了它们的特点和优缺点。

左边表示的是计算型存储驱动,它具有可伸缩性、减少数据移动、简单的部署模型和额外的成本;

右边表示的是计算型存储处理器,它强大且灵活,支持RAID和数据条带化跨多个驱动器,但难以针对可用带宽进行优化,不适用于增加更多驱动器的情况,并且会成为数据路径中的额外组件。

这张图主要介绍了计算存储的功能及其应用。左侧的应用部分列举了一些具体的场景,例如数据库分析、数据分析、KV存储、CDN、媒体缩放、转码、搜索、人工智能/机器学习等;

右侧的基础设施部分则详细说明了计算存储的一些特性,包括压缩、去重、擦除编码、安全性、认证、错误检查、虚拟化和可靠性等方面。此外,还提到了可编程函数的概念,即允许最终用户动态地重新编程,以及API整合和标准化的问题。最后,强调了在同一计算存储驱动器上实现管道服务的价值,这可以对性能和扩展性产生多重影响。

展示了基于计算型存储可实现诸如过滤、去重、压缩、分类等数据为中心的计算功能。

使用计算型存储与FPGA加速卡做对照实验 ,

案例1:主机功能卸载,将任务下发到存储侧执行;

案例2:直接在存储侧生成元数据并发送给主机;

AI demo:基于FPGA 实现类似功能。

实验数据分析

  • • 左侧的图表显示了“延时比”(Latency Ratio),测试条件为:24 × 8TB SSDs数据库和双插槽处理器的情况下的主机(Host)、FPGA和计算型存储的延时情况。从图中可以看出,使用计算型存储的延时要远低于主机和FPGA,表示其响应速度更快,延时更低(通常是数据密集型的计算任务)。
  • • 中间的图表显示了“功率比”(Power Ratio),同样是在上述条件下,主机、FPGA和存储的能耗对比。可以看到,存储的能耗明显低于主机和FPGA,表明其能源效率更高。
  • • 右侧的饼状图展示了主机CPU利用率(HOST CPU UTILIZATION),其中主机处理(HOST PROCESSING)占85%,而存储处理(STORAGE PROCESSING)只占不到1%。这意味着大部分的计算任务被转移到了存储端,减轻了主机的压力。
  • • 最下方的折线图描绘了“网络容量比随时间的变化”,横轴代表时间,纵轴代表网络容量。这里有一个比例1000 : 1,意味着存储处理的网络利用度更高。

介绍计算型存储领域的两大标准组织(帮派可能更直接点):

  • • SNIA
  • • NVMe [3]

SNIA定义的计算型存储架构

区分:CSP/CSD/CSA

  • • CSP是扩展的处理器模块,通过光纤通道与主机相连,卸载主机的计算任务,结构上为:资源控制器+设备缓存;
  • • CSD是集成到主机上的计算存储驱动,与CSP不同的是,因驱动器含存储设备,故额外增加:存储控制器+存储设备;
  • • CSA是计算存储阵列,是端侧具备完整能力的架构,可以理解成是管理多个CSD的控制器,因容量增加,随场景增加若干新功能,如:阵列控制器、存储访问协议等

值得一提的是:图中黑色方框代表硬件实现(HW),白色方框代表软件实现(SW)。

深入解读资源控制器的模块设计:

CSR(Resources) | 计算存储资源是指在CSx中可用的资源,这些资源对于CSx存储和执行CSF是必要的。

CSF(Function) | 计算存储函数是一组特定的操作,这些操作可以在CSE中配置和执行。

CSE(Engine) | 计算存储引擎是一种CSR,它可以被编程来提供一个或多个特定的操作。

CSEE( Engine Environment) | 计算存储引擎环境是CSE的操作空间。

FDM(Function Data Memory) | 功能数据内存是设备内存,可供CSFs使用,用于存储作为CSF操作一部分使用或生成的数据。

AFDM(Allocated Function Data Memory) | 分配的功能数据内存是FDM的一部分,分配给一个或多个特定的CSF操作实例。

上述定义了架构设计和对应功能模块,对于软件开发人员来说,关心的是接口(API)的调用规范和功能。

这张图展示了计算型存储APIs的概念,强调了一套APIs对于不同类型的CSx(CSP, CSD, CSA)的重要性。

这些APIs隐藏了硬件和连接细节(本地/远程),抽象了设备详细信息,提供了发现、访问、设备内存(映射/未映射)、近存储访问、复制设备内存、下载CSFs、执行CSFs以及设备管理等功能。插件将CSx连接到了抽象化的APIs,隐藏了供应商特定的实现细节。此外,这些APIs对操作系统是无关的。

图中右侧还展示了一个示例的计算型存储驱动(CSD)的结构,包括用户空间、内核空间、设备驱动、计算型存储引擎(CSE)、资源库和设备存储。不同的应用程序可以通过SNIA CS API library调用相应的CSF功能,如搜索、解密、解压等等。

图示调用压缩API的内部工作流程:

  • • 分配设备内存(FDM)
  • • 从存储加载数据
  • • 在已加载的数据上运行数据过滤CSF
  • • 将结果复制到主机内存

更细致描述API调用过程

在环境准备阶段:

  1. 1. 发现CSx:这一步包括通过名称发现计算型存储设备并访问它;
  2. 2. 发现CSF:这一步需要发现想要执行的功能;
  3. 3. 分配FDM:在这一步中,需要分配设备内存。

在数据处理阶段:

4. 加载数据存储:这一步包括将数据加载到计算区域附近;

5. 执行CSF:在这一步中,会运行计算操作;

6. 复制结果:最后,将结果从设备内存复制到主机内存。

罗列出整个过程调用的系统函数。

SNIA和NVMe两个组织在整个行业的分工不同,因此在面向不同群体是沟通的术语可能代表不同含义,

SNIA:注重系统架构设计,需要和多个厂商达成标准需求;(行业产品经理)

NVMe:命令集规范的落地,聚焦编码实现;(代码工程师)

  • • 计算型存储引擎(CSE)+ 计算型存储环境(CSEE)对应于计算命名空间(Compute Namespace);
  • • 资源库(Resource Repository)对应于程序;
  • • 激活(Activation)对应于激活(Activation)
  • • 功能数据内存(FDM)对应于子系统本地内存(Subsystem Local Memory, SLM)命名空间
  • • 分配的FDM(AFDM)没有在NVMe中定义,由主机管理
  • • 设备存储对应于NVM命名空间(NVM Namespaces)

计算型存储在推广应用的过程中可能存在的顾虑:

  • • 压缩数据:需要本地解压缩数据 ;
  • • 加密数据:需要本地解密数据的能力 ;
  • • 数据条带化跨越多个驱动器:单个设备可能不包含整个文件;
    • • 使用SSD对数据条带化的需要较小。可以考虑远离广泛的数据条带化 ;
  • • 块存储:存储设备通常无法识别文件系统 ;
    • • 对象存储或键值(KV)是解决方案,但块存储已广泛部署;
    • • 其他解决方案包括在CSD中安装文件系统或虚拟对象。

总结

  1. 1. 计算型存储的核心价值与优势:计算型存储结合存储与计算,减少数据移动,降低网络瓶颈与能耗,提升效率,通过将计算任务移至数据存放地,避免传统架构中的高成本数据传输。
  2. 2. 架构转型与组件:计算型存储架构包括CSP、CSD和CSA,解决传统集中式计算与DRAM瓶颈问题,支持并行计算和优化内存带宽。关键部件如CSR、CSF和CSE构成其核心。
  3. 3. API与挑战:计算型存储APIs提供统一接口,简化软件开发流程。SNIA与NVMe各自负责架构设计与命令集实现,推广面临本地解压/解密、数据条带化等挑战。
引用链接

[1] Marvell: https://www.marvell.com/ [2] SNIA: https://www.snia.org/ [3] NVMe : https://nvmexpress.org/

---【本文完】---

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

本文分享自 王知鱼 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 📷
    • 实验数据分析
    • SNIA定义的计算型存储架构
    • 更细致描述API调用过程
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档