首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Micron:ATC缓存加速SSD寻址

Micron:ATC缓存加速SSD寻址

作者头像
数据存储前沿技术
发布于 2025-02-11 17:05:25
发布于 2025-02-11 17:05:25
6790
举报

问题意识

  • • 新系统(闪存主控)将支持ATS和ATC协议
    • • 一种有效的方法来更好地处理DMA代理的地址转换
  • • 需要相应地设计SSD,但:
    • • 这些是DMA地址缓存子系统,没有历史需求记录
    • • 将具有典型的缓存指标,但没有可用数据来评估它们
    • • 它们将高度依赖于应用程序的DMA映射
  • • 如何设计/调整/配置ATC以最大化其对SSD性能的影响?

DMA(Direct Memory Access,直接内存访问) 是一种允许硬件外设与计算机内存之间直接传输数据的技术,无需CPU介入,帮助实现高效的数据传输。在某些情况下,如图中提到的,可能需要DMA Agent进行地址转换以适应不同的内存管理策略或协议。

ATS/ATC 工作原理

  • • ATS: Address Translation Service
    • • 通过ATS,IO设备请求GPA到SPA的转换,并在该范围内使用它。
    • • 转换有效性范围由STU(最小转换单位)定义。
    • • 最常见的STU值:
      • • 4KB(遗留)
      • • 2MB(大多数虚拟机使用)
      • • 1GB(用户空间的巨大页面)。
  • • ATC: Address Translation Cache
    • • 存储最近转换的缓存。
    • • 受典型缓存指标(局部性、驱逐、关联性等)的影响。
  • • 图例
    • • VA: 虚拟地址
    • • GPA: 客户物理地址
    • • SPA: 系统物理地址
    • • STU: 最小转换单位

图表展示了ATS和ATC的基本概念及其在系统中的作用。

ATS负责将GPA(Guest Physical Address,客户物理地址)转换为SPA(System Physical Address,系统物理地址),而ATC则是一个缓存,用于存储最近的地址转换。

ATC测试数据评估

特征描述方法:

• 假设 VM 运行标准工作负载。• 跟踪每个工作负载的唯一缓冲区地址 • 将它们映射到 STU(2 MB)较低页面

• 构建 ATC 的 Python 模型 • 重复追踪到模型以验证命中率 • 对尽可能多的工作负载和配置重复此过程

案例:YCSB(Yahoo Cloud Server Benchmark)在 RocksDB 上的全系统 vs. VM 配置(16 VM/系统)

观察:
  • • 多个 VM,如预期,具有比单个映像更少的局部性,但扩展不是线性的(16x VM 的 4x 大小)。

特征化方法涉及跟踪每个工作负载的唯一缓冲区地址,并将它们映射到 2 MB 较低的页面。表格提供了各种配置及其相应的性能指标,包括每秒操作数 (Ops/s)、总 I/O、唯一地址、唯一 ATC 页面和大于 85% 命中率所需的 ATC 大小。观察指出,多个 VM 具有比单个映像更少的局部性,但扩展不是线性的。

与YCSB相比,TPC-H测试的IO分布是有明显差异的,说明ATC命中率是和业务特征相关的。

TPC-H SS (TPC-H Scale-up Study) 是一种用于评估数据库系统在处理复杂查询和大规模数据集时性能的基准测试。TPC-H(Transaction Processing Performance Council Benchmark H)本身是一个广泛使用的事务处理性能委员会(TPC)标准,用于衡量数据库系统的查询处理能力和效率。它模拟了一个决策支持系统(Decision Support System, DSS),主要关注联机分析处理(OLAP)场景。 TPC-H SS 特别适合评估那些需要处理大量历史数据,并且需要执行复杂分析查询的应用场景,例如金融分析、市场调研等领域。通过对比不同数据库系统在 TPC-H SS 上的表现,可以帮助用户更好地理解各个系统的特点和优势。

不同业务特征,如何微调系统参数,来提高ATC的命中率呢?

相关性研究

STU大小

  • • 使用的基准测试:YCSB 工作负载 B(YCSB WL B)
  • • 缓存:4 路组相联(4 way Set Associative)
  • • 算法:轮询(Round Robin)
  • • 观察结果:
    • • 如预期的那样,命中率高度依赖于 STU 大小。
    • • STU 越大,命中率越高。
    • • 并非所有数据都是平等创建的。
    • • 并非所有 NVMe 命令都需要访问 SQ(提交队列)和 CQ(完成队列),因此这些地址对命中率有显著影响。

算法相关性

  • • 使用的基准测试:YCSB 工作负载 B(YCSB WL B)
  • • 关联性:全关联和 4 路组相联
  • • 替换算法:LRU、随机(Rand)和轮询(Round Robin)
  • • 结果:
    • • 替换算法对缓存命中率没有显著影响。
    • • 选择最简单的实现可能是最有效的方法。
  • • ATS/ATC 主要由系统需求驱动,以提供高效的数据传输。
  • • ATC 是一个改进高性能设备的机会,因为它在适中的硅成本下表现出高命中率。
  • • 当前系统的表征是可能的,但:
    • • 新系统将扩展核心/DRAM 大小/操作系统功能。
    • • 需要进一步的建模工作,以在新的配置获取更多数据。
    • • 建模高度依赖于未来(且在很大程度上未知的)系统架构。

总结

  1. 1. 设计存储系统需要考虑Address Translations for DMA agents的影响
  2. 2. SSD设计应针对应用程序的DMA映射进行优化
  3. 3. ATC(Address Translation Cache)对于提高SSD性能有重要作用
  4. 4. 系统配置和工作负载对ATC大小和命中率有很大影响

---【本文完】---

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 问题意识
    • ATS/ATC 工作原理
    • ATC测试数据评估
  • 相关性研究
    • STU大小
    • 算法相关性
  • 总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档