0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NVDIMM的几种实现方式, NVDIMM-P的性能所做的硬件上的优化和支持

SSDFans 来源:lp 2019-03-18 15:04 次阅读

随着存储技术的发展, 对存储性能的不懈追求, 高性能存储开始探索向内存通道的迁移。 在这样的情况下, NVDIMM 技术便应运而生了。

NVDIMM (Non-Volatile Dual In-line Memory Module) 是一种可以随机访问的, 非易失性内存。非易失性内存指的是即使在不通电的情况下, 数据也不会消失。因此可以在计算机掉电 (unexpected power loss), 系统崩溃和正常关机的情况下, 依然保持数据。 NVDIMM 同时表明它使用的是 DIMM 封装, 与标准DIMM 插槽兼容, 并且通过标准的 DDR总线进行通信。考虑到它的非易失性, 并且兼容传统DRAM接口, 又被称作Persistent Memory。

01

种类

目前, 根据 JEDEC 标准化组织的定义, 有三种NVDIMM 的实现。分别是:

NVDIMM-N

指在一个模块上同时放入传统 DRAM 和 flash 闪存。 计算机可以直接访问传统 DRAM。 支持按字节寻址, 也支持块寻址。通过使用一个小的后备电源,为在掉电时, 数据从DRAM 拷贝到闪存中提供足够的电能。当电力恢复时, 再重新加载到DRAM 中。

图1 NVDIMM-N示意图

NVDIMM-N 的主要工作方式其实和传统 DRAM是一样的。因此它的延迟也在10的1次方纳秒级。 而且它的容量, 受限于体积, 相比传统的 DRAM 也不会有什么提升。

同时它的工作方式决定了它的 flash 部分是不可寻址的。而且同时使用两种介质的作法使成本急剧增加。 但是, NVDIMM-N 为业界提供了持久性内存的新概念。目前市面上已经有很多基于NVIMM-N的产品

NVDIMM-F

指使用了 DRAM 的DDR3或者 DDR4 总线的flash闪存。我们知道由 NAND flash 作为介质的 SSD, 一般使用SATA, SAS 或者PCIe 总线。使用 DDR 总线可以提高最大带宽, 一定程度上减少协议带来的延迟和开销。 不过只支持块寻址。

NVDIMM-F 的主要工作方式本质上和SSD是一样的。因此它的延迟在 10的1次方微秒级。它的容量也可以轻松达到 TB 以上。

NVDIMM-P

这是一个目前还没有发布的标准 (Under Development)。预计将与DDR5 标准一同发布。按照计划,DDR5将比DDR4提供双倍的带宽,并提高信道效率。这些改进,以及服务器和客户端平台的用户友好界面,将在各种应用程序中支持高性能和改进的电源管理

NVDIMM-P 实际上是真正 DRAM 和 flash 的混合。它既支持块寻址, 也支持类似传统 DRAM 的按字节寻址。 它既可以在容量上达到类似 NAND flash 的TB以上, 又能把延迟保持在10的2次方纳秒级。

通过将数据介质直接连接至内存总线, CPU 可以直接访问数据, 无需任何驱动程序或 PCIe 开销。而且由于内存访问是通过64 字节的 cache line, CPU 只需要访问它需要的数据, 而不是像普通块设备那样每次要按块访问。

Intel 公司在2018年5月发布了基于3D XPoint™ 技术的Intel® Optane™ DC Persistent Memory。可以认为是NVDIMM-P 的一种实现。

图2 Intel® Optane™ DC Persistent Memory

02

硬件支持

应用程序可以直接访问NVDIMM-P, 就像对于传统 DRAM那样。这也消除了在传统块设备和内存之间页交换的需要。但是, 向持久性内存里写数据是和向普通DRAM里写数据共享计算机资源的。包括处理器缓冲区, L1/L2缓存等。

需要注意的是, 要使数据持久, 一定要保证数据写入了持久性内存设备, 或者写入了带有掉电保护的buffer。软件如果要充分利用持久性内存的特性, 指令集架构上至少需要以下支持:

