当前位置: 首页 > 专利查询>微软公司专利>正文

在虚拟机中避免高速缓存行共享制造技术

技术编号:5409149 阅读:245 留言:0更新日期:2012-04-11 18:40
在虚拟机中避免高速缓存行共享可在运行主机和多个客机操作系统的系统中实现。主机帮助客机操作系统的硬件访问并监督客机的存储器访问。因为高速缓存行与以规则间隔隔开的存储器页相关联,所以主机可以将客机存储器访问只定向到选择的存储器页,并且因而将客机高速缓存使用限制到一个或多个高速缓存行。通过将存储器访问定向到单独的一组存储器页,可以将其它客机限制到不同的高速缓存行。

【技术实现步骤摘要】
【国外来华专利技术】在虛拟机中避免髙速缓存行共享背景最近的文章,如Daniel Bernstein的Cac/2e-"w/"g a"acfo ow O^^ES 游/^^"^#定好攻击>> ,2005,禾B Colin Percival的Cac/ze M/肌'"g/or 尸ra^ C^意^7存意游/^^^存末^^ , 2005,和Dag Arne Osvik、 Adi Shamir、 Eran Tromer的CacAe爿加由朋d CoM她,eoswms"/2e o/f裔遂缓存攻 击浙^/枭.'爿五S游獰况J , 2005,以及Joseph Bo皿eau、 Ilya Mironov的 Cac/ze-Co〃/w'o" 77w/"gv4"ac^ ^ga/"W ^五SO!7^^;S游/^^^^V^^"定^/"攻击义 2006,公开了可能影响运行虚拟机的系统的潜在安全漏洞。简言之,在多个客 机操作系统共享单个或多个处理器而处理器又共享存储器总线的情况下,恶意 的客机可能发现一个或多个其它客机的私钥。这可通过1、将数据加载到高速缓存;2、以某种方式使受害的客机运行 将要填充存储器的代码;以及3、随后在尝试检索加载到高速缓存中的数据的 同时测量其这样做所耗的时间来实现。通过测量其检索加载到高速缓存中的数 据所耗的时间,恶意的客机发现这些数据实际上是否仍在高速缓存中。如果数 据不在高速缓存中,将花更多时间来检索。如果数据不在高速缓存中,则可以 推断受害的客机使用了该高速缓存位置。通过确定受害的客机使用了哪些高速 缓存位置,恶意的客机可以对受害者的操作有所了解,且可能足以危及受害者 的安全。如在上述参考文献中所提供的对高速缓存线密码分析的现有的推荐解决 方案建议改变加密算法来屏蔽存储器访问。这有若干限制。首先,其要求重写 加密算法,这是代价高昂的任务。其次,其假定可以将算法做得抗分析。第三, 重写算法可能显著地影响其性能。当在虚拟机上运行时,诸如隔离操作系统中的存储器以保护加密过程等其 它缓和措施也可能处于危险中。这是因为以下事实虚拟化的客机操作系统可 能不能控制其存储器是如何分配给它的以及其它存储器是如何分配给其它可 能不友好的分区的。虚拟机技术在当今的
中日益重要。例如,可能涌现其中多个客机 操作系统由商业主存服务来主存的业务模型。在这种设置中不能容许安全威 胁。本专利技术解决上述漏洞,并且还提供可以保证本专利技术也可用于非安全相关目 的的性能增益。概述考虑到以上标识的现有技术的缺点,本专利技术提供用于在虚拟机中避免高速 缓存行共享的系统和方法。例如,在运行主机和多个客机操作系统的系统中,主机帮助客机操作系统的硬件访问。具体地,主机可以监督客机操作系统的存 储器访问。因为高速缓存行与以规则间隔隔开的存储器页相关联,所以主机可 以将客机存储器访问只定向到选择的存储器页,并且因而将客机高速缓存使用 限制到一个或多个高速缓存行。通过将存储器访问定向到单独的一组存储器 页,可以将其它客机限制到不同的高速缓存行。以下将描述本专利技术的其它优点 和特征。附图简述将参考附图进一步描述根据本专利技术的用于在虚拟机中避免高速缓存行共 享的系统和方法,在附图中附图说明图1示出向多个客机分区分配存储器的现有技术方法。第一客机可以使用 例如分区A110中的存储器,其是与高速缓存行l、 2、 3和4相关联的存储器 页的连续块。如果执行了上下文切换,则另一客机可以使用同一高速缓存行和 存储器页。图2示出包括处理器210、 220,高速缓存行211、 212、 221、 222,主机 203,客机201、 202和存储器230的设备200。客机存储器访问被定向到与某 些高速缓存行相关联而不与其它高速缓存行相关联的存储器页。其它客机可以 使用与不同的高速缓存行相关联的存储器页。图3示出根据本专利技术的实施例向客机分区分配存储器。第一客机可以使用 分区A310,其是存储器页的按规则间隔隔开的非连续块,故只与高速缓存行61相关联。如果执行了上下文切换,则其它客机可以使用与诸如高速缓存行2等不同的高速缓存行相关联的存储器页。图4示出用于管理客机的存储器访问的方法。图5示出用于将上下文从第一客机切换到第二客机的方法。图6示出用于将客机从第一处理器转移到第二处理器的方法。图7示出用于为例如共同实体所拥有的一组客机等一组相关客机保留高速缓存行和/或存储器地址的方法。 详细描述在以下描述和附图中描述了某些具体细节,以提供对本专利技术的各个实施例 的全面理解。然而,通常与计算和软件技术相关联的某些公知细节将不在以下 公开中描述,来避免对本专利技术的各实施例的不必要的混淆。此外,相关领域的 普通技术人员可以理解,他们可以无需以下描述的细节中的一个或多个而实现 本专利技术的其它实施例。最后,尽管在以下公开中参考了步骤和序列来描述各个 方法,但是如此的描述是为了提供本专利技术的实施例的清楚实现,且步骤以及步 骤序列不应被认为是实现本专利技术所必需的。图1表示简化的高速缓存模型。图1构想了包含具有4个高速缓存行150 的处理器和16页的物理存储器100的示例性系统。有三个客机分区110、 120、 130,其每一个都被分配了4页存储器。主机140被分配了1页。图1示出高速缓存行分配的传统方法,其导致在背景一节所讨论的安全漏 洞以及某些消极性能暗示。可以理解,现有的计算机处理器(有时被称为中央 处理单元(CPU))包含内部存储器高速缓存以改进数据访问和指令读取的性 能。这些高速缓存通常内部地专用于特定存储器部分以在处理器管芯中限制其 大小和复杂度。这一安排通常被称为"关联"给定的高速缓存缓冲区只可以相 关联于或被用来高速缓存预定义的存储器地址。例如,如果CPU寻址4K字节 页中的存储器且该CPU包含4个高速缓存行,则每第16K字节存储器将与同 一高速缓存行相关联。这意味着来自存储器地址OK的读将填充在第一高速缓 存行中。来自存储器地址16K、 32K、 48K等的任何后续读也可填充在第一高 速缓存行中而驱逐先前的读,即在该示例中是来自地址OK的读。在图1中,假想处理器在被称为1、 2、 3和4的4个高速缓存行150中存 储信息。在该示例中,每一高速缓存行具有由每一高速缓存行标识符下的4个 框所表示的4个"字(word)"。每一高速缓存行都与系统物理存储器页100 中的多个存储器页相关联。例如,如从图1中使用的阴影可以推出的,高速缓 存行1中的第一个字指的是系统物理存储器页100中的0K存储器页。高速缓 存行1中的第二个字指的是系统物理存储器页100中的16K存储器页。高速缓 存行1中的第三个字指的是系统物理存储器页100中的32K存储器页。高速缓 存行1中的第四个字指的是系统物理存储器页100中的48K存储器页。类似地,高速缓存行2中的各个字指的是系统物理存储器页100中的4K、 20K、 36K和52K存储器页。高速缓存行3中的各个字指的是系统物理存储器 页100中的8K、 24K、 40K和56K存储器页。高速缓存行4中的各个字指的 是系统物理存储器页100中的12K、 28K、 44K和60K存储器页。这一安排是 本领域技术人员所理解的公知且标准的硬件实现。应当注意,高速缓存行150可以是一级(本文档来自技高网
...

【技术保护点】
一种用于向多个客机操作系统提供硬件访问的系统,包括: 存储器230; 包括至少两个高速缓存行221、222的高速缓存,其中每一高速缓存行都与以规则间隔隔开的多个存储器页231-238相关联; 至少一个客机201; 主 机203,其被配置为按所述规则间隔分配所述至少一个客机所使用的存储器页231-238,以便所述至少一个客机201所使用的所有存储器页231、233、235、237都与所述至少两个高速缓存行221、222的受限子集222相关联。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:BS贝克
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1