我正在编写一些涉及 L1/2/3 缓存驱逐和 TLB 条目失效的代码。我尝试使用指令INVLPG
使 TLB 条目失效并验证 实现的一些结果mprotect()
,但我对INVLPG
和mprotect()
对缓存层次结构的影响都表示怀疑,因为这对我来说很重要。
具体来说:当使给定地址的INVLPG
TLB 条目无效(或mprotect()
降低对 TLB 条目具有类似效果的权限)时,是否会对给定地址的 CPU 缓存造成任何副作用?它是否可能导致创建缓存条目或影响缓存条目?
我找不到有关它们的缓存交互的具体细节。