处理系统中信息的密码保护的制作方法

文档序号:10694086阅读:283来源:国知局
处理系统中信息的密码保护的制作方法
【专利摘要】一种处理器[102]在所述处理器的存储器存取路径中采用硬件加密模块[115]来以密码方式将安全信息隔离。在一些实施方案中,所述加密模块位于所述处理器的存储器控制器[110](例如,北桥)处,并且向所述存储器控制器提供的每个存储器存取指示所述存取是安全存储器存取,从而指示与所述存储器存取相关联的数据被指定用于密码保护,或是非安全存储器存取。对于安全存储器存取,所述加密模块对与所述存储器存取相关联的所述数据执行加密(针对写入存取)或解密(针对读取存取)。
【专利说明】处理系统中信息的密码保护
[0001 ] 背景
[0002]公开领域
[0003]本公开总体涉及处理器,并且更具体地,涉及处理器处的信息安全。
[0004]相关技术的描述
[0005]在许多处理器应用中,保护信息安全是重要的特征。例如,处理器可以在基础设施即服务(IAAS)环境中用于服务器中,在所述环境中处理器执行一个或多个虚拟机(VM)并且执行管理程序以便在VM之间划分服务器硬件并且将VM彼此隔离。因为可以代表不同的客户执行不同的VM,所以期望的是,保护由每个VM采用的信息(指令和数据)而免于被其他VM进行存取。常规地,管理程序通过维持针对每个VM的单独存储页表以及其他逻辑实体来维持VM信息的隔离。然而,管理程序中的缺陷(例如,bug)可能导致管理程序本身容易被利用,从而允许一个VM存取另一个VM的信息。即使在较私密的安全环境(诸如个人计算机)中,存储在存储模块中的数据也可能经受偷窃并且存储在其中的数据可能经受未授权的存取。
[0006]附图简述
[0007]通过参考附图,可以更好地理解本公开,并且它的众多特征和优点对本领域那些技术人员来说变得显而易见。在不同的附图中使用相同的参考符号指示类似或相同的物件。
[0008]图1是根据一些实施方案的在存储器控制器处采用加密模块以便将信息安全隔离的处理系统的框图。
[0009]图2是根据一些实施方案示出用于提供虚拟机隔离的图1的处理系统的示例实现方式的框图。
[0010]图3是根据一些实施方案示出使用转换后备缓冲器和页表在图1的处理系统处识别安全存储器存取的框图。
[0011]图4是根据一些实施方案示出使用客机页表和主机页表在图1的处理系统处识别安全存储器存取的框图。
[0012]图5是根据一些实施方案示出使用存储在图1的高速缓存处的标签隔离安全信息的框图。
[0013]图6是根据一些实施方案示出使用存储在图1的高速缓存的TLB处的标签隔离安全信息的框图。
[0014]图7是根据一些实施方案的在图1的高速缓存处处理存储器存取请求以便保护被指定用于密码保护的信息的方法的流程图。
[0015]图8是根据一些实施方案的在图1的高速缓存处处理存储器存取请求以便保护被指定用于密码保护的信息的另一种方法的流程图。
[0016]图9是根据一些实施方案的在图1的北桥处处理存储器存取请求以便保护被指定用于密码保护的信息的方法的流程图。
[0017]图10是根据一些实施方案的分配VM标识值以实现密码保护的方法的流程图。
[0018]图11是根据一些实施方案示出用于设计和制造实现处理系统的部件的至少一部分的集成电路装置的方法的流程图。
[0019]详述
[0020]图1-11示出用于通过在处理器的存储器存取路径中采用硬件加密模块以便以密码方式将安全信息隔离来保护处理系统处的安全信息的技术。在一些实施方案中,加密模块位于处理器的存储器控制器(例如,北桥)处,并且向存储器控制器提供的每个存储器存取指示所述存取是安全存储器存取,从而指示与所述存储器存取相关联的信息被指定用于密码保护,或是非安全存储器存取。对于安全存储器存取,所述加密模块对与所述存储器存取相关联的所述数据执行加密(针对写入存取)或解密(针对读取存取)。因为加密是由处理器的存储器存取路径中的硬件完成的,所以在没有正确的加密/解密密钥的情况下并不能对存储在存储器处的数据进行有意义的存取。
[0021]在一些实施方案中,在处理系统中采用处理器以便执行不同的虚拟机(VM),并且还以便执行管理程序来提供VM与处理系统的硬件(包括存储器)之间的接口。因为VM可以由不同用户(例如,不同客户)执行,所以希望VM彼此隔离,以使得一个VM不能够存取由另一个VM采用的信息(指令和数据)。常规地,已经使用管理程序通过为每个VM指派存储器的专用部分以及处理器系统的其他资源以供其专用来将VM隔离。然而,管理程序中的bug,或者已经被恶意修改以便充当利用工具的管理程序,可以允许管理程序或给定的VM检查或甚至更改另一个VM的信息。使用本文所述的技术,采用存储器控制器的加密模块来以密码方式保护每个VM的信息而免于被管理程序或其他正在运行的VM进行存取。因为密码保护是以处理器的存储器存取路径(在执行管理程序“下方”)的硬件实现的,所以管理程序中的bug或恶意管理程序将仅提供对不能理解或有意义地解释的加密数据的存取。
[0022]例如,在一些实施方案中,加密模块存储针对由处理器执行的每个VM的唯一密钥。在一些情境中,针对VM的密钥可以由与处理系统的处理器核心分开的安全模块生成,以使得正在处理器核心处运行的软件(包括管理程序)不能够存取所述密钥。响应于在存储器控制器处接收到存储器存取请求,加密模块识别出生成所述请求的VM并且使用所述请求VM的对应密钥对与所述请求相关联的数据进行加密或解密。所述数据因此以密码方式受到保护而免于被管理程序或其他VM进行存取。为了说明,即使是未经授权的VM想要检索存储在被指派给另一个VM的存储地址处的数据(例如,通过利用管理程序中的bug),所述数据本身也将被加密,并且因此对于未经授权的VM是无意义的。
[0023]在一些实施方案中,本文所述的技术是以物理上不安全的环境中采用的处理系统实现的,其中处理系统的存储器经受未经授权的物理存取(例如,对硬件存储器模块的偷窃或对所述存储器的物理探测)。然而,因为加密模块致使安全数据以加密形式存储在存储器处,所以即使所述安全数据经受未经授权的物理存取,它也不容易被利用。
[0024]图1根据一些实施方案示出提供信息密码保护的处理系统100。处理系统100包括处理器102和存储器120。处理系统100可以结合在多种电子装置中的任一个中,诸如服务器、个人计算机、平板电脑、机顶盒、游戏系统等。处理器102通常被配置来执行指令集(例如,计算机程序),所述指令集操纵处理器102的电路来执行所定义的任务。存储器120通过存储由处理器102使用的数据来促进这些任务的执行。存储器120可以是随机存取存储器(RAM)、非易失性存储器(诸如快闪存储器或硬盘驱动器(HDD)等,或它们的组合。
[0025]在执行指令集的过程中,处理器102生成存储器存取请求,包括将数据存储在存储器120处的写入请求以及从存储器120检索数据的读取请求。每个存储器存取请求包括存储器地址(例如,系统物理地址),所述存储器地址指示在作为所述存储器存取请求的目标的存储器120处的位置。响应于读取请求,存储器120检索存储在对应于所述读取请求的存储器地址的位置处的信息(数据或指令)并且将所述信息提供到处理器102。响应于写入请求,存储器120将所述请求的写入信息存储在对应于所述写入请求的存储器地址的位置处。
[0026]处理器102包括安全模块130。安全模块130是通用处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、处理器核心的操作模式、或者被设计和配置来执行用于处理系统100的安全操作的其他模块,包括有待在处理器102处执行的实体(例如,虚拟机、计算机程序等)的注册、针对待执行的实体的安全密钥的生成和识别、用于安全操作的处理系统100的认证等。在一些实施方案中,安全模块130可以在被容许执行其操作之前经历安全注册过程,并且可以使其操作仅限于安全操作,以使得所述安全模块130不能够执行导致其容易被利用的操作。如本文进一步描述的,安全模块130通过以下方式支持在处理系统100处的信息密码隔离:生成安全密钥,识别被注册来将在处理系统100处执行的实体,以及实现这种密码隔离的其他操作。
[0027]为了有助于指令的执行,处理器102包括处理器核心104和106、高速缓存105、107和108、桥北110以及安全模式寄存器121。处理器核心104和106是单独且同时执行指令的处理单元。在一些实施方案中,处理器核心104和106中的每一个包括单独的指令流水线,所述指令流水线获取指令,将所获取的指令解码成对应的操作,并且使用处理系统100的资源来执行所述操作(包括存储器存取请求)。处理器核心104和106中的每一个被配置来将每个存储器存取请求识别为以下两种类型中的一种:安全存储器存取请求,其指示对应于所述存储器存取请求的信息被指定用于密码保护;或非安全存储器存取请求,其指示对应于所述存储器存取请求的信息未被指定用于密码保护。
[0028]在一些实施方案中,处理系统100实现了安全方案,其中基于存储器地址所包含的控制位来指派针对信息(不管所述信息是否将以密码方式进行保护)的安全标志,所述存储器地址对应于信息在存储器120处的存储位置或对应于信息的类型(例如,指令或数据)。这允许容易地将大型数据集合分类为安全信息,从而提供有效的信息保护。例如,在一些实施方案中,控制位是由处理系统100设定的,以使得特定类型的信息(诸如指令信息或提供虚拟地址到存储器120的物理地址的映射的页表信息)被指定为安全信息,从而以密码方式保护这些信息,如下文进一步描述的。针对指派给数据的地址的控制位可以基于例如由正在处理器102上执行的程序所请求的标志而以更精细的方式进行指定。这种安全方案提供对关键数据的保护(例如,阻止对虚拟机或其程序的未经授权的执行)同时仍然提供更一般数据的灵活性。
[0029]在一些实施方案中,因为指派给信息的安全类型是基于信息的对应存储器地址而指定的,所以处理系统100使用页表本身来指示每个存储器地址的安全类型。因此,如下文相对于图3进一步描述的,处理器核心104和106在识别对应于存储器存取请求的存储器地址的过程中识别存储器存取请求的类型。具体地,如果存储器地址被指示为存储安全信息,那么对应的存储器存取被识别为安全存储器存取。类似地,如果存储器地址被指示为存储非安全信息,那么对应的存储器存取被识别为非安全存储器存取。
[0030]高速缓存105、107和108是存储器装置,它们存储在存储器120处所存储的信息的子集,从而提供处理器核心104和106对相应信息子集的快速存取。将了解的是,尽管为简单起见高速缓存108被示出为单个高速缓存,但是在一些实施方案中,高速缓存108可以表示多个高速缓存,包括驻留在处理器102的存储器层次的不同级处的不同高速缓存。高速缓存108接收存储器存取请求并且识别其存储阵列(图1未示出)是否存储作为所述存储器存取请求的目标的信息。如果是这样,那么高速缓存108指示在所述存储阵列处高速缓存命中并且满足所述存储器存取请求。如果高速缓存108并未存储目标信息,那么它指示高速缓存缺失并且将所述存储器存取请求提供给北桥110。
[0031]在图1所示的示例中,处理系统100的存储器存取路径是这样的:使得高速缓存108存储呈未加密形式的信息,包括安全信息。因此,如下文相对于图5进一步描述的,在一些实施方案中,高速缓存108针对给定大小的每个存储位置(例如,高速缓存行)存储实体标签信息,所述实体标签信息标识被授权来存取在所述存储位置处的信息的特定程序或其他实体(例如,VM)。响应于对所述存储阵列的位置的存储器存取,高速缓存108将生成存储器存取请求的实体的身份与实体标签信息进行比较,并且响应于不匹配,指示高速缓存缺失,从而阻止对信息的未经授权的存取。
[0032]北桥110是存储器控制器,其为处理器102提供用于与存储器120进行通信的接口。在一些实施方案中,北桥110可以执行其他功能,诸如与输入/输出控制器(例如南桥,未示出)对接,并且提供不同处理器核心(例如,处理器核心104和106以及其他处理器核心(未示出))诸如图形处理单元之间的接口。在其作为存储器控制器的容量方面,北桥110从高速缓存108接收存储器存取请求并且控制将这些请求提供给存储器120。此外,北桥110从存储器120接收对存储器存取请求的响应并且控制将所述响应提供给高速缓存108。在一些实施方案中,北桥110可以从处理系统100的输入/输出装置(未示出)接收存储器存取请求(例如,直接存储器存取请求)并且控制将它们提供给存储器120。
[0033]为了提供信息的密码隔离,北桥110包括加密模块115,所述加密模块115被配置来根据规定的密码标准并且基于密钥126对信息进行加密和解密。在一些实施方案中,加密模块115被配置来采用高级加密标准(AES)加密和解密,但是在其他实施方案中,加密模块115可以采用其他加密/解密技术。响应于接收到写入请求,北桥110识别所述请求是安全存储器存取请求或是非安全存储器存取请求。如果所述写入请求是非安全存储器存取请求,那么北桥110绕过加密模块115并且将所述写入请求提供给存储器120而不对所述待写入的信息进行加密。如果所述写入请求是安全存储器存取请求,那么北桥110识别密钥126中被指派给生成所述存储器存取请求的实体(例如,程序、VM、软件服务等)的一个。在一些实施方案中,安全模块130基于哪个实体当前正在处理器102处运行来识别待选择的密钥。加密模块115采用所选择的密钥来对待写入的信息进行加密并且将所述写入请求连同加密信息提供给存储器120以供存储。在一些实施方案中,加密模块115使用所选择密钥和所述存储器存取请求的物理地址两者来对对应信息进行加密和解密,从而阻止分组破译(block move)攻击。在一些实施方案中,加密模块115基于处理器102处的控制位(未示出)状态来识别是否使用物理地址进行加密和解密。所述控制位状态可以由安全模块130设定。
[0034]响应于接收到读取请求,北桥110将所述请求提供给存储器120并且随后接收响应于所述请求的信息。如果北桥110将所述读取请求识别为非安全存储器存取请求,那么它绕过加密模块115并且将所述读取信息提供给高速缓存108而不进行加密。如果北桥110将所述读取请求识别为安全存储器存取请求,那么它识别密钥126中被指派给生成所述读取存取请求的实体的一个并且加密模块115对所述读取信息进行解密。北桥110将所解密的读取信息提供给高速缓存108以供存储。在一些情况下,北桥110可以绕过将信息提供给高速缓存108并且将所解密的读取信息直接提供给生成对应读取存取请求的处理器核心。
[0035]在一些实施方案中,采用安全模式寄存器121来控制加密模块115的操作。安全模式寄存器121包括保护模式开启字段122和保护模式激活字段123。响应于保护模式开启字段正处于规定状态(例如,否定状态),北桥110针对所有存储器存取请求(包括安全存储器存取请求)都绕过加密模块115。这允许处理系统100在以下模式下进行操作:其中针对在处理器102处执行的所有程序都绕过加密和解密。
[0036]响应于保护模式开启字段正处于不同的规定状态(例如,断言状态),北桥110识别保护模式激活字段的状态。响应于保护模式激活字段正处于规定状态(例如,否定状态),北桥110针对所接收的存储器存取请求(包括安全存储器存取请求)绕过加密模块115,并且响应于保护模式激活字段正处于不同状态(例如,断言状态),仅针对非安全存储器存取请求绕过所述加密模块。在一些实施方案中,保护模式开启字段是由管理多个单独程序或实体(例如,VM)在处理器102处的运行的实体(例如,管理程序)设定的,而保护模式开启字段是针对各个程序或实体中的每一个单独设定的。因此,安全模式寄存器允许在不同的粒度级下控制加密模块115的使用。
[0037]图2根据一些实施方案示出处理系统100的用于为VM提供信息密码隔离的示例操作。在所描绘的示例中,处理器102用于同时执行VM 250和VM 251。此外,处理器102执行管理程序252以便提供VM 250和251与处理系统100的硬件之间的接口。在其运行过程中,VM250和251将分别存取(存储和检索)安全信息225和226。加密模块115确保以密码方式将安全信息225和226隔离,以使得它们仅能够由其相应的VM进行存取。
[0038]在操作中,在被容许在处理器102处运行之前,VM 250和251中的每一个向安全模块130注册。在一些实施方案中,VM被注册如下:VM所有者建立与安全模块130的安全通信信道(图2未示出)。针对VM,生成指定为“VMID”的标识值和指定为“VMKEY”的安全密钥。这种生成可以在安全模块130处完成,或者在单独的安全装置处完成并且通过安全通信信道被传达到安全模块130。安全模块130确保VMKEY和VMID值中的每一个对于对应VM是唯一的。VM所有者对对应VM的图像进行加密并且将其提供给管理程序252,所述管理程序252将所加密的图像作为安全数据存储在存储器120处。因此,在所示出的示例中,安全信息225包括针对VM250的VM图像。
[0039]随后,处理器102接收运行VM的请求。响应于所述请求,处理器102通知安全模块130所请求VM的VMID。安全模块230基于VMID识别针对所请求VM的安全密钥并且将所述安全密钥提供给加密模块115。在图2所示的示例中,处理器102已经接收到运行VMA 250和251的请求,并且安全模块130因此已经将针对VMA 250的密钥118和针对VMA 251的密钥119提供给加密模块115。
[0040]在其运行过程中,VM250和251生成存储器存取请求并且将它们提供给北桥110,所述北桥110基于所述请求的存储器地址所包含的一个或多个位来识别所述存储器存取请求是否为安全存储器存取请求。如果不是,北桥110绕过加密模块115并且满足所述存储器存取请求而不进行加密或解密。如果所述存储器存取请求是安全存储器存取请求,那么北桥110基于存储器地址或具有所述存储器存取请求的其他信息来识别VM 250和251中的哪一个生成所述存储器存取请求。加密模块115选择密钥118和119中对应于生成所述存储器存取请求的VM的一个,并且使用所选择的密钥对存储器存取信息(读取数据或写入数据)执行加密(在写入请求的情况下)或解密(在读取请求的情况下)。
[0041]如上文所描述的,对数据的密码保护发生在北桥110处并且用于密码保护的密钥对于VM 250和251以及管理程序252来说是未知的且不可访问的。这确保了一个VM不能够存取另一个VM的安全信息。例如,VM 251可以发出存取安全信息225(针对VM 250的安全信息)的存储器存取请求。因为所述存储器存取请求是由VM 251生成的,所以加密模块115将试图利用指派给VM 251的密钥119对所请求的安全数据进行解密,而不是利用用于对所述安全数据进行加密的密钥118。因此,VM 251将不能够有意义地或正确地解释所解密的数据,因为它是使用错误的密钥进行解密的。VM 250的安全信息225因此以密码方式隔离而免于被VM 251进行存取。
[0042]在一些实施方案中,处理系统100周期性地改变密钥118和119以便增强安全性。例如,每当VM被完全关闭(未暂停)时,安全模块130都可以生成针对所述VM的新密钥以确保所述VM在重新启动时具有新密钥。对于在旧密钥下存储在存储器120处的VM安全信息,安全模块130可以指导北桥110使用旧密钥对此类信息进行解密并且使用新密钥对所述信息进行重新加密,以使得所述安全信息在VM重新启动时可存取。
[0043]在一些实施方案中,响应于VM进入暂停状态,安全模块130可以生成针对所述VM的新密钥。所述VM的一部分(例如,客机操作系统)维持识别存储器120的存储针对所述VM的加密数据的存储页的数据结构。响应于VM进入暂停状态,安全模块130指导北桥110使用旧密钥对所识别的存储页进行解密,并且使用新密钥对所述存储页进行重新加密,从而确保所述VM在其退出暂停状态时能够对其安全信息进行存取。
[0044]在一些实施方案中,并不采用处理系统100来运行针对对应不同客户的多个VM,而是替代地可以将所述多个VM放置在单用户或单客户环境中使用的模式(出于描述的目的,被称为“本机模式”)下。在此类情境中,可以采用北桥110处的加密模块115来以密码方式保护机密信息,如由处理器102处执行的一个或多个程序所识别的。机密信息因此将以加密形式被存储在存储器120处。即使以未经授权的方式(例如,通过偷窃存储器120的存储模块)对存储器120进行存取,在不知道用于对信息进行加密的密钥的情况下也不能够对所述加密信息进行有意义地解释。机密信息因此以密码方式进行保护而免于未经授权的存取。
[0045]在一些实施方案中,如本文进一步描述的,为正在运行的VM指派特殊的标签值(被称为“VM标签值”)以便有助于加密或解密。这些标签值中的一个可以被预留用于在本机模式下使用,以使得如果处理系统100随后用于运行VM,不能够对在本机模式下指定用于加密的信息进行存取。在一些实施方案中,本机模式可以通过处理器102处的指定控制位(未示出)启用,并且可以独立地或与VM在处理器102处的运行结合来使用。
[0046]在一些实施方案中,除处理器102之外的装置可以采用北桥110来通过直接存储器存取(DMA)请求来对存储器120进行存取。在一些实施方案中,北桥110针对所有此类DMA请求都绕过加密模块115。在其他实施方案中,处理系统102可以指定或预留特定的VM标签值用于DMA请求,并且DMA请求存取对应于不同VM标签的安全信息的任何尝试都可能导致处理系统102处错误通知的生成。这确保不能使用DMA请求来绕过信息的密码保护。
[0047]图3根据一些实施方案示出用于能够识别存储器存取请求的安全类型(例如,安全或非安全)的处理器102的一部分。具体地,图3描绘地址转换模块345、转换后备缓冲器(TLB)346以及页表347。地址转换模块345是一般被配置来从处理器核心104和106中的一个或两个接收针对对应存储器存取请求的虚拟地址的模块。地址转换模块345将每个所接收的虚拟地址转换成对应的物理地址,所述物理地址标识作为存储器存取请求的目标的存储器120的位置。
[0048]地址转换模块345采用TLB 346和页表347中的一个或两个来将虚拟地址转换成对应的物理地址。页表347包括被虚拟地址编入索引的多个条目(例如,条目348)。在一些实施方案中,页表347是多级页表,其中较低级页面包括标识与虚拟地址相关联的其他页面的条目,同时最高级页面标识被指派给虚拟地址的物理地址。可以通过遍历页面漫步(pagewalk)中的页表来识别物理地址,其中首先访问最低级页面以便识别下一级别处的待访问的页面,以此类推,直到识别出包括物理地址的最高级页表并且从那个最高级页表中检索到物理地址。最高级页表还存储指示对应于所述物理地址的数据是否将以密码方式受到保护的位(指定为“C-位” )οTLB 346包括多个条目(例如,条目349),所述多个条目一起存储页表347的反映由地址转换模块345最近接收的虚拟地址的条目子集。
[0049]响应于接收到虚拟地址,地址转换模块345访问TLB346以便确定它是否包括对应于虚拟地址的条目。如果是这样,那么地址转换模块345将C-位值添加到物理地址并且提供所产生的物理地址值以便由存储器存取请求使用。物理地址值的C-位部分由北桥110用来识别存储器存取请求是否为安全的存储器存取请求。因此,例如,如果物理地址值中的C-位处于断言状态,北桥110将对应的存储器存取请求识别为安全的存储器存取请求,并且使用加密模块115来对对应于所述请求的信息进行加密或解密。
[0050]如果TLB346不包括对应于虚拟地址的条目,地址转换模块345从存储器120检索页表347并且对页表347执行搜索(有时被称为“页面漫步”)以便找到对应于虚拟地址的条目。地址转换模块345将所述条目传递到TLB 346,并且响应于存储器存取请求而提供物理地址值,包括C-位。
[0051 ]因为页表347和TLB 346用于存储C-位,并且因此识别那些安全的存储器存取请求,所以安全信息可以更容易且更安全地受到保护。例如,在一些实施方案中,通过将对应页表处的C-位设定到断言状态,可以将对应于VM代码的那些物理地址指定为安全信息。这确保VM代码本身以密码方式被隔离。此外,针对VM的页表本身可以通过将对应的C-位设定到断言状态而以密码方式受到保护。在一些实施方案中,针对页表的C-位是由硬件无条件地设定的。在一些实施方案中,VM本身可以设定C-位用于其他非可执行信息,从而为VM提供灵活性来将一些数据识别为非保护的,诸如将由输入/输出装置通过直接存储器存取来直接进行存取的数据。
[0052]在一些实施方案中,除针对每个地址的物理地址值之外并不采用C-位,处理系统100针对C-位值将每个物理地址的现有位(例如,最高有效位)重定目的。处理系统100还可以将物理地址的一个或多个位重定目的以便存储针对被容许存取以密码方式受保护的信息的VM的VM标签值。物理地址位的重定目的在限制处理系统100的物理地址空间的潜在代价下节省了硅面积。在一些实施方案中,处理器102可以修改关于物理地址的现有检查,诸如在页面漫步期间可能发生的,以便适应较小的地址物理地址空间。例如,处理器102在未启用信息加密时可以采用48位的物理地址,并且在启用信息加密时可以采用44位的物理地址,从而将其他4位重定目的以用于C-位和VM标签值。因此,当启用信息加密时,处理器102可以响应于参考具有多于44位的物理地址的程序或硬件模块而生成错误指示。
[0053]在一些实施方案中,其中处理器102执行VM和管理程序,地址转换模块145可以访问多于一个页表级以便识别C-位和待由存储器120使用的物理地址(出于描述图4的目的,被称为“系统物理地址”)。根据一些实施方案,示例在图4中示出。在所示出的示例中,地址转换模块145被配置来采用TLB 346、客机页表447和主机页表449(例如,嵌套的页表)来识别针对所接收虚拟地址的系统物理地址。
[0054]客机页表447存储虚拟地址到一组地址(被称为客机物理地址)的映射。客机物理地址并不是存储器120的实际物理地址,而是表示虚拟地址与存储器120的系统物理地址之间的中间地址。主机页表449存储客机物理地址与对应系统物理地址之间的映射。客机页表447和主机页表449因此实现例如由VM采用的地址空间与例如由管理程序采用的地址空间之间的层隔离和转换。在图4所示的示例中,针对地址的C-位被存储在客机页表447处,从而允许VM来控制是否将特定数据指定用于密码保护。这将C-位与管理程序隔离,从而保护密码标志免于被多漏洞的或恶意的管理程序利用。
[0055]在操作中,地址转换模块345接收针对存储器存取的虚拟地址,并且首先识别TLB346是否存储针对所述虚拟地址的系统物理地址。如果是这样,那么地址转换模块345从TLB346检索系统物理地址和对应的C-位并且将它提供给北桥110。如果TLB 346并未存储系统物理地址,那么地址转换模块345识别客机页表447的被指派给所接收虚拟地址的条目(例如,条目448)。地址转换模块345从所识别的条目检索C-位值,并且使用所识别条目处的客机物理地址来在主机页表449处执行页面漫步。作为页面漫步的结果,地址转换模块345识别主机页表449的被指派给客机物理地址的条目(例如,条目451),其中所述条目存储对应于所接收虚拟地址的系统物理地址。地址转换模块345检索系统物理地址并且将其连同从客机页表447的对应条目检索到的C-位提供给北桥110,以便如本文所述的对存储器存取请求进行进一步处理。此外,地址转换模块345将系统物理地址和C-位存储在TLB 346的对应于所接收虚拟地址的条目处。因此,在图4的示例中,C-位由被指派给VM的一组页表(客机页表447)提供,而用于对存储器120进行存取的物理地址由被指派给管理程序的一组不同页表(主机页表449)提供。
[0056]图5根据一些实施方案示出图1的处理器102的高速缓存108。高速缓存108包括高速缓存控制器572、CVM标签寄存器573以及存储阵列575。存储阵列575包括多个条目(例如,条目578),所述多个条目包括:数据字段,所述数据字段用于存储针对所述条目的数据;VM标签字段,所述VM标签字段指示对应于被容许存取存储在所述数据字段处的信息的VM的VM标签值;以及C-位条目,所述C-位条目用于存储指示所述信息是否被指定用于密码保护的C-位。CVM标签寄存器473存储针对当前正在处理器102处运行的VM的VM标签值。在一些实施方案中,处理器核心104和106中的每一个包括指示当前正在那个核心处运行的VM的VM标签值的个别CVM标签寄存器。在一些实施方案中,这个值是由处理器核心在其开始执行VM时设定的。
[0057]存储在存储阵列575的条目处的数据并未进行加密,因为在存储阵列575处进行存储之前,即使被指定用于密码保护的数据已经在加密模块115处进行解密。因此,高速缓存控制器572控制对存储阵列575处数据的存取,以便确保被指定用于密码保护的数据不能被未经授权的实体进行存取。具体地,响应于接收到存储器存取请求,高速缓存控制器572基于从存储器存取请求地址导出的地址标签值来识别存储阵列575处的条目中的一个是否存储作为所述存储器存取请求的目标的信息。如果没有,那么高速缓存控制器572指示高速缓存缺失并且将所述存储器存取请求提供给北桥110以便检索所述信息。
[0058]如果存储阵列575确实包括存储作为所述存储器存取请求的目标的信息的条目,那么高速缓存控制器572确定针对所述条目的C-位是否处于断言状态。如果不是,那么不将所述信息指定用于密码保护。因此,高速缓存控制器572指示高速缓存命中并且通过以下方式满足所述存储器存取请求:将信息写入到所述条目(在写入请求的情况下)或者在所述条目的数据字段处检索并提供所述信息(在读取请求的情况下)。如果C-位处于断言状态,那么信息被指定用于密码保护。因此,高速缓存控制器572将所述条目的VM标签字段处的VM标签值与存储在CMV ID值寄存器573处的VM标签值进行比较。所述值的匹配指示当前正在处理器102处运行的VM是被授权对所述条目处的信息进行存取的VM。因此,响应于匹配,高速缓存控制器572指示高速缓存命中并且满足所述存储器存取请求。响应于VM标签值之间的不匹配,高速缓存控制器572指示高速缓存缺失并且不满足所述请求。因此,如果当前正在运行的VM未被授权来存取指定用于密码保护的信息,那么高速缓存控制器572阻止所述存取。这允许存储阵列575存储同时存储针对不同VM的信息而仍然将信息隔离以免于未经授权的存取。在一些实施方案中,响应于识别出当前正在运行的VM未被授权来存取信息,高速缓存控制器572可以采取另外的动作,诸如通知安全模块130,所述安全模块130继而可以通知监督实体试图违反安全的行为。
[0059]图6根据一些实施方案示出图1的处理器102的高速缓存108,其中VM标签值被存储在用来在高速缓存108处识别高速缓存命中的TLB 676中。TLB 676包括多个条目(例如,678),其中每个条目对应于存储阵列675的条目。TLB 676的每个条目存储:存储阵列675的对应条目的物理地址、被指派给所述物理地址的虚拟地址、指示被授权存取存储在存储阵列675的条目处的信息的VM的VM标签值、以及用于指示所述信息是否被指定用于密码保护的C-位值。
[0060]响应于接收到存储器存取请求,地址转换模块345识别TLB676的任何条目是否存储与所述存储器存取请求的虚拟地址相匹配的虚拟地址。如果没有,那么地址转换模块345执行页表漫步以便识别针对所述虚拟地址的系统物理地址并且利用这个信息来创建新的TLB条目。一旦TLB 676包括存储作为所述存储器存取请求的目标的信息的条目,高速缓存控制器572就识别存储阵列575是否包括存储针对C-位值、系统物理地址和VM标签值的对应匹配值的条目。如果是这样,那么高速缓存控制器572指示高速缓存命中并且在高速缓存108处满足所述存储器存取请求。如果存储阵列575不包括这种条目,那么高速缓存控制器572指示高速缓存缺失并且不满足所述存储器存取请求。高速缓存控制器572还可以向较高级高速缓存和/或北桥110发出存储器请求以便检索所请求的信息。
[0061]在一些实施方案中,当存储阵列675的条目(例如,高速缓存行)被逐出以允许存储其他信息时,高速缓存控制器572将待逐出的信息、连同所存储的C-位和VM标签值(如在图5的条目578处所示)提供给北桥110。作为响应,北桥110识别C-位是否处于断言状态,并且如果是这样,那么加密模块115基于指派给VM标签值的密钥对所述信息进行加密。北桥110随后将所述信息提供给存储器120以供存储。如果C-位处于否定状态,那么北桥110绕过加密模块115并且将未加密的信息提供给存储器120以供存储。
[0062]在一些情境中,管理程序252(图2)需要对存储在存储器120处的VM信息进行存取,或者以其他方式确保其能够将此类信息从一个存储位置移动到另一个存储位置。然而,此类信息可能已经在高速缓存108处被修改,并且管理程序252不能够在高速缓存108处存取此类信息,因为管理程序不能够使用适当的VM标签值。为了避免存储器的不相干视图并且确保管理程序252能够存取最新数据的(加密)副本,管理程序252可以刷新高速缓存108的整个存储阵列675,但是这可能对处理器102的性能造成不合期望的影响。因此,在一些实施方案中,处理器核心104和106可以发出以下操作:请求高速缓存108刷新存储阵列575处的、与由所述操作识别的VM标签值和地址范围相关联的条目。作为响应,高速缓存控制器572刷新存储阵列675处的对应于所述VM标签值和地址范围的任何条目。北桥110将所刷新的信息复制到存储器120,从而对具有处于断言状态的对应C-位的任何信息进行加密。最新信息因此可供管理程序252在存储器120处进行存取。
[0063]图7示出在高速缓存处处理存储器存取请求以便保护被指定用于密码保护的信息的方法700的流程图。为了便于描述,所述方法相对于图1和图5所示的高速缓存108处的示例实现方式来描述。在框702处,处理器核心104和106中的一个生成存储器存取请求,其中具有标识所请求的信息的虚拟地址。在框704处,地址转换模块345(图3)采用TLB 346和页表347(或TLB 346、客机页表447和主机页表449)来识别对应于所述虚拟地址的系统物理地址以及指示在所述物理地址处的信息是否被指定用于密码保护的C-位值。地址转换模块345将所述系统物理地址值和C-位值连同所述存储器存取请求提供给高速缓存108。
[0064]在框706处,高速缓存控制器571(图5)基于与所述存储器存取请求相关联的物理地址来识别存储阵列575的条目是否存储作为所述请求的目标的信息。如果没有,那么所述方法流进行到框508并且高速缓存控制器572指示高速缓存缺失。此外,高速缓存控制器572将所述存储器存取请求(包括所述物理地址值和C-位值)提供给北桥110以便进行满足。如果存储阵列575的条目确实存储作为所述存储器存取请求的目标的信息,所述方法流进行到框710并且高速缓存控制器572识别针对所识别的条目的C-位是否被断言。如果没有,那么在所识别条目处的信息未被指定用于密码保护。因此,所述方法流移动到框712,并且高速缓存控制器572通过将信息写入到存储阵列575的所识别条目的数据字段或者从所述所识别条目检索所述信息来满足所述存储器存取请求。
[0065]返回到框710,如果高速缓存控制器572确定针对所识别条目的C-位被设定,那么方法流移动到框714并且高速缓存控制器571确定所识别条目处的VM标签值与存储在CVM标签寄存器573处的CVM标签值是否匹配。如果是这样,那么这指示当前正在运行的VM与被授权来存取存储阵列575的所识别条目处的信息的VM相匹配。因此,所述方法流进行到框712并且高速缓存控制器572使用所识别条目处的信息来满足所述存储器存取请求。如果在框714处,高速缓存控制器确定所识别条目处的VM标签值与存储在CVM标签寄存器573处的CVM标签值不匹配,那么所述方法流移动到框716并且高速缓存控制器771指示高速缓存缺失。高速缓存控制器572并未满足所述存储器存取请求,从而保护被指定用于密码保护的信息免于未经授权的存取。
[0066]图8示出在高速缓存处使用TLB处理存储器存取请求以便识别被指定用于密码保护的信息的方法800的流程图。为了便于描述,所述方法相对于图1和图6所示的高速缓存108处的不例实现方式来描述。在框802处,处理器核心104和106中的一个生成存储器存取请求,其中具有标识所请求的信息的虚拟地址。
[0067]在框806处,TLB676基于与所述存储器存取请求相关联的虚拟地址和VM标签值来识别其是否具有针对所述虚拟地址和VM标签值的条目。如果是这样,那么所述方法流进行到框810(以下描述)。如果没有,那么所述方法流进行到框808并且地址生成单元345执行页表漫步以便识别针对所述虚拟地址的系统物理地址和C-位值。此外,TLB 676从CVM标签寄存器573获得VM标签值。TLB 676将所述系统物理地址、虚拟地址、VM标签值和C-位值放置在其条目中的一个处。所述方法流进行到框810并且TLB 676将所述条目处的C-位值、系统物理地址和VM标签值发送到高速缓存控制器572。在框812处,高速缓存控制器572识别高速缓存108是否包括存储针对C-位值、系统物理地址和VM标签值的对应匹配值的条目。如果是这样,那么所述方法流进行到框814并且高速缓存控制器572指示高速缓存命中并且在高速缓存108处满足所述存储器存取请求。如果在框812处,高速缓存108不包括与C-位值、VM标签值或物理地址值匹配的条目,那么所述方法流进行到框816并且高速缓存控制器572指示高速缓存缺失。此外,高速缓存控制器572将所述存储器存取请求(包括所述物理地址值以及C-位值和VM标签)提供给北桥110以便进行满足。高速缓存控制器572并未满足所述存储器存取请求,从而保护被指定用于密码保护的信息免于未经授权的存取。
[0068]图9根据一些实施方案示出在存储器控制器处处理存储器存取请求以便保护被指定用于密码保护的信息的方法900的流程图。为了便于描述,方法900相对于图1的北桥110处的示例实现方式来描述。在框902处,北桥110从高速缓存108接收存储器存取请求。所述存储器存取请求可以是由处理器核心104和106中的一个生成的请求,或者在高速缓存108逐出并填充条目时代表所述高速缓存108生成的请求。如上文相对于图1-8所描述的,针对所述存储器存取请求的物理地址值,包括指示所述存储器存取请求是否为安全存储器存取请求的C-位值以及VM标签值,先前已通过地址转换模块345识别。
[0069]在框904处,北桥110确定针对所述存储器存取请求的C-位是否被断言。如果没有,那么所述存储器存取请求是非安全存储器存取请求。因此,所述方法流移动到框906并且北桥110绕过加密模块并且满足所述存储器存取请求。因此,在写入请求的情况下,北桥110并不对写入信息进行加密,从而使得存储器120存储呈未加密形式的写入信息。在读取请求的情况下,北桥110从存储器120检索所述信息并且将其提供给高速缓存108而不对所述信息进行解密。应注意,如果所检索的信息先前已经被加密,那么所述信息在其加密形式下将是无意义的或没用的。因此,恶意实体(例如,黑客软件)通过试图利用非安全存储器存取请求来存取以密码方式受保护的信息不能够实现对所述信息的存取。
[0070]返回到框904,如果北桥识别出针对所述存储器存取请求的C-位被断言,那么所述存储器存取请求是安全存储器存取请求。因此,所述方法流移动到框908并且北桥110基于所述存储器存取请求来识别与所述存储器存取请求相关联的VM。在框910处,北桥110识别密钥126中对应于所识别VM的一个。在框912处,加密模块115对有待用于满足所述存储器存取请求的信息进行加密或解密。也就是说,如果所述存储器存取请求是写入请求,那么加密模块115对待写入的信息进行加密。如果所述存储器存取请求是读取请求,那么北桥110从存储器120检索待读取的信息并且加密模块115对检索到的信息进行解密。在框914处,北桥110使用加密的(在写入请求的情况下)或解密的(在读取请求的情况下)信息来满足所述存储器存取请求。
[0071]如本文所描述的,在一些实施方案中,使用VM标签(也被称为VM标签值)来识别当前正在运行的VM和被允许存取指定用于密码保护的信息的VM两者。在一些情境中,可供指派的VM标签的数量小于可供运行的VM的数量。图10根据一些实施方案示出分配VM标签值的方法1000的流程图。为了便于描述,方法1000相对于图1和图2的处理系统100处的示例实现方式来描述,其中安全模块130管理VM标签值的生成和分配。
[0072]在框1002处,安全模块130从管理程序252接收对VM标签的请求,从而指示管理程序252正在处理器核心104和106中的一个或多个处开始VM的执行。管理程序252向安全模块130提供针对待执行的VM的标识值(有时被称为VMID值)。作为响应,在框1004处,安全模块130访问所分配VM标签的存储表以便识别VM标签值是否已经被分配给VM。如果是这样,那么所述方法流进行到框1006并且安全模块130将已经分配的VM标签值提供给管理程序252。所述VM标签值因此可供例如在高速缓存108处用于识别针对正在运行的VM的安全信息。
[0073]返回到框1004,如果VM标签值尚未被指派给VM,那么所述方法流进行到框1008并且安全模块130识别所有VM标签值是否已经被指派给其他VM。如果不是,那么所述方法流移动到框1010并且安全模块130将VM标签值分配给所述VM并且将所述VM标签值存储在所分配VM标签表中。所述方法流进行到框1006并且安全模块130将所分配的VM标签值提供给管理程序252。
[0074]返回到框1008,如果安全模块130识别出所有可用的VM标签值都已经被指派,那么必须将已经指派的VM标签值重新分配给正在运行的VM。然而,这可能允许正在运行的VM在高速缓存108处存取其未被授权来存取的安全信息。因此,所述方法流进行到框1012,并且安全模块130请求管理程序252刷新高速缓存108,从而通过致使呈加密或未加密形式(如由对应的C-位所要求的)的所有信息都被写入存储器120来将安全信息从高速缓存108移除。在框1014处,安全模块130从管理程序252接收高速缓存108已经被刷新的确认,并且作为响应,安全模块130标记出所有未使用的VM标签。所述方法流移动到框11并且安全模块130将新的VM标签值分配给所述VM并且将所述VM标签值存储在所分配VM标签表中。所述方法流进行到框1006并且安全模块130将所分配的VM标签值提供给管理程序252。
[0075]在一些实施方案中,上文所述的设备和技术实现于包括一个或多个集成电路(IC)装置(也被称为集成电路封装或微芯片)的系统中,诸如上文参考图1-10所描述的处理器。可以在这些IC装置的设计和制造中使用电子设计自动化(EDA)和计算机辅助设计(CAD)软件工具。这些设计工具通常表现为一个或多个软件程序。所述一个或多个软件程序包括可由计算机系统执行的代码,以便操纵计算机系统来操作表示一个或多个IC装置的电路的代码,从而执行过程的至少一部分来设计或调适加工系统,以便制造电路。这个代码可以包括指令、数据或指令和数据的组合。表示设计工具或制造工具的软件指令通常存储在可由计算系统存取的计算机可读存储介质中。同样地,表示IC装置设计或制造的一个或多个阶段的代码可以存储在同一计算机可读存储介质或不同计算机可读存储介质中,以及从同一计算机可读存储介质或不同计算机可读存储介质进行存取。
[0076]计算机可读存储介质可以包括使用期间可由计算机系统存取的任何存储介质或存储介质的组合,以便将指令和/或数据提供给计算机系统。此类存储介质可以包括但不限于光学介质(例如,压缩光盘(CD)、数字通用光盘(DVD)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘)、易失性存储器(例如,随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如,只读存储器(ROM)或快闪存储器)或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可以埋置在计算系统(例如,系统RAM或ROM)中、固定地附接到计算系统(例如,磁性硬盘驱动器)、可移除地附接到计算系统(例如,光盘或基于通用串行总线(USB)的快闪存储器)或通过有线或无线网络连接到计算机系统(例如,网络可存取存储装置(NAS))。
[0077]图11是根据一些实施方案的示出用于设计和制造实现一个或多个方面的IC装置的示例方法1100的流程图。如以上所指出的,针对下述过程中的每个过程所生成的代码被存储在非暂时性计算机可读存储介质中或者以其他方式具体化在非暂时性计算机可读存储介质中,以便由对应的设计工具或制造工具来存取和使用。
[0078]在框1102处,生成用于IC装置的功能规范。功能规范(通常被称为微体系结构规范(MAS))可由多种编程语言或建模语言中的任何一种来表示,包括C、C++、SyStemC、Simulink或MATLAB。
[0079]在框1104处,使用功能规范来生成表示IC装置硬件的硬件描述代码。在一些实施方案中,使用至少一种硬件描述语言(HDL)来表示硬件描述代码,所述硬件描述语言(HDL)包括用于IC装置电路的形式描述和设计的多种计算机语言、规范语言或建模语言中的任何一种。所生成的HDL代码通常表示IC装置电路的操作、所述电路的设计和组织,以及用以通过模拟来验证IC装置的正确操作的测试。HDL的示例包括模拟HDL(AHDL)、Verilog HDL、SystemVerilog HDL以及VHDL。对于实现同步数字电路的IC装置来说,硬件描述符代码可以包括寄存器传输级(RTL)代码,以便提供同步数字电路的操作的抽象表现形式。对于其他类型的电路,硬件描述符代码可以包括行为级代码,以便提供电路的操作的抽象表现形式。由硬件描述代码所表示的HDL模型通常经受一轮或多轮的模拟和调试,以便通过设计验证。
[0080]在验证由硬件描述代码所表示的设计之后,在框1106处使用合成工具来合成硬件描述代码,以便生成表示或限定IC装置电路的初始物理实现方式的代码。在一些实施方案中,合成工具生成包括电路装置实例(例如,门、晶体管、电阻器、电容器、电感器、二极管等)和电路装置实例之间的网或连接的一个或多个网表。替代地,网表的全部或一部分可手动地生成,而不使用合成工具。正如与硬件描述代码一样,在最终一组的一个或多个网表生成之前,网表可以经受一个或多个测试和验证过程。
[0081]替代地,可以使用原理图编辑工具来编制IC装置电路的原理图,并且随后可以使用原理图捕捉工具来捕捉所得的电路图以及生成表示电路图的部件和连接性的一个或多个网表(存储在计算机可读介质上)。所捕捉的电路图随后可以经受一轮或多轮的模拟以便进行测试和验证。
[0082]在框1108处,一个或多个EDA工具使用在框1106处所产生的网表,以便生成表示IC装置电路的物理布局的代码。这个过程可以包括(例如)放置工具,其使用网表来确定或固定IC装置电路的每个元件的位置。此外,布线工具建立在放置过程的基础上,以便添加并布放根据网表来连接电路元件所需要的线路。所得的代码表示IC装置的三维模型。所述代码可以用数据库文件格式(例如像图形数据库系统II(GDSII)格式)来表示。处于这种格式下的数据通常表示几何形状、文本标签或关于呈层次形式的电路布局的其他信息。
[0083]在框1110处,将物理布局代码(例如,GDSII代码)提供给生产设施,所述生产设施使用物理布局代码来配置或以其他方式调适生产设施的制造工具(例如,通过掩膜作业),从而制造IC装置。也就是说,物理布局代码可被编程到一个或多个计算机系统中,所述一个或多个计算机系统随后可全部或部分地控制生产设施的工具的操作或其中所执行的生产操作。
[0084]在一些实施方案中,上文所述技术的某些方面可以通过运行软件的处理系统的一个或多个处理器来实现。所述软件包括存储或以其他方式有形地具体化在非暂时性计算机可读存储介质上的一个或多个可执行指令集。所述软件可以包括指令和某些数据,当由一个或多个处理器执行时,所述指令和某些数据操纵所述一个或多个处理器来执行上文所述技术的一个或多个方面。非暂时性计算机可读存储介质可以包括例如磁盘或光盘存储装置、固态存储装置(诸如快闪存储器)、高速缓存、随机存取存储器(RAM)或其他一个或多个非易失性存储器装置等。存储在非暂时性计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码或可由一个或多个处理器解译或以其他方式执行的其他指令格式。
[0085]应注意,并非上文在一般说明中描述的所有活动或元件都是需要的,具体活动或装置的一部分可能是不需要的,并且可以执行一个或多个其他活动,或者除所描述的那些元件之外,还可以包括其他元件。更进一步来说,活动列出的顺序并不必须是它们所执行的顺序。另外,已经参考具体实施方案对这些概念进行了描述。然而,本领域的普通技术人员会了解,在不脱离以下权利要求书中所阐述的本公开范围的情况下,可以做出各种修改和改变。因此,本说明书和附图应被视为说明性而非限制性的,并且所有此类修改旨在包括在本公开的范围内。
[0086]上文已经相对于具体实施方案描述了益处、其他优点以及问题的解决方案。然而,所述益处、优点、问题解决方案,以及可使得任何益处、优点或问题解决方案出现或变得更为显著的任何特征,都不应解释为是任何或所有权利要求的关键、必需或必要特征。此外,以上所公开的特定实施方案仅为说明性的,因为所公开的主题可以受益于本文教义的本领域那些技术人员显而易见的不同但等效的方式来修改和实践。不旨在限制本文所示的构造或设计的细节,除了如以下权利要求书中所描述的。因此,明显的是,以上所公开的特定实施方案可以更改或修改,并且所有此类变化形式被认为在所公开的主题的范围内。因此,本文所寻求的保护如以下权利要求书中所阐述的。
【主权项】
1.一种方法,其包括: 在处理器[102]的存储器控制器[110]处接收将第一信息写入到存储器的第一存储器存取请求[902];以及 响应于识别出所述第一信息被指定用于密码保护[904],在所述存储器控制器处对所述第一信息进行加密[912]。2.如权利要求1所述的方法,其还包括: 基于所述第一存储器存取请求的存储器地址所包含的位[349],识别出所述第一信息被指定用于密码保护。3.如权利要求2所述的方法,其还包括: 基于包括所述存储器地址的页表[347 ],识别出所述存储器地址所包含的所述位。4.如权利要求1所述的方法,其还包括: 响应于识别出所述第一信息被指定用于密码保护: 基于指示生成所述存储器存取请求的虚拟机的虚拟机标识符来识别密钥[118];并且 其中对所述第一信息进行加密包括基于所述密钥对所述第一信息进行加密。5.如权利要求4所述的方法,其还包括: 从与所述处理器分开的安全模块[130]接收所述密钥。6.如权利要求1所述的方法,其中接收所述第一存储器存取请求包括通过在所述处理器处执行的管理程序[252 ]来接收所述第一存储器存取请求。7.如权利要求1所述的方法,其还包括: 在所述存储器控制器处接收将第二信息写入到存储器的第二存储器存取请求[902];以及 响应于识别出所述第二信息未被指定用于密码保护[904],提供所述第二信息以便存储在所述存储器处而不在所述存储器控制器处对所述第二信息进行加密[906]。8.如权利要求1所述的方法,其还包括: 响应于在所述处理器的高速缓存处接收到第二存储器存取请求,所述第二存储器存取请求的目标为存储在所述高速缓存处的第二信息: 识别指示与所述第二信息相关联的第一虚拟机的第一标签值[714];以及 响应于识别出所述第一标签值与指示正在所述处理器处运行的虚拟机的第二标签值之间的匹配而提供对所述第二信息的存取[712]。9.如权利要求8所述的方法,其还包括: 响应于识别出所述第一标签值与所述第二标签值之间的不匹配,指示高速缓存缺失[716]。10.一种方法,其包括: 响应于在处理器的存储器控制器处接收到来自第一虚拟机的第一存储器存取请求[902]: 识别出被指派给所述第一虚拟机的第一密钥[118][910];并且 基于所述第一密钥对与所述第一存储器存取请求相关联的第一信息进行加密[912]。11.如权利要求1O所述的方法,其还包括: 响应于在所述存储器控制器处接收到来自第二虚拟机的第二存储器存取请求: 识别出被指派给所述第二虚拟机的第二密钥[119];并且 基于所述第一密钥对与所述第二存储器存取请求相关联的第二信息进行解密。12.如权利要求1O所述的方法,其还包括: 在所述处理器的高速缓存处接收目标为存储在所述高速缓存处的所述第一信息的第二存储器存取请求; 识别出指示所述第一虚拟机的第一标签值[714];以及 响应于识别出所述第一标签值与指示生成所述第二存储器存取请求的虚拟机的第二标签值之间的匹配而提供对所述第一信息的存取[712]。13.如权利要求12所述的方法,其还包括: 响应于识别出所述第一标签值与所述第二标签值之间的不匹配,指示高速缓存缺失[716]。14.如权利要求1O所述的方法,其中: 对所述第一信息进行加密包括响应于基于所述第一存储器存取请求的存储器地址所包含的位而识别出所述第一信息被指定用于密码保护来对所述第一信息进行加密[710]。15.—种处理器,其包括: 存储器控制器[110],所述存储器控制器[110]包括: 加密模块[115],所述加密模块[115]用于响应于指示所述第一信息被指定用于密码保护的标识符,对与第一存储器存取请求相关联的第一信息进行加密。16.如权利要求15所述的处理器,其中: 所述标识符包括所述第一存储器存取请求的存储器地址所包含的位[349]。17.如权利要求16所述的处理器,其还包括: 地址生成单元[345],所述地址生成单元[345]用于基于包括所述存储器地址的页表而识别出所述存储器地址所包含的所述位。18.如权利要求16所述的处理器,其中: 响应于识别出与第二存储器存取请求相关联的第二信息未被指定用于密码保护,所述存储器控制器针对所述第二存储器存取请求绕过所述加密模块[906]。19.如权利要求16所述的处理器,其还包括: 高速缓存[108],所述高速缓存[108]用于: 响应于接收到目标为存储在所述高速缓存处的第二信息的第二存储器存取请求: 识别指示与所述第二信息相关联的第一虚拟机的第一标签值[714];并且 响应于识别出所述第一标签值与指示有待在所述处理器处运行的虚拟机的第二标签值之间的匹配,提供对所述第二信息的存取[712]。20.如权利要求19所述的处理器,其中所述高速缓存用于: 响应于识别出所述第一标签值与所述第二标签值之间的不匹配,指示高速缓存缺失[716]。
【文档编号】G06F21/60GK106062768SQ201580010043
【公开日】2016年10月26日
【申请日】2015年2月27日
【发明人】大卫·A·卡普兰, 托马斯·罗伊·沃勒, 罗纳德·佩雷斯
【申请人】超威半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1