写的原子性

表示对于持久性内存里任意大小的写都要保证是原子性的, 以防系统崩溃或者突然掉电。IA-32 和 IA-64 处理器保证了对缓存数据最大64位的数据访问 (对齐或者非对齐) 的写原子性。 因此, 软件可以安全地在持久性内存上更新数据。这样也带来了性能上的提升, 因为消除了copy-on-write 或者 write-ahead-logging 这种保证写原子性的开销。

高效的缓存刷新(flushing)

出于性能的考虑, 持久性内存的数据也要先放入处理器的缓存(cache)才能被访问。经过优化的缓存刷新指令减少了由于刷新 (CLFLUSH) 造成的性能影响。

a. CLFLUSHOPT 提供了更加高效的缓存刷新指令

b. CLWB (Cache Line Write Back) 指令把cache line上改变的数据写回内存 (类似CLFLUSHOPT), 但是无需让这条 cache line 转变成无效状态(invalid, MESI protocol), 而是转换成未改变的独占状态(Exclusive)。CLWB 指令实际上是在试图减少由于某条cache line刷新所造成的下次访问必然的cache miss。

提交至持久性内存

(Committing to Persistence)

在现代计算机架构下, 缓存刷新的完成表明修改的数据已经被回写至内存子系统的写缓冲区。 但是此时数据并不具有持久性。为了确保数据写入持久性内存, 软件需要刷新易失性的写缓冲区或者在内存子系统的其他缓存。 新的用于持久性写的提交指令 PCOMMIT 可以把内存子系统写队列中的数据提交至持久性内存。

非暂时store操作的优化

(Non-temporal Store Optimization)

当软件需要拷贝大量数据从普通内存到持久性内存中时(或在持久性内存之间拷贝), 可以使用弱顺序, 非暂时的store操作 (比如使用MOVNTI 指令)。 因为Non-temporal store指令可以隐式地使要回写的那条cache line 失效, 软件就不需要明确地flush cache line了(see Section 10.4.6.2. of Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1)。

03

总结

本期我们介绍了NVDIMM 的几种实现方式, 以及为了发挥NVDIMM-P 的性能所做的硬件上的优化和支持。后面我们会继续介绍软件方面的支持, 包括编程模型, 编程库, SPDK方面的支持等。敬请期待。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DRAM
    +关注

    关注

    40

    文章

    2176

    浏览量

    181997
  • 存储技术
    +关注

    关注

    5

    文章

    699

    浏览量

    45626
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72753

