某些CPU和编译器提供预取指令.例如:GCC文档中的 __builtin_prefetch .虽然GCC的文件中有评论,但它对我来说太短了.
我想知道,在prantice中,我们应该何时使用预取?有一些例子吗?谢谢!
这里所述的_mm_prefetch调用将内容从RAM中的给定存储器位置预取到高速缓存行.但是缓存完全在硬件控制之下吗?基于经常访问的存储器(基于空间/时间位置),硬件将内容从存储器预取到高速缓存.我认为程序员无法控制缓存,它完全是一种硬件机制.
所以我的理解是错误的,缓存实际上可以由我们控制,对吧?
如果_mm_prefetch可以控制什么可以放在缓存中,
这是否意味着它永远不会从缓存中删除?
什么是等效的汇编级指令,它适用于缓存机制?