参考文章:

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?

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

综合考虑成本因素,为发挥最优性能(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中内置傲腾缓存)。

  1. 傲腾增强型固态盘

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

  1. 傲腾SSD

PCIE协议,下为规格:

主要应用场景为:

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

产品形态为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 中。

  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的一种实现。

SCMNVDIMM学习笔记相关推荐

  1. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  2. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  3. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  4. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  5. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  6. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  7. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  8. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

  9. MongoDB学习笔记(入门)

    MongoDB学习笔记(入门) 一.文档的注意事项: 1.  键值对是有序的,如:{ "name" : "stephen", "genda" ...

最新文章

  1. GPU 原理解密(一)画个三角形居然这么难
  2. 【NLP】N-LTP:基于预训练模型的中文自然语言处理平台
  3. oracle错误号大全(查询ora错误号以及解决方法技巧)
  4. 百度feeds联盟软件测试开发,UI 自动化测试用例整理举例-百度首页
  5. maven 引入war
  6. (记录合并)union和union all的区别
  7. 40.Linux/Unix 系统编程手册(下) -- 登录记账
  8. AFNetworking请求服务器错误
  9. redis与数据库同步的解决方案
  10. 如何将手机里的小视频做成GIF动图?一键轻松生成GIF动画
  11. 仿苹果官网产品页面效果特效
  12. c语言memcmp函数详解,C语言之memcmp()函数
  13. “体验版”PyTorch 2.0备受瞩目,它到底好在哪里?
  14. HBuilder详细安装教程
  15. MySQL复制+高可用技术
  16. Android开源的社交应用
  17. 从哲学的角度来看面向对象中的主体客体思维
  18. Web返回结果和HTTP状态码详解
  19. JSON和byte[]
  20. fedora 27字体美化达到ubuntu级别

热门文章

  1. GRUB启动分析之stage1
  2. C#播放声音【六种方法】
  3. requests库和beautifulsoup爬取豆瓣书本数据并存入excel
  4. 使用HttpClient实现文件的上传下载
  5. 谷歌,草色遥看近却无
  6. C# 时间处理(DateTime和TimeSpan)
  7. Codeforces Gym 100231G Voracious Steve 记忆化搜索
  8. MP3格式如何转换为aac格式
  9. C语言中void代表什么意思?
  10. 46.全排列 47.全排列 II