首页> 中国专利> 安全等级可根据应用程序调整的处理器

安全等级可根据应用程序调整的处理器

摘要

描述与处理器中的可调整安全等级相关的方法、系统及设备。处理器可具有功能单元及寄存器,所述寄存器被配置成控制所述功能单元的安全操作。当所述寄存器包含第一设置时,所述寄存器配置所述功能单元以第一安全操作模式操作;且当所述寄存器包含第二设置时,所述寄存器配置所述功能单元以第二安全操作模式操作(例如,以跳过/绕过用于增强执行速度的安全操作电路的集合)。

著录项

  • 公开/公告号CN113168486A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利权人 美光科技公司;

    申请/专利号CN201980079760.7

  • 发明设计人 S·沃勒克;

    申请日2019-12-02

  • 分类号G06F21/71(20060101);G06F21/50(20060101);

  • 代理机构11287 北京律盟知识产权代理有限责任公司;

  • 代理人王龙

  • 地址 美国爱达荷州

  • 入库时间 2023-06-19 11:55:48

说明书

本申请要求2018年12月5日提交,且标题为“安全等级可根据应用程序调整的处理器”的美国专利申请第16/210,605号的优先权,所述申请的全部公开内容在此以引用的方式并入本文中。

技术领域

本文中公开的至少一些实施例大体上涉及计算机架构,且更具体地说但不限于处理器的安全及性能。

背景技术

典型计算机处理器从计算机系统的主存储器接收指令及/或数据以进行处理。指令及/或数据可被高速缓存以用于处理器。在一些情况下,可能进行对主存储器或处理器高速缓存中的内容的未经授权存取。例如,形成于同一裸片上的多个处理器或处理核心可共享主存储器。一个处理器或处理核心可经由存储器共享及/或高速缓存相干性协议来经由共享的主存储器及/或处理器高速缓存存储器来存取另一处理器或处理核心的内容。

例如,推测性执行为一种计算技术,其中处理器基于在一些条件下需要执行一或多个指令的推测在可获得关于是否应执行此类指令的确定结果之前执行此类指令。推测性执行可能带来安全性漏洞,其中可能进行对内容的未经授权存取。计算机处理器中的安全性漏洞的实例包含在2018年公开的Meltdown及Spectre。Meltdown为允许恶意进程未经授权地读取所有存储器的硬件漏洞。

附图说明

实施例是借助于实例而非限制在附图的图中说明的,在附图中相似参考指示类似元件。

图1示出根据一个实施例的具有安全等级寄存器的处理器,所述寄存器可由应用程序配置或配置用于应用程序以供其执行。

图2示出根据一个实施例的控制处理器中的数据加扰操作的安全等级寄存器的实例。

图3示出根据一个实施例的控制处理器中的数据路径的安全等级寄存器的另一实例。

图4示出根据一个实施例的控制处理器中的数据路径的安全等级寄存器的又一实例。

图5示出根据一个实施例的在处理器中配置安全操作的方法。

图6示出其中可实施图5的方法的计算系统。

具体实施方式

本公开包含用于均衡计算机处理器中的安全性与性能的技术。

可将逻辑电路添加到计算机处理器以增强计算机处理器的安全性。然而,所作出以改进安全性的此类布置可降级计算机处理器的性能。结果,配置有改进的安全性的计算机处理器可具有低于未改进安全性的计算机处理器的性能水平。

大体来说,被编程以在同一计算机处理器上执行的不同应用程序可具有不同的安全性要求。一些应用程序可能需要高安全等级以消除或在最大程度上减少对任何信息、数据及/或指令执行状态的未经授权存取。然而,其它应用程序可能不需要此高安全等级。

