首页
社区
课程
招聘
如何保证transmitter访问vaddr会在L3 cache留下痕迹?

提问者:
waynehao 2020-7-19

 

老师您好,有几个问题想请教下。
1.如何保证transmitter访问vaddr会在L3 cache留下痕迹?是如何保证该痕迹不会在L1 L2 cache留下?

 

2.请问receiver为什么要计算出16个虚拟地址?16是如何得来的?

 

3.如何保证计算的16个虚拟地址都能映射到同一个L3 cache中?谢谢老师!

收藏
1条回答
teacher 2023-5-23

第一个问题,循环,循环里面就一个访存语句mov [vaddr],eax可以保证vaddr在L3留下cache entry。会在L1、L2中也留下,这是肯定的,对于transmitter不需要考虑这个问题,因为他只需要确保把receiver填充的16个entry任意踢出去一个就行了,在L1、L2留下痕迹也无所谓。真正有影响的是receiver,因为他有一个很重要的步骤是判断自己之前填充的entry是否被从L3中踢出去了一个,这个步骤是通过测量16个虚拟地址的遍历时间判断的,L1、L2的存在会对这个测量过程引入噪声,假设地址a和地址b都缓存在L3,a同时也出现在L2和L1,b只存在于L3,那么a和b的访存延迟就相差很大,这就是噪声

 

第二个问题,16是L3的缓存相联度,这个可以通过cpuz工具查看

 

第三个问题,我在第一章节的最后一课会讲解具体算法,现在应该还看不到

回复 已采纳
Intel CPU漏洞研究
  参与学习     82 人
  提问次数     2 个
《Intel CPU漏洞研究》0day、从原理及实际应用方向两个角度,洞悉前沿CPU原理,快速成为CPU漏洞专家
我的问答 领取收益
0
我的提问
0
我的回答
0
学习收益