NVM (非易失型存储-持久性内存) 编程模型与访问模式; PMDK 架构; App Direct

Intel 持久内存,是19年4月,唯一实现量产的持久内存,目前已经有两代产品可以买到。它的出现,带给存储子系统带来一些新的挑战。

Intel 持久内存实物图:2022-01-09 16:06:39

Intel 持久内存 硬件位置:2022年01月09日16:06:43

持久内存编程模型与层次结构:

 

关键点:2022年01月09日16:41:06

为了数据的持久化,Intel 提出了 Asynchronous DRAM Refresh(ADR)机制。ADR 机制保证,一旦写请求达到 ADR 中的 WPQ(Write Pending Queue),就能保证数据的持久性。

除了 WPQ,Optane DIMMs 上也有缓存数据,ADR 机制同样会保证这部分数据的持久化。

但 ADR 机制无法保证 CPU Cache 中的数据的持久化,其中有 三个Cache相关指令 值得关注:

  • CLFLUSHOPT 指令,执行完成后,CPU Cache 中的相关数据被逐出;
  • CLWB 指令,执行完成后,CPU Cache 中的相关数据依然有效;
  • NTSTORE 指令,可以做到数据写入的时候 bypass CPU Cache。

为了保证 CPU Cache 上的数据持久化,可以调用 CLFLUSHOPT 或 CLWB 指令,将 CPU Cache Line Flush 到 Optane DIMMs 中;

由于,CLFLUSHOPT 和 CLWB 指令都是异步执行的,所以一般需要跟随一个 SFENCE 指令,以保证 Flush 执行完成;

CPU 提供的 NTSTORE(Non-temporal stores)指令可以做到数据写入的时候 bypass CPU Cache,这样就不需要额外的 Flush 操作了。

性能测试:

使用 FIO 对 PMEM 设备进行测试;解决问题 fio: engine libpmem not loadable

参考链接:

https://pmem.io/glossary/#programming-model

https://pmem.io/glossary/#pmdk

PERSISTENT MEMORY: NVDIMMS

USING NVDIMM PERSISTENT MEMORY STORAGE

2022年01月09日16:07:16 更新;

https://www.storagereview.com/news/intel-optane-dc-persistent-memory-module-pmm 

持久化内存调研

https://www.intel.com/content/www/us/en/developer/topic-technology/persistent-memory/overview.html

保持更新,转载请注明出处;cnblogs.com/xuyaowen;

posted @ 2021-07-01 18:56  "Michael_Xu"  阅读(895)  评论(0编辑  收藏  举报