在本公开中,计算机处理器经配置有配置成用于在性能与安全性之间进行不同权衡的不同操作模式。计算机程序的指令集可以计算机处理器的安全模式中的任一种执行以从给定数据集获得相同执行结果。然而,以一种模式执行指令集可提供增强的安全保护(例如,以性能为代价),而以另一模式执行同一指令集可提供增强的性能/速度(例如,安全保护降低)。因此,向指令集的用户及/或程序员提供用以选择被优化用于特定计算机程序及/或计算机程序的特定执行实例的执行模式的选项。在一些情况下,计算机系统的操作系统可根据规则集合(例如,基于运行程序的用户的身份)来选择安全等级。

优选地,可基于程序的属性、程序的虚拟地址或程序的执行实例的设置或偏好而针对程序的指令来选择计算机处理器执行指令集的安全模式。因此,在计算机处理器正执行第一程序的指令时,计算机处理器可被动态配置成在第一安全模式下运行(例如,配置成用于增强安全性);且在计算机处理器正执行第二程序的指令时,计算机处理器可被动态配置成在第二安全模式下运行(例如,配置成用于增强性能),如图1中所说明。

图1示出根据一个实施例的具有安全等级寄存器(121)的处理器(101),所述寄存器可由应用程序(例如,135……136)配置或配置用于所述应用程序以供其执行。

图1的处理器(101)具有功能单元(123)的集合(例如,执行单元、控制逻辑)。在功能单元(123)中配置的安全操作可由安全等级寄存器(121)中的内容调整。

例如,安全等级寄存器(121)可包含识别高性能模式的设置。当此设置包含于安全等级寄存器(121)中时,功能单元(123)被动态配置成放宽安全操作以增强性能水平。

例如,安全等级寄存器(121)可替代地包含识别高安全模式的设置。当此设置包含于安全等级寄存器(121)中时,功能单元(123)被动态配置成加强安全操作以增强安全等级。

任选地,安全等级寄存器(121)可被配置成存储从多个预定义等级指示符中选择的等级指示符。预定义等级指示符中的每一个使得功能单元(123)实施安全性-性能权衡的特定组合。

替代地,安全等级寄存器(121)可包含安全特征选择器的集合;且可使用一或多个参数个别地/单独地选择/配置安全特征中的每一个。可由计算机系统的操作系统及/或由处理器(101)基于所参考(例如,如经由图2中说明的存储器地址寄存器(169)所参考)对象的属性来设置安全寄存器。在一些情况下,计算机系统并不向计算机程序的用户提供修改或存取安全等级寄存器(121)的权限。

图1的处理器(101)具有存储器管理单元(MMU)(125),其被配置成将数据及指令从存储器(131)加载到处理器(101)的内部高速缓存(107)中以用于处理及执行。如图2及图6中所说明,存储器(131)可为存储器装置(105)、外部存储器(103)或存储装置(104)。大体来说,应用程序(135或136)的指令可由MMU(125)加载到内部高速缓存(107)中以由处理器(101)的功能单元(123)来执行。相应指令的数据/操作数可被加载到寄存器(111)中以由相应指令处理;且执行结果可最初放置于寄存器(111)中。

优选地,可基于应用程序(例如,135……136)的安全性偏好设置(例如,137……138)不同地配置安全等级寄存器(121),以用于执行不同的应用程序(例如,135……136)。例如,可在安全等级寄存器(121)中使用一个安全性偏好设置(例如,137),以将处理器(101)配置为具有降低的性能的高安全模式;且可在安全等级寄存器(121)中使用另一安全性偏好设置(例如,137),以将处理器(101)配置为具有放宽的安全操作的高性能模式。

例如,应用程序A(135)可具有安全性偏好设置A(137);且应用程序B(136)可具有不同的安全性偏好设置B(138)。在应用程序A(135)正被加载到处理器(101)的内部高速缓存(107)中以用于执行时,安全等级寄存器(121)被配置成包含安全性偏好设置A(137);且在应用程序B(136)正被加载到处理器(101)的内部高速缓存(107)中以用于执行时,安全等级寄存器(121)被配置成包含安全性偏好设置B(138)。配置安全等级寄存器(121)的操作可被执行为由计算机系统的操作系统开始执行程序(例如,135或136)的部分。大体来说,在开始程序(例如,135或136)时,操作系统初始化各种寄存器;在使用预定规则集合的情况下,操作系统可确定安全等级寄存器(121)的内容(例如,基于运行程序(例如,135或136)的用户的身份及/或程序(例如,135或136)的安全性偏好设置)。

