SCM&NVDIMM学习笔记

参考文章:

https://blog.csdn.net/BtB5e6Nsu1g511Eg5XEg/article/details/93984203

http://www.openpcba.com/web/contents/get?id=4359&tid=15

http://www.360doc.com/showweb.aspx?id=910957413

https://www.stmcu.org.cn/article/id-330077

http://www.elecfans.com/d/886743.html

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • 什么是SCM?

SCM&NVDIMM学习笔记_第1张图片

上图为信息存储介质金字塔,从“塔顶”到“塔底”性能和价格逐渐下降。

综合考虑成本因素,为发挥最优性能(capability),在计算机硬件架构设计的过程中,寄存器(Register)和SRAM(Cache)一般在芯片内部使用,缓存一般使用DRAM,主存储使用SSD和HDD等。金字塔从“塔顶”到“塔底“使用的容量(capacity)也逐渐增大。

按照介质掉电后数据是否丢失,又可以将上述介质分为两大类:易失性、非易失性。这些介质被有序合理的规划在计算机的各个部位中。

然而经过科学家研究发现,DRAM与SSD之间介质的性能存在较大差距。是否可以研发一种新的介质,使得其性能介于DRAM与SSD之间,但同时又具备非易失性?

科学家们用事实证明了答案。

SCM(storage class memory),存储级内存就是此类介质。

  • SCM介质有哪些?

目前主流的SCM有4类物理介质:PRAM、ReRAM、MRAM和NRAM。

  1. PRAM(Phase-Change RAM)利用特殊合金材料在晶态和非晶态下的导电性差异来表示0或1的状态。结构简单,便于实现大容量和低成本,但对于高温比较敏感。PRAM的寿命和DRAM仍有一定差距,因此一般会采用系统优化的设计。例如,搭配DRAM,形成分级的大容量内存资源池,同时满足高性能和高可靠要求。典型代表为Intel和Micron联合研发的3Dxpoint。
  2. ReRAM(Resistive random-access memory)即阻抗随机存储器,通过在上下电极间施加不同的电压,控制Cell(存储单元)内部导电丝的形成和熔断从而对外呈现不同的阻抗值。由于不同阻抗值可以表示不同状态,故理论容量密度和成本较可观;然而其读写寿命和性能都较低。典型代表厂商为HPE和Crossbar。
  3. MRAM(Magnetic Random Access Memory)即磁性随机存储器,通过电流磁场改变电子自旋方向来表示不同状态,理论性能和寿命都很高,适用于贴近CPU侧的高速缓存(如L2 Cache,LLCache),代表厂商为Toshiba和Everspin。
  4. NRAM(Nantero’s CNT Random Access Memory)即碳纳米管随机存储器,采用碳纳米管作为开关,控制电路通断表示不同的数据状态。由于碳纳米管尺寸非常小并且具备极强的韧性,因此NRAM理论制程可以达到5nm以下,密度和寿命及其优秀,理论功耗也比较低,可用于替代SRAM。当前由Nantero授权其他存储芯片厂商加工。
  • Intel傲腾数据中心级产品

傲腾数据中心级产品有两个系列,分别是Persistent Memory(持久性内存)、Solid state drive(固态盘)。另外,结合Intel的最新闪存技术3D NAND,傲腾系列添加了一款增强型固态盘(在SSD中内置傲腾缓存)。

SCM&NVDIMM学习笔记_第2张图片

  1. 傲腾增强型固态盘

SCM&NVDIMM学习笔记_第3张图片

为3D NAND SSD配置傲腾缓存,为其加速。规格如下:

SCM&NVDIMM学习笔记_第4张图片

  1. 傲腾SSD

PCIE协议,下为规格:

SCM&NVDIMM学习笔记_第5张图片

主要应用场景为:

  1. 元数据缓存:作为AFA产品的元数据缓存,配合DRAM,形成内存+SCM SSD的两级缓存机制。突破内存容量瓶颈,在保持性能稳定的情况下支持更大的用户容量;
  2. 数据缓存:作为用户数据的加速层,提升典型应用场景下的性能体验;
  3. 主存场景:作为用户数据的存储层,提供高性能存储系统以满足某些场景的性能要求。
  1. 持续缓存模式(PM)

