NVDIMM原理与应用之一:基本原理

简介:

NVDIMM概述


1、简介

顾名思义,NVDIMM是Non-Volatile DIMM(非易失性内存)的简称。作为系统掉电后仍然保证数据不丢失的重要硬件,NVDIMM和NVRAM的功能类似,都是在系统掉电时仍然能够保证一部分内存里的数据不会丢失,并且当系统上电后数据能够自动恢复到内存当中。和NVRAM不同的是,NVRAM要么是把数据写回到PCIE接口的独立卡上,要么是依赖于独立的后备电池给DRAM在系统掉电时供电,而NVDIMM是把数据写回到自带的FLASH芯片上去。另外一个不同时,NVDIMM本身不需要额外的硬件设计,也不占用PCIE通道资源,它只用主板上DIMM上没有占用的DIMM插槽。


2、原理

从硬件的角度看,NVDIMM可以看作由四部分组成:用作内存的DRAM,保存数据的FLASH,控制两者并和CPU交互的中心控制模块(FPGA),以及在系统掉电后为前面三者提供暂时后备电源的超级电容。当系统掉电时,NVDIMM上的中心控制模块能够检测到,并且触发DRAM进入异步刷新模式,

当CPU cache、write combining buffer、store buffer中的数据都写回到DRAM后,中心控制模块再把DRAM里的数据写到NVDIMM上的FLASH里面去,相应数据的校验值也会写道FLASH。类似地,在系统上电后,NVDIMM上的中心控制模块先于CPU接管其上的DRAM,它初始化DRA,进行一些读写测试,确保无误后,通过校验值检查FLASH上是否有之前保存的完整数据,如果之前保存到FLASH里的数据完整,就把它写回到DRA。完成这些步骤后,中心控制模块再把DRAM的控制权交还给CPU,此后CPU可以像对待普通的NVDIMM一样往NVDIMM上的DRAM里读写数据。


3、核心IP

通过以上对硬件的分析,可以看到NVDIMM最核心的IP就是中心控制模块的设计,它既是DRAM控制器,又含有FLASH控制器,还能监控CPU以及主板上的相关信号,此外还能生成校验值。这也就难怪为了保护知识产权,为什么现在市面上能买到的NVDIMM上的中心控制模块,都用FPGA的形式实现。

此外,为了确保每次掉电NVDIMM都能保证把DRAM的内容保存到FLASH里面去,作为临时后备电源的超级电容的续航能力和稳定性尤其重要。否则就可能出现DRAM的内容没有全部备份到FLASH里去,超级电容的电量就已耗尽的情况,这就根本起不到掉电保护数据的作用。因此,超级电容的稳定性、续航能力决定了整个NVDIMM的稳定性和强壮程度。

当然,为了保证数据一致性,特别是能把掉电之前NVDIMM的DRAM所对应的 在cache、write combining buffer、store buffer里的任何数据都写回到FLASH,需要系统软硬件的综合设计,这就要求处理器厂商、主板厂商、NVDIMM厂家、BIOS厂商一起协作,设计好实现的方法。


4、使用方法

从系统软件的角度来看,NVDIMM既可以当作一个透明的DRAM,也可视作一个字符设备。但无论如何,使用的时候它必定需要映射到用户可以访问的地址空间。同设备内存、独立显存的地址映射类似,NVDIMM上的DRAM可以支持uncache、write through、write combine这三种映射模式。当然如果硬件和系统软件能够自动写回cache以及write combining buffer和store buffer的内容到DRAM, cached的映射模式也是可以的。


5、应用场景

因为NVDIMM能够保证掉电基本不丢数据,因此它特别适合对数据完整性要求苛刻的场景,比如某些需要实时交易的金融行业、重要的信息平台等。此外,因为NVDIMM还能够上电后很快从NVDIMM上的flash恢复数据,它也可以用来加速系统的启动,显著地减少系统宕机时间,这对那些servie on time以及基本不允许宕机的应用来说特别有用。

















本文转自存储之厨51CTO博客,原文链接:http://blog.51cto.com/xiamachao/1736636 ,如需转载请自行联系原作者



相关文章
|
22天前
|
存储 缓存 算法
【软件设计师备考 专题 】主存-Cache存储系统的工作原理
【软件设计师备考 专题 】主存-Cache存储系统的工作原理
49 0
|
6月前
|
vr&ar 芯片
三级管集电极开路电路工作原理详细分析
三级管集电极开路电路工作原理详细分析
62 0
|
9天前
|
运维 监控 NoSQL
RedisShake的基本原理
RedisShake的基本原理
15 0
|
22天前
|
存储 缓存 并行计算
【软件设计师备考 专题 】CPU和存储器的组成、性能和基本工作原理
【软件设计师备考 专题 】CPU和存储器的组成、性能和基本工作原理
52 0
|
4月前
|
存储 缓存 Windows
探秘磁盘的奥秘:物理结构、缓存和虚拟内存的作用
本文介绍了磁盘的物理结构、磁盘缓存和虚拟内存的重要性,并解释了它们在计算机系统中的作用。了解磁盘的物理结构可以帮助我们更好地理解数据的存储和访问过程,从而进行系统优化和性能提升。磁盘缓存和虚拟内存则能够提高数据读取速度和运行程序的能力。深入了解这些知识,将为您的计算机系统带来更好的性能和效率。
206 1
|
5月前
|
监控 算法 Java
进程调度的原理和算法探析
本文探讨了进程调度的原理和算法,并提供了全面的概述。进程调度是操作系统中的重要组成部分,用于决定进程的执行顺序和分配CPU时间。我们讨论了优先级调度和时间片轮转调度算法。优先级调度根据进程的优先级确定执行顺序,可以分为抢占式和非抢占式。时间片轮转调度将CPU时间划分为固定大小的时间片,每个进程在一个时间片内执行。合理设置时间片长度能够避免资源浪费和频繁的上下文切换。最短作业优先和最短剩余时间优先是常见的调度算法,通过预估和动态计算进程的执行时间提高系统效率和响应速度。多级反馈队列调度综合了优先级调度和时间片轮转调度的优点,适应不同类型的进程和任务。通过本文的阐述,读者将对进程调度的原理和算法有
196 0
进程调度的原理和算法探析
|
存储
硬盘是什么?工作原理是什么?底层原理是什么?
硬盘是什么?工作原理是什么?底层原理是什么?
726 0
|
存储 缓存 Java
【优化技术专题】「底层架构原理系列」CPU处理器鲜为人知的那些秘密
【优化技术专题】「底层架构原理系列」CPU处理器鲜为人知的那些秘密
331 0
【优化技术专题】「底层架构原理系列」CPU处理器鲜为人知的那些秘密
|
测试技术
3分钟,看懂ABtest基本原理
今天跟大家分享的是万众期待的ABtest原理。其实ABtest的难度主要在开发上:开发新版本、进行测试、测试数据回传保存等等。在数据上,ABtest原理很简单,只要上一篇《3分钟,看懂假设检验》认真看了的话,能很轻松get哦!
803 0
3分钟,看懂ABtest基本原理
|
监控 vr&ar 芯片
一文搞懂步进电机特性、原理及驱动器设计
一文搞懂步进电机特性、原理及驱动器设计
一文搞懂步进电机特性、原理及驱动器设计