在一些实施方案中,应用程序(135……136)可被编程有负责将其安全性参考设置(137……138)加载到安全等级寄存器(121)中的指令。

在其它实施方案中,安全性偏好设置(137……138)被配置为相应应用程序(135……136)的安全性属性。在应用程序(例如,135或136)的任何指令正由处理器(101)执行时,处理器(101)及/或计算机系统的操作系统被配置成将相应安全性偏好设置(例如,137或138)加载到安全等级寄存器(121)中。例如,可基于相应应用程序(135……136)的虚拟存储器地址来识别安全性属性。

在一些情况下,同一应用程序(例如,135或136)的不同用户可具有不同安全性要求。因此,安全性偏好设置(例如,137或138)可被配置为相应应用程序(例如,135或136)的运行时间环境参数。运行时间环境参数可由计算机系统的操作系统管理,且从应用程序(例如,135或136)的一个执行实例到同一应用程序(例如,135或136)的另一执行实例发生改变。

当处理器(101)中的执行从应用程序A(135)的指令切换为应用程序B(136)的指令时,安全等级寄存器(121)的内容从安全性偏好设置A(137)改变为安全性偏好设置B(138);且功能单元(123)的安全操作模式根据安全等级寄存器(121)中的内容而改变。

大体来说,应用程序(135……136)可为具有不同安全性偏好设置(137……138)的单独程序。在一些情况下,应用程序(135……136)可为具有不同安全性偏好设置(137……138)的单独例程;且一个例程可调用另一例程进行服务。

图1的安全等级寄存器(121)允许在安全性与性能的优选均衡点下执行个别应用程序(135……136)。

例如,计算机处理器(101)可被配置成以用于增强安全性的一种模式对内部高速缓存(107)中呈加扰形式的数据进行操作,且以用于增强性能的另一模式对内部高速缓存(107)中的经解扰数据进行操作;且安全等级寄存器(121)指示内部高速缓存(107)中的数据是否经加扰。

例如,计算机处理器(101)可被配置成以用于增强安全性的一种模式对内部高速缓存(107)中使用长加扰密钥保护的数据进行操作,且以用于增强性能的另一模式对内部高速缓存(107)中使用短加扰密钥保护的数据进行操作;且安全等级寄存器(121)指示安全操作中使用的加扰密钥的长度。解扰器(113)及加扰器(112)都能够使用短及长加扰密钥进行处理。例如,短加扰密钥可仅具有分别应用于64位字的第一及第二半的32个随机位以对64位字进行加扰;且替代地,长加扰密钥可具有应用于整个64位字的64个随机位。

在另一实例中,计算机处理器(101)可被配置成以用于增强安全性的一个模式对内部高速缓存(107)中使用计算密集型加密密钥保护的数据进行操作,且以用于增强性能的另一模式对内部高速缓存(107)中使用计算高效型加扰密钥保护的数据进行操作。

在又一实例中,计算机处理器(101)可被配置成以用于增强安全性的一种模式对内部高速缓存(107)中使用加扰密钥及反转密钥保护的数据进行操作,以另一模式对内部高速缓存(107)中使用加扰密钥保护的数据进行操作,以另一模式对内部高速缓存(107)中使用反相密钥保护的数据进行操作,且以进一步增强性能且降低安全保护的又一模式对内部高速缓存(107)中的经解扰数据进行操作。

例如,加扰密钥可用于在不改变位的值的情况下重新布置数据字内的位的位置。在打乱原始数据字的位的位置之后,产生了经加扰数据字。在无加扰密钥(或对应解扰密钥)的情况下,无法从经加扰数据字恢复原始数据字。

