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 ,如需转载请自行联系原作者



相关文章
|
2月前
|
存储 缓存 算法
【软件设计师备考 专题 】主存-Cache存储系统的工作原理
【软件设计师备考 专题 】主存-Cache存储系统的工作原理
62 0
|
6月前
|
分布式计算 NoSQL Java
局部性原理——各类优化的基石(2)
CDN的全称是Content Delivery Network,即内容分发网络(图片来自百度百科) 。CDN常用于大的素材下发,比如图片和视频,你在淘宝上打开一个图片,这个图片其实会就近从CDN机房拉去数据,而不是到阿里的机房拉数据,可以减少阿里机房的出口带宽占用,也可以减少用户加载素材的等待时间。
42 0
|
存储 编解码 算法
信道编码概述 |带你读《5G空口特性与关键技术》之六
纠错编码的目的,是通过尽可能小的冗余开销确保接收端能自动地纠正数据传输中所发生的差错。在同样的误码率下,所需要的开销越小,编码的效率也就越高。
10263 2
信道编码概述 |带你读《5G空口特性与关键技术》之六
|
存储 缓存 5G
时域结构 | 带你读《5G 空口设计与实践进阶 》之十七
在时域,NR 支持基于符号灵活定义的帧结构,以满足各种时延需求。
时域结构 | 带你读《5G 空口设计与实践进阶 》之十七
|
11天前
|
Python
物理电学:原理、应用与编程实践
物理电学:原理、应用与编程实践
17 0
|
6月前
|
存储 缓存 NoSQL
局部性原理——各类优化的基石(1)
学过计算机底层原理、了解过很多架构设计或者是做过优化的同学,应该很熟悉局部性原理。即便是非计算机行业的人,在做各种调优、提效时也不得不考虑到局部性,只不过他们不常用局部性一词。如果抽象程度再高一些,甚至可以说地球、生命、万事万物都是局部性的产物,因为这些都是宇宙中熵分布布局、局部的熵低导致的,如果宇宙中处处熵一致,有的只有一篇混沌。
42 0
|
12月前
|
5G 调度
带你读《5G 系统技术原理与实现》——3.3 5G 时频资源
带你读《5G 系统技术原理与实现》——3.3 5G 时频资源
带你读《5G 系统技术原理与实现》——3.3 5G 时频资源
|
12月前
|
5G
带你读《5G 系统技术原理与实现》——3.2.1 5G 帧结构
带你读《5G 系统技术原理与实现》——3.2.1 5G 帧结构
|
12月前
|
5G
带你读《5G 系统技术原理与实现》——3.2.2 eMBB 帧结构及应用
带你读《5G 系统技术原理与实现》——3.2.2 eMBB 帧结构及应用
|
5G 调度 芯片
5G 帧结构 |带你读《5G空口特性与关键技术》之七
虽然在较高的载波频率下通常不使用较小的子载波间隔,但是参数集可以独立于频段进行选择。不同子载波间隔可用于不同的场景下。如对于室外宏覆盖和微小区,可以采用 30kHz 子载波间隔;而室内站则可以采用 60kHz 子载波间隔;对于毫米波,则可以采用更大的子载波间隔,如 120kHz。
10348 2
5G 帧结构 |带你读《5G空口特性与关键技术》之七