[发明专利]一种基于缓存随机无效的处理器瞬态攻击防御方法有效
申请号: | 202010053213.6 | 申请日: | 2020-01-17 |
公开(公告)号: | CN111259384B | 公开(公告)日: | 2022-06-14 |
发明(设计)人: | 武成岗;王喆;唐博文;贾力陈;谢梦瑶 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F21/55 | 分类号: | G06F21/55;G06F12/0808;G06F12/0811;G06F12/084;G06F12/0842 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 缓存 随机 无效 处理器 瞬态 攻击 防御 方法 | ||
1.一种缓存管理方法,用于包含一级或者多级缓存的数据处理装置,每级缓存包括普通缓存和影子缓存,
所述缓存管理方法包括:
响应于访存请求,将包含投机的访存装载指令所需数据的数据块装载到普通缓存;
在普通缓存的数据块被投机的访存装载指令装载进来的数据块踢出普通缓存时,执行以下操作:
将被踢出的数据块装入该普通缓存所在的缓存的影子缓存,并且,
从所述普通缓存的所有缓存行中随机选择缓存行作为干扰缓存行,将干扰缓存行的数据块写到下一级存储介质后将干扰缓存行无效,其中,所述下一级存储介质是下一级缓存或者主存。
2.根据权利要求1所述的缓存管理方法,其特征在于,所述缓存管理方法包括:
在所述缓存中存储备选组号集合,所述备选组号集合包括随机选择缓存行时备选的缓存组的组号;
在所述缓存中存储备选路号集合,所述备选路号集合包括随机选择缓存行时备选的缓存行的路号;
响应于所述缓存的普通缓存的数据块被投机的访存装载指令装载进来的数据块踢出普通缓存的操作,按照以下方式从所述缓存的普通缓存的所有缓存行中随机选择缓存行作为干扰缓存行:
从备选组号集合中随机选择一个组号以及从备选路号集合中随机选择一个路号,将位于该组号中该路号的缓存行作为随机选择的干扰缓存行。
3.根据权利要求2所述的缓存管理方法,其特征在于,所述缓存管理方法还包括:
响应于特定缓存组屏蔽请求,将所述特定缓存组屏蔽请求中指定的特定缓存组的组号从所述备选组号集合中移除。
4.根据权利要求1所述的缓存管理方法,其特征在于,所述缓存管理方法包括:
响应于访存请求,将包含非投机的访存装载指令所需数据的数据块装载到普通缓存,在普通缓存的数据块被非投机的访存装载指令装载进来的数据块踢出普通缓存时,将被踢出的数据块踢到下一级存储介质。
5.根据权利要求1所述的缓存管理方法,其特征在于,普通缓存采用组相联映射来实现主存的数据块到缓存行的映射,影子缓存采用全相联映射来实现主存的数据块到缓存行的映射。
6.根据权利要求1至5任一项所述的缓存管理方法,其特征在于,所述缓存管理方法还包括:
在所述缓存中存储每个缓存行对应的投机状态标记,其中,投机状态标记的第一状态值指示该缓存行的数据块是由投机的访存装载指令装载进来的,投机状态标记的第二状态值指示该缓存行的数据块由非投机的访存装载指令装载进来的;
在所述缓存中存储每个缓存行对应的重排序索引标记,所述重排序索引标记用于指示将数据块装入该缓存行的投机的访存装载指令在重排序缓冲器中对应的重排序索引;
在投机的访存装载指令投机成功的情况下,根据该投机的访存装载指令在重排序缓冲器中对应的重排序索引,寻找重排序索引标记中记录的值等于该重排序索引的缓存行,将该缓存行对应的投机状态标记由第一状态值修改为第二状态值且清空重排序索引标记。
7.根据权利要求6所述的缓存管理方法,其特征在于,所述缓存管理方法还包括:
在投机的访存装载指令投机失败的情况下,根据该投机的访存装载指令在重排序缓冲器中对应的重排序索引,寻找重排序索引标记中记录的值等于该重排序索引的缓存行,将该缓存行标记为无效。
8.根据权利要求1至5任一项所述的缓存管理方法,其特征在于,所述缓存管理方法还包括:
在装载数据块到缓存行的投机的访存装载指令的投机过程还未确定而处理器要再次访问该缓存行时,延迟访问结果的传输直到该投机的访存装载指令的投机过程已经确定,
其中,在确定该投机的访存装载指令投机成功时,传输的访问结果为命中,
在确定该投机的访存装载指令投机失败时,传输的访问结果为未命中。
9.一种计算机可读存储介质,其特征在于,其上包含有计算机程序,所述计算机程序可被处理器执行以执行权利要求1至8中任一项所述的缓存管理方法。
10.一种数据处理装置,其特征在于,包括:
一个或者多个处理器;以及
存储器,用于存储一个或多个可执行指令,所述存储器包括一级或者多级缓存和缓存控制器,每级缓存包括普通缓存和影子缓存;
所述缓存控制器对所述一级或者多级缓存按照如权利要求1至8任一项所述的方法进行缓存管理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010053213.6/1.html,转载请声明来源钻瓜专利网。