例如,反转密钥可用于选择性地反转由反转密钥识别的选定位置处的数据字的位值。在选择性地反转原始数据字的位值之后,产生了受保护的数据字。在无反转密钥的情况下,无法从受保护的数据字恢复原始数据字。

例如,加密密钥可用于使用预定密码算法将原始数据字的位的值组合并转换为经加密数据字的位的值。加密可使用需要相同加密密钥来解密经加密数据字的对称密码算法,或需要不同解密密钥来解密经加密数据字的不对称密码算法来执行,其中可难以从加密密钥识别解密密钥。不同密码算法在性能与安全性方面具有不同权衡。

大体来说,计算机处理器(101)可被配置成针对可经由安全等级寄存器(121)选择的各种安全模式以各种组合执行安全操作。例如,可经由加扰密钥、反转密钥及/或加密密钥将数据项保护在用于程序(例如,135或136)的高速缓存(107)及存储器(131)中,所述密钥经由不同密码算法实施以实现所要性能-安全性均衡水平,或可用普通文字(例如,无加扰、反转、加密)存储于高速缓存(107)及存储器(131)中以最小化性能影响。

例如,与处理器(101)内的数据加扰相关的安全操作可由安全等级寄存器(121)以图2及/或图3中所说明的方式控制。

图2示出根据一个实施例的控制处理器(101)中的数据加扰操作的安全等级寄存器(121)的实例。例如,图2的处理器(101)可为图1的处理器(101)的实施方案。

图2示出用于数据安全的处理器(101)中的密钥存储区(167)。

在图2中,处理器(101)具有用于以解扰形式对数据(117)执行计算的解扰区(163),使得经典计算机处理器技术可用于在解扰区(163)中执行计算。其它处理器(例如,102)可存取处理器(101)的某些资源,例如存储装置(104)、存储器装置(105)、外部高速缓存(103)及/或内部高速缓存(107)。然而,防止这些处理器(例如,102)存取处理器(101)的解扰区(163)。例如,处理器(101及102)可为形成于同一硅裸片上及/或封装于同一集成电路芯片中的不同处理核心。在其它实例中,处理器(101及102)可封装在不同集成电路芯片中且经由例如总线、互连件、网络等的通信连接而连接。

恶意程序例如可在处理器(102)中运行且尝试获得对待由处理器(101)处理的内容的未经授权的存取(例如,使用例如Meltdown及Spectre的安全性漏洞)。为了防止此未经授权的存取,可将数据(109)以加扰形式存储在解扰区(163)外部的位置中。例如,将数据(109)以加扰形式存储在存储装置(104)中、计算机的存储器装置(105)中,及在处理器(101及102)之间共享的外部高速缓存(103)中。此外,在处理器(102)可经由高速缓存相干性协议存取内部高速缓存(107)时,可将数据(109)以加扰形式存储在处理器(101)的加扰区(161),例如处理器(101)的内部高速缓存(107)中。

在图2中,在处理器(101)运行经授权以处理经加扰数据(109)的指令时,处理器(101)的解扰器(113)将经加扰数据(109)转换成经解扰数据(117)。经解扰数据(117)的存在被限于解扰区(163)内。由于防止另一处理器(102)存取处理器(101)的解扰区(163),因此可防止在处理器(102)中运行的恶意程序获得对经解扰数据(117)的未经授权的存取(例如,经由例如Meltdown及Spectre的安全性漏洞)。

在图2中,处理器(101)具有包含密钥存储区(167)及安全等级寄存器(121)的安全区(165)。密钥存储区(167)具有用于各种数据对象的用于解扰器(113)及加扰器(112)的密钥。在未存取对象的相应密钥的情况下,处理器(101及102)无法从经加扰数据(109)恢复经解扰数据(117)。

在图2中,对密钥存储区(167)的存取是至少部分地基于用以加载用于待在解扰区(163)内执行的操作的经加扰数据(109)的虚拟地址(195)。

