问题描述
是否存在一条指令,我可以使用该指令在内存中将变量移入/移出寄存器,而无需将其存储在高速缓存中?我不想使用CD位完全禁用缓存,我只想对单个内存进行访问.
Is there an instruction using which I can move a variable to/from memory and registers without it being stored in cache? I don't want to disable caching entirely by using CD bit, I only want to do this for individual memory accesses.
推荐答案
movnt
存储旁路缓存,但 movntdqa
加载对于普通(写回)内存区域可能不会这样做.
movnt
stores bypass cache, but movntdqa
loads may not do that for normal (write-back) memory regions.
指令集参考手册非常清楚,它与WB存储器上的movdqa
可能没有什么不同,但是IDK可以在当前的任何微体系结构上实际发生.
The instruction-set reference manual is very clear that it might not be any different from movdqa
on WB memory, but IDK what actually happens on any current microarchitectures.
movntdqa
旨在加快诸如从WC视频RAM中读取内容的速度,例如将硬件视频解码器的结果复制回主存储器.
movntdqa
is intended to speed up stuff like reading from WC video RAM, e.g. copying the results of a hardware video decoder back to main memory.
这篇关于英特尔关于跳过缓存的内存访问说明的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!