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
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;