例如,虚拟地址(195)可包含例如对象ID(199)、对象类型(198)及/或偏移(196)的栏位。

例如,虚拟存储器地址(195)可具有预定宽度(预定位)且存储于处理器(101)的存储器地址寄存器(169)中。虚拟地址(195)可包含表示对象ID(199)的部分及表示由对象ID(199)表示的对象内的偏移(196)的部分。

例如,位于虚拟地址(195)处的对象可为指令集或例程;且虚拟地址(195)的对象ID(199)可用来识别所述指令及/或例程的特定性质,例如存取权利。

例如,位于虚拟地址(195)处的对象可为数据文件、数据集或数据项;且虚拟地址(195)的对象ID(199)可用来识别数据的存取权利。

在一些情况下,对象名称服务器被配置成存储经由对象ID(199)识别的对象的属性。处理器(101及102)可查询对象名称服务器以获得用于存取控制的属性。

在一些情况下,预定值(例如,0)的静态对象ID可用于表示操作系统(104)的内核对象。因此,存储器地址中指定的静态对象ID可用于识别特定存取限制,而不必与对象名称服务器进行通信。用于计算机处理器加载指令以供执行的存储器地址中的静态对象ID的一些细节及实例可见于2018年7月6日提交,且标题为“基于对象的存储器存取中的静态识别(Static Identifications in Object-based Memory Access)”的美国专利申请第16/028,840号中,所述申请的全部公开内容在此以引用的方式并入本文中。

在一些情况下,虚拟存储器地址(195)及/或存储器地址的对象ID(例如,199)可包含表示对象类型的部分(198)。例如,值0到3的对象类型(198)可用于识别操作系统的内核对象。例如,值4到5的对象类型(198)可用于指定偏移是不同宽度的地址(例如,具有128位的存储器地址内包含的64位地址或32位地址)。例如,值6到7的对象类型(198)可用于指定对象ID的预定部分将被解译为本地对象或分割全局地址空间(Partitioned GlobalAddress Space,PGAS)中的对象的识别符。例如,值32的对象类型(198)可用于指定对象ID的剩余部分将被解译为服务器(例如,197)中定义的对象的识别符。

对象类型(198)及/或对象ID(199)可任选地用于确定存取权限、运行时间环境参数、安全性偏好设置(例如,137……138)。

在图2中,对象ID(199)可用于存取密钥存储区(167)以检索用于由对象ID(199)表示的对象的密钥。因此,在解扰区(163)经授权以经由虚拟地址(195)将经加扰数据(109)加载到解扰区(163)中以用于处理时,可从密钥存储区(167)检索或获得用于解扰器(113)的密钥,以从经加扰数据(109)产生经解扰数据(117)。

在经解扰数据(117)离开解扰区(163)(例如,待作为计算结果及/或作为由对象ID(199)表示的对象的部分存储在虚拟地址(195)处)时,加扰器(112)将经解扰数据(117)转换成经加扰数据(109)。通过减少经解扰数据(117)的存在的位置及持续时间,改进了计算机系统的数据安全性。

对象ID(199)可进一步用于识别由对象ID(199)表示的对象的安全性偏好设置(例如,137……138),并应用对象的安全性偏好设置(例如,137……138)以控制密钥存储区(167)的操作。

例如,安全等级寄存器(121)可控制在解扰器(113)及加扰器(112)中使用的加扰密钥的长度。在使用较短长度的加扰密钥时,加扰/解扰操作的性能影响可降低,同时经由加扰/解扰提供的安全保护也被降低。在使用较长长度的加扰密钥时,加扰/解扰操作的性能影响可增大,同时经由加扰/解扰提供的安全保护也得到改进。

在一些情况下,一个对象可具有在加扰器(112)及解扰器(113)中使用预定长度的密钥的安全性偏好设置(例如,137),而另一对象可具有使用内部高速缓存(107)中的经解扰数据且绕过加扰器(112)及解扰器(113)的安全性偏好设置(例如,137),如图3中进一步说明。