SCM&NVDIMM学习笔记_第6张图片

产品形态为DIMM插卡,均使用内存总线,目前有128GiB、256GiB、512GiB三种规格。

PM的工作模式有三种,分别为内存模式、App Direct模式、双重模式。

  • 内存模式:

内存模式主要是为了解决DRAM容量的问题,在有限的成本条件下提升内存容量。实际的工作方式为:将DRAM作为PM的缓存,整体容量以PM为准。在这种工作模式下,数据是易失性的,按内存寻址方式(按字节寻址)。

  • App Direct模式:

操作系统将PM和DRAM视为两个独立的内存池,在这种工作模式下,数据是非易失性的,采用内存寻址的方式(按字节寻址)。由于应用可以直接访问PM,所以可降低堆栈复杂性,可有效的降低时延。

在AD模式下还支持块寻址模式,可通过两种方式实现:存储API、内存映射路径。

存储API沿用了传统的存储API,无需更改现有应用和文件系统,在应用和文件系统的眼中PM是一个高速的存储设备。

内存映射路径通过一个内存映射文件系统来对应用和文件系统开放PM的能力,由于应用的眼中是有 PM的,所以相应的它们需要使用PM时需要使用PM的接口。因而Intel提供了PMDK开源库用于编程开发。

NetAPP的MAX FS使用了内存映射路径技术,对于所有于NetApp ONTAP上的应用而言底层的存储模式是透明的。

  • 双重模式:

属于AD模式的子集,可通过预配置的方式让部分PM属于内存模式,一部分PM属于AD模式。

应用场景如下:

  1. 持久化内存:作为数据持久层,对数据一致性要求很高的持久化系统,同时兼顾数据可靠性和数据读写性能。
  2. 内存数据库:作为数据In Place空间,提供数据运行和持久化存储空间。
  3. 系统日志卷:作为日志卷,例如,在HPC系统中通常采用Checkpointing实现对计算中间状态进行持久化保存,这是一个耗时、耗系统吞吐量的过程。
  • 什么是NVDIMM

DIMM(Dual-Inline-Memory-Modules)是双列直插式存储模块。

NVDIMM(non-volatile dual in-line memory module)是非易失性双列直插式内存模块,是一种用于计算机的随机存取存储器。非易失性存储器是即使断电也能保留其内容的内存,这包括意外断电、系统崩溃或正常关机。双列直插式表示该内存使用DIMM封装。NVDIMM在某些情况下可以改善应用程序的性能、数据安全性和系统崩溃恢复时间。这增强了固态硬盘(SSD)的耐用性和可靠性。

有三种NVDIMM 的实现:NVDIMM-N、NVDIMM-F、NVDIMM-P。

  1. NVDIMM-N:如下图,指在一个模块上同时使用DRAM 和 flash 闪存。计算机通过内存总线直接访问DRAM,支持按字节和块寻址。掉电时,通过使用后备电源实现将数据从DRAM 拷贝到闪存中。当电力恢复时, 数据又可重新加载到DRAM 中。

SCM&NVDIMM学习笔记_第7张图片

  1. NVDIMM-F:指使用了DRAM的DDR3或者 DDR4 总线的flash闪存,只支持块寻址。一般而言,由NAND flash 作为介质的SSD使用了SATA、SAS或PCIe总线。而使用了DDR总线可以进一步提高带宽,减少由协议带来的延迟和开销。
  2. NVDIMM-P:类似于NVDIMM-N,同一个模块上也使用了DRAM和flash,支持块和字节寻址。NVDIMM-P在NVDIMM-N的基础上,通过增加接口或复用访问接口通道的方式,使cpu能够在正常工作时通过NVDIMM控制器访问flash。Intel 的基于3D XPoint™ 技术的Intel® Optane™ DC Persistent Memory,可认为是NVDIMM-P的一种实现。

你可能感兴趣的:(存储基础知识学习)