原文标题:内存之后,下一代存储技术是什么?

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NVDIMM-P内存最新技术,能够在意外断电时保留原有数据

    内存的灵活方法所驱动的。NVDIMM-P 内存能够在意外断电时保留原有数据,与英特尔傲腾(Optane)内存芯片比较类似。   JEDEC混合DIMM任务组标准化NVDIMM主席Jonathan
    的头像 发表于 03-17 17:03 4933次阅读

    定点算法实现优化

    发挥出来。3.3 循环展开优化 循环展开是另一种优化程序的方法。为了充分利用芯片内的硬件资源,使尽可能多的指令同时并行执行,可以采用将小循环展开的方式,使片内资源的
    发表于 04-18 10:54

    HBase性能优化方法总结

    HBase是Hadoop生态系统中的一个组件,是一个分布式、面向列的开源数据库,可以支持数百万列、超过10亿行的数据存储,因此,对HBase性能提出了一定的要求,那么如何进行HBase性能优化
    发表于 04-20 17:16

    如何采用VHDL硬件实现DDS的优化设计与实现

    直接数字频率合成器DDS具有哪些特点?DDS基本原理及工作过程解析采用VHDL硬件实现DDS的优化设计与实现
    发表于 04-12 06:28

    优化的关键,RISC-V中的性能监控

    定制或厂商特定的方案,而缺少通用性能监控软件工具的完整支持。Perf对RISC-V的支持系统级的性能优化往往是靠
    发表于 12-27 08:00

    Camellia加密算法基于硬件实现优化

    分别从整体和局部的角度,提出Camellia 算法几种基于硬件编程实现优化方法。在整体角度,以轮循环和模块复用方式
    发表于 01-15 15:49 13次下载

    IDT 公布业界首款 DDR4 NVDIMM 电源管理集成电路

    NVDIMM 应用开发的电源管理集成电路(PMIC)。IDT® P8800 提供完全集成、可通过软件编程的解决方案——该方案能够管理所有 DIMM 上的电压保护、电源切换和过流过压保护—— 籍此使各个 NVDIMM 解决方案能够高效率地调整至更大的密度、可靠度和
    发表于 02-08 15:36 1366次阅读

    内存之后,下一代存储技术怎么用?

    随着存储技术的发展,对存储性能的不懈追求,高性能存储开始探索向内存通道的迁移。在这样的情况下, NVDIMM 技术便应运而生了。
    的头像 发表于 03-21 11:05 3534次阅读
    内存之后,下一代存储技术怎么用?

    新思科技推出业内首个DDR5 NVDIMM-P验证IP 加速验证工作完成

    新思科技(Synopsys,Inc.纳斯达克股票代码:SNPS)近日宣布为DDR5/4非易失性双列直插式内存模块(NVDIMM-P),推出业内首个验证IP (VIP)。NVDIMM-P是新一代存储
    的头像 发表于 05-17 09:43 3207次阅读

    ASIC设计方案提供商灿芯半导体为NVDIMM OEM提供控制器芯片方案

    芯片解决方案。 非易失性双列直插式内存模块(NVDIMM)是计算机的一种随机存取存储器,即使在遇到供电不稳、系统崩溃或正常关机等断电情况时仍保留其内容。NVDIMM可快速恢复现场,提高应用程序性能,数据安全性和系统崩溃修复时间,
    发表于 10-28 16:20 1057次阅读

    NVDIMM-P非易失内存标准公布:断电不丢数据、兼容DDR4

    ,和普通用户无关。 现在,JEDEC固态技术标准协会发布了DDR4 NVDIMM-P非易失内存标准规范,序列编号JESD304-4.01,也可以在断电后不丢失数据,而且完全兼容DDR4内存标准。 根据规范,这种新内存兼容普通的DIMM内存标准、固件,可以最大程度减少对于现有设备、平台的更改,同
    的头像 发表于 02-19 10:04 1578次阅读

    NVDIMM-P非易失内存标准正式公布

    我们知道,传统的DDR DIMM内存是易失性的,也就是必须维持通电才能保持数据,一旦断电就都没了。
    的头像 发表于 02-19 10:18 1546次阅读
    <b class='flag-5'>NVDIMM-P</b>非易失内存标准正式公布

    NVDIMM – 内存和存储的完美结合

    与 DDR-DIMM 相比,SSD/HDD 提供对服务器的访问速度要慢得多,并且会造成性能差距。为了克服固态硬盘/硬盘和 DDR-DIMM 之间的这种性能差距,市场上正在发展一种称为 NVDIMM 的新技术。这项新技术可以在SS
    的头像 发表于 05-26 10:34 2093次阅读
    <b class='flag-5'>NVDIMM</b> – 内存和存储的完美结合

    下一代内存技术:准备好迎接验证挑战了吗

    NVDIMM:又名非易失性双列直插式内存模块。这是一个RAM DIMM,在电源关闭时不会丢失其数据。这两种强大技术的结合为提高应用程序性能、数据安全性和系统崩溃恢复时间提供了一系列好处。Synopsys 正在与内存供应商密切合作,以捕获要包含在
    的头像 发表于 05-26 15:21 493次阅读
    下一代内存技术:准备好迎接验证挑战了吗

    java实现多线程的几种方式

    Java实现多线程的几种方式 多线程是指程序中包含了两个或以上的线程,每个线程都可以并行执行不同的任务或操作。Java中的多线程可以提高程序的效率和性能,使得程序可以同时处理多个任务。
    的头像 发表于 03-14 16:55 173次阅读