大体来说,经解扰数据(117)可为指令、操作数及/或执行单元(115)执行指令的结果。解扰区(163)可包含:寄存器,其存储用于将经加扰操作数加载到解扰区(163)中的虚拟地址;寄存器,其存储用于从解扰区(163)导出经加扰结果的虚拟地址;及/或寄存器(例如,程序计数器),其存储用于将经加扰指令加载到解扰区(163)中的虚拟地址。

例如,解扰区(163)可包含程序计数器、程序员可见的寄存器文件及/或存储器地址寄存器。通常防止在处理器(101)的解扰区(163)外部(例如,在例如单独处理核心的另一处理器(102)中)运行的程序存取处理器(101)的解扰区(163),但此类外部程序可存取其中内容呈加扰形式的高速缓存(例如,103及/或107)及主存储器(例如,105)。

执行单元(例如,115)可对存储于寄存器中的操作数执行运算(例如,算术运算)且在寄存器中产生结果。用于操作数及结果的此类寄存器可配置在解扰区(163)中,使得执行单元(例如,115)以解扰形式操作并产生数据;且因此,在解扰区(163)外部的加扰并不影响执行单元(例如,115)的操作及/或效率。

程序计数器可将存储于其中的地址增大一以执行下一指令,或经指派有分支地址以在给定分支地址处执行指令。程序计数器也可配置在解扰区(163)中,使得其操作是基于经解扰地址。因此,用于识别主存储器(例如,105)中的操作数的程序计数器及/或地址的内容可为解扰区(163)中的经解扰地址。

图3示出根据一个实施例的控制处理器(101)中的数据路径的安全等级寄存器(121)的另一实例。例如,图3的处理器(101)可为图1的处理器(101)的实施方案。例如,数据路径选择器(127)可实施于图2的处理器(101)中。例如,可基于如图2中所说明的对象ID(199)来设置安全等级寄存器(121)的内容。

图3的处理器(101)具有由安全等级寄存器(121)的内容控制的数据路径选择器(127)。

当安全等级寄存器(121)具有预定安全性偏好设置(例如,137)时,内部高速缓存(107)中待在解扰区(163)中处理的数据未经加扰。因此,数据路径选择器(127)选择/使用绕过解扰器(113)及加扰器(112)的数据路径(133),使得可减少或消除由解扰器(113)及加扰器(112)引起的数据延迟。

当安全等级寄存器(121)具有另一安全性偏好设置(例如,138)时,内部高速缓存(107)中用于在解扰区(163)中处理的数据经加扰。因此,数据路径选择器(127)使用经过解扰器(113)及加扰器(112)的数据路径(134),使得经由在处理器(101)内的加扰区(161)中对数据进行加扰来改进执行的数据安全性。

可使用根据密钥集选择位(或数据项)的多路复用器来实施解扰器(113)及加扰器(112),以重新布置输入中的位(或数据项)的顺序来产生输出。例如,在输入为经解扰数据(117)时,具有根据密钥集重新布置的位的输出提供经加扰数据(109);且根据密钥集重新布置经加扰数据(109)中的位的顺序可恢复经解扰数据(117)。解扰器(113)及加扰器(112)的细节及实例可见于2018年8月3日提交且标题为“计算机处理器中的数据保护(DataProtection in Computer Processors)”的美国专利申请第16/054,913号,及2018年9月18日提交且标题为“计算机处理器中的密钥管理(Key Management in ComputerProcessors)”的美国专利申请第16/134,387号中,所述申请的全部公开内容在此以引用的方式并入本文中。

图2及图3说明使用安全等级寄存器(121)来选择性地控制处理器(101)中的数据加扰的部署及/或用于加扰/解扰的密钥长度。大体来说,安全等级寄存器(121)还可用于调整其它安全措施的部署。

