Skip to content

ShenJunkun/nvm_study

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

资料目录

NVM学习相关网站和资料

Code

python nvm

笔记目录

pmem相关指令

CLWB

CLWB(Cache Line Write Back)是一条指令。用于PMEM设备的数据持久化,即把CPU cache中数据持久化PMEM的介质中。该指令用于只支持ADR模型的设备,对于支持eADR的设备,可以不使用eADR指令从而达到更好的性能。

CLFLUSHCLFLUSHOPT指令不同,CLWB在把脏数据写到pmem的介质中后,CPU cache line中的数据仍然有效。

CLFLUSHOPT相似,CLWB没有包含隐含的fence, 所以使用该指令后,一般会使用SFENCE指令。

CLUSH

CLUSH(Cache Line Flush)把CPU中cache中的数据刷新到介质中,CLUSH指令包含FENCE指令,所以如果需要FLUSH多条cache line,CLUSHFENCE指令是穿行的。

CLUSH指令后,对应的cache line失效。

CLFLUSHOPT

CLFLUSHOPT是对CLUSH指令的优化版本,实现了一定程序上的并行。

NT Store

NT Store(Non-Temporal Store): 对于持久内存,NT存储非常有用,因为它们绕过CPU缓存,因此存储变得持久,而不需要像CLWB这样的额外刷新指令。值得注意的是,英特尔的NT存储是写合并,而不是像普通内存存储那样回写。这意味着,在发出像SFENCE这样的fence指令之前,存储对其他线程不一定是全局可见的。 像PMDK这样的库大量使用NT存储。例如,libpmem库使用启发式方法来确定使用哪种方法更好地复制内存范围

(以上内容参考:https://pmem.io/glossary/#clflushopt)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published