例如,如图4中所说明,图3的处理器(101)可经扩增以包含使用反转密钥来保护数据的反转电路(例如,145),及/或使用加密/解密密钥来保护数据的加密/解密电路(例如,143)。此外,不同加密/解密电路可实施具有不同安全性/性能权衡的不同密码算法。数据路径选择器(127)可由安全等级寄存器(121)控制以选择性地绕过处理器(101)的安全电路(140)中的一些或全部。安全电路(140)可包含加扰电路(例如,141)(例如,解扰器(113)及加扰器(112))、加密/解密电路(例如,143)及/或反转电路(例如,145)。数据路径选择器(127)可由安全等级寄存器(121)控制以选择性地以由安全等级寄存器(121)的内容识别的选定顺序应用安全电路(140)的子集。例如,一个路径可被配置成应用加扰(141),接着应用反转(145),而另一路径可被配置成应用反转(145),接着应用加扰(141)或加密(143)。

例如,2018年7月6日提交的美国专利申请第16/029,135号公开了针对不同调用等级使用单独的分支目标缓冲器的安全技术,所述申请的全部公开内容在此以引用的方式并入本文中。安全等级寄存器(121)的内容可用于控制安全性测量的选择性部署及/或待由单独的分支目标缓冲器分离的调用等级。

例如,2018年7月6日提交的美国专利申请第16/028,930号公开了使用用于确保条件推测性指令执行的影子高速缓存的安全技术,所述申请的全部公开内容在此以引用的方式并入本文中。安全等级寄存器(121)的内容可用于控制影子高速缓存的选择性部署。

图5示出根据一个实施例的在处理器(101)中配置安全操作的方法。例如,图5的方法可实施于图1、2、3或4的处理器(101)中。

在框201处,处理器(101)确定与第一程序(例如,135)相关联的第一安全性偏好设置(例如,137)。

例如,第一安全性偏好设置(例如,137)可与第一程序(例如,135)相关联,作为由操作系统管理以用于执行第一程序(例如,135)的环境变量。

例如,第一安全性偏好设置(例如,137)可与第一程序(例如,135)相关联,作为配置在用于将第一程序(例如,135)的虚拟存储器地址转译为物理存储器地址的查找表中的第一程序(例如,135)的安全性参数。

例如,可将第一安全性偏好设置(例如,137)编程在第一程序(例如,135)中,其中可执行第一程序的一或多个指令以识别或计算第一安全性偏好设置(例如,137)

在框203处,处理器(101)将第一安全性偏好设置(例如,137)加载到处理器(101)的安全等级寄存器(121)中。

在框205处,处理器(101)根据安全等级寄存器(121)中的第一安全性偏好设置(例如,137)以第一安全操作模式配置功能单元(123)。

在框207处,处理器(101)通过第一安全操作模式执行第一程序(例如,135)的指令。

例如,第一安全操作模式可包含将数据以加扰形式保持在内部高速缓存(107)中、使用用于确保条件推测性指令执行的影子高速缓存,及/或针对不同调用等级使用单独的分支目标缓冲器。

在框209处,处理器(101)确定与第二程序(例如,136)相关联的第二安全性偏好设置(例如,138)。

在框211处,处理器(101)将第二安全性偏好设置(例如,138)加载到处理器(101)的安全等级寄存器(121)中。

在框213处,处理器(101)根据安全等级寄存器(121)中的第二安全性偏好设置(例如,138)以第二安全操作模式配置功能单元(123)。

在框215处,处理器(101)通过第二安全操作模式执行第二程序(例如,136)的指令。

例如,第一模式可包含未在第二模式下执行的所执行安全操作的集合。在第一模式下而非第二模式下执行的此类安全操作的一个实例为解扰高速缓存(107)中的数据以用于处理器(101)的解扰区(163),且在将数据从解扰区(163)输出到高速缓存(107)中之前加扰数据。

在第一模式下而非第二模式下执行的此类安全操作的另一实例为针对不同调用等级使用单独的分支目标缓冲器。

在第一模式下而非第二模式下执行的此类安全操作的又一实例为用于确保条件推测性指令执行的影子高速缓存。

以第一安全模式对同一数据集执行的指令可提供与以第二安全模式执行的结果相同的结果。然而,当以第一安全模式执行时,降低了安全性漏洞的可能性。当以第二安全模式执行时,降低了执行时间持续时间。

如图3及图4中所说明,当安全等级寄存器(121)包含第二设置(例如,138)时,安全等级寄存器(121)可动态地配置功能单元(121)以绕过逻辑电路(例如,113及112)。逻辑电路(例如,113及112)在第一安全模式下处于作用中,但在第二安全模式下并不使用。功能单元(121)可包含处理器(101)的执行单元(115)、数据路径选择器(127)、解扰器(113)/加扰器(112)、影子高速缓存及/或单独的分支目标缓冲器。

图6示出其中可实施图5的方法的计算系统。

图6的计算系统可包含具有内部高速缓存(191)的处理器(101)、存储器装置(105)、外部高速缓存(107),及经由互连件(185)连接到处理器(101)及/或存储器装置(105)的存储装置(104)。

例如,处理器(101)可具有功能单元(124)以执行指令。处理器(101)可进一步包含寄存器(111),以包含待在功能单元(123)中执行的指令的存储器地址、数据/操作数及/或指令的执行结果。

例如,寄存器(111)可包含用于加载指令以供执行的程序计数器,及存储器地址寄存器。当在处理器(101)中执行指令时,存储于存储器地址寄存器中的存储器地址可用于加载指令的操作数,及/或存储由执行指令产生的计算结果。

处理器(101)可基于包含于安全等级寄存器(121)中的内容/设置动态地配置功能单元(123)的安全操作。例如,安全等级寄存器(121)可控制图3或4的数据路径选择器(127)以选择数据路径(133或134),及/或控制图2的密钥存储区(167)以识别用于加扰器(112)及解扰器(113)的密钥长度。

在一些情况下,处理器(101)的寄存器所使用的地址为虚拟存储器地址;且存储器管理单元(MMU)(125)可将虚拟存储器地址转换为物理存储器地址,以存取外部高速缓存(107)、存储器装置(105)及/或存储装置(104)。

例如,存储器装置(105)中的数据可被高速缓存在处理器(101)的外部高速缓存(107)及/或处理器(101)的内部高速缓存(191)中。

例如,外部高速缓存(107)中的数据可被高速缓存在内部高速缓存(191)中。

例如,存储装置(104)中的数据可被高速缓存在存储器装置(105)中、外部高速缓存(107)中及/或内部高速缓存(191)中。

在一些情况下,存储器管理单元(MMU)(125)控制内部高速缓存(191)、外部高速缓存(107)及存储器装置(198)当中的数据移动。

本文中所公开的技术至少可应用于处理器与存储器分离且处理器经由通信总线及/或计算机网络与存储器及存储装置通信的计算机系统。此外,本文中所公开的技术可应用于处理能力集成于存储器/存储装置内的计算机系统。例如,包含典型处理器的执行单元及/或寄存器的处理电路可在存储器媒体的集成电路及/或集成电路封装内实施以执行存储器装置内的处理。因此,如上文论述且在图式中说明的处理器(例如,101)不必为冯诺伊曼体系架构(von Neumann architecture)中的中央处理单元。处理器可为集成于存储器内的单元以克服冯诺伊曼瓶颈,即由于由数据在根据冯诺伊曼体系架构单独配置的中央处理单元与存储器之间移动时的时延造成的处理量的限制而限制计算性能。

本公开的描述及图式是说明性的,且不应理解为限制性的。描述众多特定细节以提供透彻理解。然而,在某些情况下,不描述众所周知或常规的细节以免混淆描述。本公开中对一个或一实施例的参考未必是指同一实施例;且此类参考意味着至少一个。

在前述说明书中,已参考本公开的特定示范性实施例描述了本公开。应显而易见的是,可在不脱离如以下权利要求书中阐述的更广精神及范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号