2024年10月27日发(作者:塔梦易)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.3
(22)申请日 2008.02.27
(71)申请人 英特尔公司
地址 美国加利福尼亚
(72)发明人 S·盖切
(74)专利代理机构 永新专利商标代理有限公司
代理人 王英
(51)
G06F21/00
权利要求说明书 说明书 幅图
(10)申请公布号 CN 101276388 A
(43)申请公布日 2008.10.01
(54)发明名称
保护系统管理模式(SMM)空间免受
高速缓存攻击
(57)摘要
计算系统可以包括由例如前端总线
的外部总线所耦合的处理器和存储器控制
中心。处理器还可以包括高速缓存。处理
器可以运行于SMM,耦合到存储器控制中
心的存储器可以包括SMM空间,例如,
兼容、HSEG和TSEG区域。基于软件的
攻击可以在对应于SMM空间的地址处向
高速缓存写入恶意指令。可以将由于高速
缓存攻击而完全发生在处理器高速缓存内
部的非法处理器存储器访问强制发生在外
部总线上。存储器控制中心能够处理发生
在外部总线上的存储器访问,从而保护
SMM空间免受高速缓存攻击。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1、一种处理器,包括:
处理单元,
耦合到所述处理单元的高速缓存存储器,以及
耦合到所述处理单元和外部总线的接口,
其中,所述处理单元将指向所述高速缓存存储器中的系统管理模
2、根据权利要求1所述的处理器,还包括耦合到所述处理单元
3、根据权利要求2所述的处理器,其中,所述寄存器组还包括
4、根据权利要求1所述的处理器,其中,在将所述存储器访问
式地址范围的存储器访问重新路由至所述外部总线。
的寄存器组,其中,所述寄存器组包括第一存储器类型寄存器,其中,
所述第一存储器类型寄存器包含系统管理模式空间的基址和存储器
类型值。
第二存储器类型范围寄存器,其中,所述第二存储器类型寄存器包含
所述基址的掩码和保护机制指示符。
重新路由到所述外部总线上之前,所述处理单元确定所述存储器访问
是否指向表示所述系统管理模式空间的所述高速缓存存储器区域,其
中,所述处理器运行于非系统管理模式。
5、根据权利要求4所述的处理器,其中,如果所述存储器访问
6、根据权利要求5所述的处理器,其中,所述非相关混合写入
7、根据权利要求4所述的处理器,其中,如果所述存储器访问
8、根据权利要求7所述的处理器,其中,所述非相关不可缓存
指向表示所述系统管理模式空间的所述高速缓存存储器区域,则所述
存储器类型是非相关混合写入类型。
存储器类型包括将所述存储器访问重新路由到所述外部总线上的特
性,以及当所述存储器访问被重新路由到所述外部总线上时,防止总
线代理侦听所述高速缓存存储器。
指向表示所述系统管理模式空间的所述高速缓存存储器区域,则所述
存储器类型是非相关不可缓存类型。
类型包括将所述存储器访问重新路由到所述外部总线上的特性,以及
当所述存储器访问被重新路由到所述外部总线上时,防止总线代理侦
听所述高速缓存存储器。
9、根据权利要求4所述的处理器,其中,如果指向所述高速缓
10、根据权利要求2所述的处理器,其中,所述处理单元基于所
11、一种方法,包括:
确定访问高速缓存的系统管理模式区域的存储器访问是否来自
为所述存储器访问指定存储器类型,以及
如果所述存储器访问来自非信任源,则将指向所述高速缓存中的
12、根据权利要求11所述的方法,还包括将第一存储器类型寄
信任源,
存存储器区域的所述存储器访问是从信任源接收的,则所述存储器类
型是回写类型。
述存储器类型值和页面属性表值来确定所述存储器类型,其中,所述
处理器运行于系统管理模式。
所述系统管理模式区域的所述存储器访问重新路由至外部总线。
存器配置为包含系统管理模式空间的基址和存储器类型值。
13、根据权利要求11所述的方法,还包括将第二存储器类型寄
14、根据权利要求11所述的方法,包括:
确定与所述高速缓存相关联的处理器是否运行于系统管理模式,
确定所述存储器访问是否指向所述高速缓存中的所述系统管理
如果所述存储器访问指向所述高速缓存中的所述系统管理模式
15、根据权利要求14所述的方法,其中,如果所述存储器访问
16、根据权利要求15所述的方法,其中,所述非相关混合写入
区域,则将所述存储器访问重新路由到所述外部总线上。
模式区域,以及
存器配置为包含所述系统管理模式空间的基址的掩码和保护机制指
示符。
指向所述高速缓存中的所述系统管理模式区域,则所述存储器类型是
非相关混合写入类型。
存储器类型包括将所述存储器访问重新路由到所述外部总线上的特
性,以及当所述存储器访问被重新路由到所述外部总线上时,防止总
线代理侦听所述高速缓存。
17、根据权利要求14所述的方法,其中,如果所述存储器访问
18、根据权利要求17所述的方法,其中,所述非相关不可缓存
19、根据权利要求14所述的方法,其中,如果指向所述高速缓
20、根据权利要求14所述的方法,包括如果所述处理器运行于
指向所述高速缓存中的所述系统管理模式区域,则所述存储器类型是
非相关不可缓存类型。
类型包括将所述存储器访问重新路由到所述外部总线上的特性,以及
当所述存储器访问被重新路由到所述外部总线上时,防止总线代理侦
听所述高速缓存存储器。
存的所述存储器访问是从信任源接收的,则所述存储器类型是回写类
型。
系统管理模式,则基于所述存储器类型值和页面属性表值来确定所述
存储器类型。
说 明 书
背景技术
计算机系统通常包括处理器、芯片组、存储器以及I/O设备。处
以运行于普通模式和受保护模式,所述受保护模式例如系统管
(SMM)。SMM允许系统开发者以对于操作系统(OS)和其
明的方式提供例如功率管理或者安全性等功能。称作系
(SMI)的硬件中断可以促使处理器进入SMM。
在接收到SMI之后,处理器可以在执行例如SMI处理程序的软
之前,将称为“上下文(context)”的当前执行状态存储到系
取存储器(SMRAM)。SMRAM可以包括称为SMM空
器区域。当处理器运行于SMM时,入侵者可以
序的地址处写入一段恶意代码。这种高速
意代码可能控制处理器。
附图说明
以实例的方式而不是以附图进行限制的方式,示出了本文所描述
为了说明的简便和清楚,附图中所示元件未必按比例进行绘
了清楚,将某些元件的大小相对于其它元件而进行放大。
适当的地方,将参考标签在附图中重复使用,以指示相
元件。
图1示出计算机系统100的一个实施例。
图2示出保护SMM空间免受高速缓存攻击的计算机系统100的
施例。
一个实
的发明。
件例程
理器可
理模式
它应用程序透
统管理中断
统管理随机存
间的预先指定的存储
在可能对应于SMI处理程
缓存攻击的后果就是这段恶
制。例如,为
此外,在认为
应或者类似的
具体实施方式
以下描述说明了一种用于保护SMM空间免受高速缓存攻击的机
以下描述中,为了提供对本发明的更透彻的理解,阐述了大量
节,例如逻辑实现方式、资源划分或共享或复制实现方式、系
的类型和相互关系、以及逻辑划分或组合选择。但是,本领域
员将会理解,可以在没有这些具体细节的情况下实现本发明。
情况下,为了避免使本发明变得不够明确,并未详细示出控制
门级电路以及全软件指令序列。通过本文所包含的描述,本领
人员无需过多的实验就能够实现适当的功能。
说明书中对于“一个实施例”、“实施例”、“示例性实施例”的引
的实施例可以包括特定的特征、结构或特性,但是,不
都包括该特定的特征、结构或特性。此外,这种术语未
实施例。此外,当结合一个实施例描述特定的特征、结
认为其位于本领域技术人员结合其它明确描述或未明确
来应用这种特征、结构或特性的知识范围内。
本发明的实施例可以实现在硬件、固件、软件或者其任意组合中。
的实施例还可以实现为存储于机器可读介质上的指令,所述指
由一个或多个处理器读取和执行。机器可读介质可以包含用于
(例如计算设备)可读方式的信息进行存储或发送的任何机制。
例如,机器可读介质可以包括:只读存储器(ROM);随机存取
磁盘存储介质;光存储介质;闪存设备;电、光、
播信号(例如,载波、红外信号以及数字信号)。
件、软件、例程和指令描述为执行特定的
存储器(RAM);
本发明
令可以
对机器
用指示所描述
必每个实施例
必涉及同一个
构或特性时,
描述的实施例
制。在
具体细
统组件
技术人
在其它
结构、
域技术
声或者其它形式的传
此外,在本文中,可以将固
操作。但是,应当理解,这
些描述仅仅是为了方便,并且所述操作实
例程和指令的计算设备、处理器、控制器
际上源自执行固件、软件、
以及其它设备。
在图1中示出计算系统100的一个实施例。计算系统100可以包
器110、存储器控制中心(MCH)150以及存储器190。
在一个实施例中,存储器190可以包括动态随机存取存储器
态随机存取存储器(SRAM)。在一个实施例中,存
SMRAM 195、专用于SMM的存储器区域以及系
括处理
(DRAM)和静
储器190可以包括
统存储器199。
区域
193。
SMRAM 195可以包括SMM空间,例如,兼容SMRAM
(C_SMRAM)191、高段(HSEG)192以及存储器顶段(TSEG)
在一个实施例中,C_SMRAM 191可以引用存储器位置,其可以
兆字节(MB)内的一个固定地址处。处理器110可以在所述
C_SMRAM 191进行寻址。在一个实施例中,
等于128千字节。在一个实施例中,HSEG
其可以位于1兆字节(MB)内的一个固
MCH 192指定的1MB和4GB之间的
HSEG 192的大小可以等于128
在一个实施例中,TSEG 193可以引用存储器位置,其可以位于
和4GB之间的一个配置地址处。处理器110可以在可位于1MB
位于1
固定地址处对
C_SMRAM 191的大小可以
192可以引用存储器位置,
定地址处。处理器110可以在
一个地址处对HSEG 192进行寻址。
千字节。
1MB
和
中,
4GB之间的所述配置地址处对TSEG 193进行寻址。在一个实施例
TSEG 193的大小可以是可变大小,其可位于1MB和8MB之间。
在一个实施例中,处理器110可以包括处理单元(PU)120、寄
高速缓存130和处理器接口125。在一个实施例中,处
储器控制中心150耦合到存储器190。在一个实
存器组128、
理器110可以通过存
施例中,处理器110可以表
示英特尔微处理器族中的奔腾4或酷睿
双核处理器。
在一个实施例中,处理单元(PU)120可以在例如前端总线(FSB)
上经由处理器接口125与MCH 150进行通信。在一个实施例
于VM根操作而接收到SMI或执行VMCALL指令,
MCH 150发送SMI确认消息。PU 120可以生成SMM
控制信号可用于使PU 120有权访问SMRAM 195,
存储例如内部上下文。在存储了上下文之后,PU
理程序。在执行SMI处理程序的过程中,可以
数据块加载到高速缓存130。在一个实施
致执行功率管理以及提供安全性。
在一个实施例中,高速缓存攻击可以指基于软件的攻击,其中,
正存储对应于SMM空间的指令或数据的地址处,攻击者可以
130写入恶意指令或数据。这种攻击可能导致预料不到的
件,例如,恶意指令接管处理器110。在一个实施例中,
行可能导致在访问高速缓存130时的非法存储器访问。
在一个实施例中,处理器110可以包括寄存器组128,该寄存器
可以包括一对或多对寄存器,例如,系统管理模式存储器类型
存器(SMM_MTRR)。在一个实施例中,SMM_MTRR可以定
围的存储器类型,并且可以包括对其所描述的物理地址
区域的特定排列和长度要求。SMM_MTRR可用于静态
物理地址范围的存储器类型。在一个实施例中,
以将存储器类型动态地指定给存储器190的线
例中,处理器110可以将标准MTRR与
扩展和可编程特征与PAT的灵活性
的总线
中,响应于基
PU 120可以向
控制信号,该SMM
以在进入SMM之后
120可以执行SMI处
将来自存储器190的指令或
例中,SMI处理程序的执行可以导
在可能
向高速缓存
且不期望的事
恶意指令的执
组128
范围寄
义物理地址范
范围或存储器
地描述存储器190内
页面属性表(PAT)可
性寻址的页面。在一个实施
PAT结合使用,以将MTRR的可
相组合。
在一个实施例中,除了标准MTRR之外,处理器110可以包括
SMM_MTRR:SMM_MTRR_BASE_REG 121和
在一个实施例中,SMM_MTRR_MASK_REG 122也可以包括两
使能字段122-A和地址掩码字段122-B。在一个实施例中,
122-A可被编程为第一值,以激活对于SMM空间的保护机
字段122-A可被编程为第二值,以关闭保护机制。在一
地址掩码字段122-B可以包括SMM空间(C_SMRAM
TSEG 193)的物理地址掩码。在一个实施例中,
运行于当前特权等级(CPL)0时配置
实施例中,PU 120可以基于BIOS
使得无论是否启动了保护,
SMM空间的类型以及类
在一个实施例中,处理器110可以提供新的存储器类型,称为非
不可缓存(NCUC:non-coherent strong uncacheable)类型以及
入(NCWC:non-coherent write-combining)类型。在
处理器110能够指示其运行于SMM,则可以将
型用于外部总线上发出的存储器事务。
在一个实施例中,除了强不可缓存(UC)存储器类型的缓存特
关强不可缓存(NCUC)存储器类型还可以包括非相关
SMM_MTRR_MASK_REG 122。在一个实施例中,
一对
SMM_MTRR_BASE_REG 121可以包括两个字段,称为类型字段
121-A和地址字段121-B。在一个实施例中,类型字段121-A可以包
括指向SMM空间191-193的线性和物理发起SMM处理器存储器访
问的存储器类型。地址字段121-B可以包括SMM空间的基本物理地
址。
个字段:
使能字段
制,并且使能
个实施例中,
191、HSEG 192和
PU 120可以在处理器110
SMM_MTRR 121和122。在一个
(基本输入输出系统)配置SMM_MTRR,
MTRR都可以指示SMM空间的地址范围、
似的这种值。
相关强
非相关混合写
其它实施例中,如果
强不可缓存(UC)存储器类
性之外,非相
属性。在一个实施例
中,强不可缓存(UC)存储器类型的缓存特性
回写缓存:否,允许随机读取:否)。在
型可以相当于强排序,其中,以严
中,非相关属性可以表示:当在外
线/链路代理不能侦听其内部高速
中止或重定向指向SMM空间
可以包括(可缓存:否,可
一个实施例中,用于UC的排序模
格的顺序执行事务。在一个实施例
部总线上观测到存储器事务时,总
缓存。在一个实施例中,MCH 150可以
的非相关存储器事务。
在一个实施例中,除了混合写入(WC)存储器类型的缓存特性
混合写入(NCWC)存储器类型还可以包括非相关属性。
合写入(WC)存储器类型的缓存特性可以包括
否,允许随机读取:是)。在一个实施
器事务的弱排序,在将组合更新存
冲器中进行累积。在一个实施例中,
线上观测到存储器事务时,总线/
个实施例中,MCH 150可
事务。
在一个实施例中,处理器110可以基于存储器访问的类型以及
之外,非相关
在一个实施例中,混
(可缓存:否,可回写缓存:
例中,排序特性可以相当于写存储
储到存储器190之前,可以在写缓
非相关属性可以表示:当在外部总
链路代理不能侦听其内部高速缓存。在一
以中止或重定向指向SMM空间的非相关存储器
SMM_MTRR 121和122中的配置值,确定最终的存储器类型。在一
个实施例中,最终的存储器类型可以确定在外部总线上是否发生存储
器访问。在一个实施例中,如果最终的存储器类型为NCUC和NCWC,
则在外部总线上发生标记为这种存储器类型的存储器访问。在一个实
施例中,如果最终的存储器类型为回写,则外部总线上可能没有发生
存储器访问。在一个实施例中,如果处理器110运行于RAM(CRAM)
模式的高速缓存中,则最终的存储器类型可能为回写。在一个实施例
中,CRAM模式可以保证存储在高速缓存130中的指令和数据可来
自信任源。在一个实施例中,可以将强加密算法用于对CRAM中的
指令和数据进行鉴权。
在一个实施例中,MCH 150可以保护SMM空间免受非法处理器
访问。在一个实施例中,为了保护SMM空间,存储器控制中
可以支持可锁定SMRAM配置寄存器以及控制寄存
可锁定配置寄存器可以启动SMM空间的特定
制寄存器可以控制例如FSB等外部总线
寄存器可由运行于SMM的处理器
在一个实施例中,当启动C_SMRAM 191时,MCH 150可以将
处理器存储器访问导向SMM地址,以及将非SMM处理器存
传统的视频区域,其中所述非SMM处理器存储器访问
(PCI)Express和直接媒体接口(DMI)引起的存
当启动HSEG 192时,MCH 150可以将
向重新映射的SMRAM地址,并且
在一个实施例中,当启动TSEG 193时,MCH 150可以将SMM
处理器存储器访问导向所配置的SMRAM地址,并且中止非
存储器访问。从而,MCH 150可以保护SMM空间免受
出的非法存储器访问。但是,MCH 150可能无法保护
发生在处理器110的高速缓存130内部的非法存
在一个实施例中,处理器110可以重新路由指向所启动的SMM
非法存储器访问或者强制其发生在外部总线上。当在外部总线
对应于高速缓存攻击的非法存储器访问之后,MCH 150可以
间免受高速缓存攻击。
在图2中描述了可以对指向所启动的SMM空间的非法存储器访 问进行
空间的
上执行
和回写
SMM
存储器
心(MCH)150
器。在一个实施例中,
组合。在一个实施例中,控
上数据访问的发生,其中所述控制
110部分地锁定以及部分地改变。
储器访问导向
例如外围组件互连
储器访问。在一个实施例中,
SMM和回写处理器存储器访问导
中止非SMM处理器存储器访问。
SMM处理器
外部总线上发
SMM空间免受可能
储器访问。
保护SMM空
强制的处理器110的一个实施例。
在方框205中,BIOS可以使用SMM空间的一个基本物理地址
MTRR类型对SMM_MTRR进行配置。在一个实施例中,基于
内容的处理器110可以将SMM_MTRR_BASE_REG 121的类型
121-A配置为一种存储器类型,例如NCUC、NCWC、UC以及
(WB)。BIOS可以将SMM_MTRR_BASE_REG 121的地址字段
配置为SMM空间的一个基本物理地址。例如,基本物理地址
C_SMRAM 191或者HSEG 192或者TSEG 192的基址。
在方框210中,基于BIOS的处理器110可以使用SMM空间的
址掩码以及保护使能指示符值对SMM_MTRR 121和122进行
实施例中,处理器110可以将SMM_MTRR_MASK_REG
段122-A配置为第一逻辑值,以激活保护机制,以及将
122-A配置为第二逻辑值,以关闭向SMM空间提供的
在方框215中,处理器110可以确定线性或物理发起存储器访问
向SMM空间。在一个实施例中,线性存储器访问可以表示可
的存储器操作,其中处理器110可以使用页面调度机制
为物理地址。在一个实施例中,物理发起存储器
直接使用物理地址所执行的存储器访问。
在一个实施例中,处理器110可以检查使能字段122-A,如果
对121和122被启动,则可以确定线性或物理发起存储
SMM空间。在一个实施例中,处理器110可以进行
所述,以确定线性或物理发起存储器访问是
((处理器110指向的物理地址)AND(存储在寄存器122的掩
以及
BIOS
字段
回写
121-B
值可以等于
物理地
配置。在一个
122的使能字
所述使能字段
保护机制。
是否指
使用线性地址
将所述线性地址转换
访问可以表示处理器
SMM MTRR
器访问是否指向
比较,如下述方程(1)
否指向SMM空间。
码字段122-B
中的掩码))=((存储在寄存器121的地址字段121-B
在寄存器122的掩码字段122-B中的掩码))
--------------方程(1)
中的地址)AND(存储
------------------------------------
在一个实施例中,如果方程(1)中的条件为真,则控制可以进
否则,控制可以进行到方框235。
行到方框220,
在方框220中,处理器110可以检查处理器110是否运行于SMM。
实施例中,CPU 120可以确定是否维持了SMM运行指示信号。
实施例中,SMM运行指示信号的维持可以指示处理器110正
如果处理器110正运行于SMM,则控制可以进行到方
可以进行到方框260。
在方框225中,处理器110可以确定SMM_MTRR_BASE_REG
否指定了存储器类型,如果寄存器121指定了存储器类型,则
框250,否则,控制进行到方框235。在方框235中,
存储在标准MTRR寄存器中的配置值以及PAT
储器类型。在方框250中,处理器110可
121以及页面属性表(PAT)中的
在方框260中,处理器110可以确定存储器访问是否是线性发起
果存储器访问是线性发起的,则控制进行到方框265,如果存
理发起的,则控制进行到方框280。在一个实施例中,
引起存储器访问的微操作(称为“uop”)类型,
的还是物理发起的。在一个实施例中,线
的内部编码,处理器110可以基于内部编
在一个
在一个
运行于SMM。
框225,否则,控制
121是
控制进行到方
处理器110可以基于
中的属性值,确定最终的存
以基于存储在SMM MTRR寄存器
配置值,确定最终的存储器类型。
的,如
储器访问是物
处理器110可以基于
确定存储器访问是线性发起
性和物理uop可以包括不同
码识别线性或者物理存储器访问。
在方框265中,处理器110可以确定有效存储器类型是否是混合
(WC),如果有效存储器类型是WC,则控制进行到方框270,
行到方框275。在一个实施例中,处理器110可以通过
类型和PAT存储器类型计算有效存储器类型,来
是否是WC。
在方框270中,处理器110可以确定最终的存储器类型是NCWC。
275中,处理器110可以确定最终的存储器类型是NCUC。在
处理器110可以基于一组标准确定最终的存储器类
该组标准可以包括:有效存储器类型,存储器
处理器110是否运行于SMM,存储器访
以及处理器110是否运行于CRAM
在方框280中,处理器110可以确定处理器110是否运行于
如果处理器110运行于CRAM模式,则控制进行到方
进行到方框275。在一个实施例中,处理器110
的比特,确定其是否运行于CRAM模式。
110可以在进入和退出CRAM模式时,设
存器中的预先指定的比特。在方框285
储器类型是回写(WB)。
已经参考示例性实施例描述了本发明的特定特征。但是,该描述
在以限制方式进行解释。本发明所属领域的技术人员所显而易
例性实施例的多种修改以及本发明的其它实施例将被认为落
神和范围内。
写入
否则,控制进
根据MTRR存储器
确定有效存储器类型
在方框
一个实施例中,
型。在一个实施例中,
地址是否指向SMM空间,
问是线性发起的还是物理发起的,
模式。
CRAM模式,
框285,否则,控制
可以基于内部控制寄存器中
在一个实施例中,处理器
置或者重新设置内部控制寄
中,处理器110可以确定最终的存
并不旨
见的示
入本发明的精
2024年10月27日发(作者:塔梦易)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.3
(22)申请日 2008.02.27
(71)申请人 英特尔公司
地址 美国加利福尼亚
(72)发明人 S·盖切
(74)专利代理机构 永新专利商标代理有限公司
代理人 王英
(51)
G06F21/00
权利要求说明书 说明书 幅图
(10)申请公布号 CN 101276388 A
(43)申请公布日 2008.10.01
(54)发明名称
保护系统管理模式(SMM)空间免受
高速缓存攻击
(57)摘要
计算系统可以包括由例如前端总线
的外部总线所耦合的处理器和存储器控制
中心。处理器还可以包括高速缓存。处理
器可以运行于SMM,耦合到存储器控制中
心的存储器可以包括SMM空间,例如,
兼容、HSEG和TSEG区域。基于软件的
攻击可以在对应于SMM空间的地址处向
高速缓存写入恶意指令。可以将由于高速
缓存攻击而完全发生在处理器高速缓存内
部的非法处理器存储器访问强制发生在外
部总线上。存储器控制中心能够处理发生
在外部总线上的存储器访问,从而保护
SMM空间免受高速缓存攻击。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1、一种处理器,包括:
处理单元,
耦合到所述处理单元的高速缓存存储器,以及
耦合到所述处理单元和外部总线的接口,
其中,所述处理单元将指向所述高速缓存存储器中的系统管理模
2、根据权利要求1所述的处理器,还包括耦合到所述处理单元
3、根据权利要求2所述的处理器,其中,所述寄存器组还包括
4、根据权利要求1所述的处理器,其中,在将所述存储器访问
式地址范围的存储器访问重新路由至所述外部总线。
的寄存器组,其中,所述寄存器组包括第一存储器类型寄存器,其中,
所述第一存储器类型寄存器包含系统管理模式空间的基址和存储器
类型值。
第二存储器类型范围寄存器,其中,所述第二存储器类型寄存器包含
所述基址的掩码和保护机制指示符。
重新路由到所述外部总线上之前,所述处理单元确定所述存储器访问
是否指向表示所述系统管理模式空间的所述高速缓存存储器区域,其
中,所述处理器运行于非系统管理模式。
5、根据权利要求4所述的处理器,其中,如果所述存储器访问
6、根据权利要求5所述的处理器,其中,所述非相关混合写入
7、根据权利要求4所述的处理器,其中,如果所述存储器访问
8、根据权利要求7所述的处理器,其中,所述非相关不可缓存
指向表示所述系统管理模式空间的所述高速缓存存储器区域,则所述
存储器类型是非相关混合写入类型。
存储器类型包括将所述存储器访问重新路由到所述外部总线上的特
性,以及当所述存储器访问被重新路由到所述外部总线上时,防止总
线代理侦听所述高速缓存存储器。
指向表示所述系统管理模式空间的所述高速缓存存储器区域,则所述
存储器类型是非相关不可缓存类型。
类型包括将所述存储器访问重新路由到所述外部总线上的特性,以及
当所述存储器访问被重新路由到所述外部总线上时,防止总线代理侦
听所述高速缓存存储器。
9、根据权利要求4所述的处理器,其中,如果指向所述高速缓
10、根据权利要求2所述的处理器,其中,所述处理单元基于所
11、一种方法,包括:
确定访问高速缓存的系统管理模式区域的存储器访问是否来自
为所述存储器访问指定存储器类型,以及
如果所述存储器访问来自非信任源,则将指向所述高速缓存中的
12、根据权利要求11所述的方法,还包括将第一存储器类型寄
信任源,
存存储器区域的所述存储器访问是从信任源接收的,则所述存储器类
型是回写类型。
述存储器类型值和页面属性表值来确定所述存储器类型,其中,所述
处理器运行于系统管理模式。
所述系统管理模式区域的所述存储器访问重新路由至外部总线。
存器配置为包含系统管理模式空间的基址和存储器类型值。
13、根据权利要求11所述的方法,还包括将第二存储器类型寄
14、根据权利要求11所述的方法,包括:
确定与所述高速缓存相关联的处理器是否运行于系统管理模式,
确定所述存储器访问是否指向所述高速缓存中的所述系统管理
如果所述存储器访问指向所述高速缓存中的所述系统管理模式
15、根据权利要求14所述的方法,其中,如果所述存储器访问
16、根据权利要求15所述的方法,其中,所述非相关混合写入
区域,则将所述存储器访问重新路由到所述外部总线上。
模式区域,以及
存器配置为包含所述系统管理模式空间的基址的掩码和保护机制指
示符。
指向所述高速缓存中的所述系统管理模式区域,则所述存储器类型是
非相关混合写入类型。
存储器类型包括将所述存储器访问重新路由到所述外部总线上的特
性,以及当所述存储器访问被重新路由到所述外部总线上时,防止总
线代理侦听所述高速缓存。
17、根据权利要求14所述的方法,其中,如果所述存储器访问
18、根据权利要求17所述的方法,其中,所述非相关不可缓存
19、根据权利要求14所述的方法,其中,如果指向所述高速缓
20、根据权利要求14所述的方法,包括如果所述处理器运行于
指向所述高速缓存中的所述系统管理模式区域,则所述存储器类型是
非相关不可缓存类型。
类型包括将所述存储器访问重新路由到所述外部总线上的特性,以及
当所述存储器访问被重新路由到所述外部总线上时,防止总线代理侦
听所述高速缓存存储器。
存的所述存储器访问是从信任源接收的,则所述存储器类型是回写类
型。
系统管理模式,则基于所述存储器类型值和页面属性表值来确定所述
存储器类型。
说 明 书
背景技术
计算机系统通常包括处理器、芯片组、存储器以及I/O设备。处
以运行于普通模式和受保护模式,所述受保护模式例如系统管
(SMM)。SMM允许系统开发者以对于操作系统(OS)和其
明的方式提供例如功率管理或者安全性等功能。称作系
(SMI)的硬件中断可以促使处理器进入SMM。
在接收到SMI之后,处理器可以在执行例如SMI处理程序的软
之前,将称为“上下文(context)”的当前执行状态存储到系
取存储器(SMRAM)。SMRAM可以包括称为SMM空
器区域。当处理器运行于SMM时,入侵者可以
序的地址处写入一段恶意代码。这种高速
意代码可能控制处理器。
附图说明
以实例的方式而不是以附图进行限制的方式,示出了本文所描述
为了说明的简便和清楚,附图中所示元件未必按比例进行绘
了清楚,将某些元件的大小相对于其它元件而进行放大。
适当的地方,将参考标签在附图中重复使用,以指示相
元件。
图1示出计算机系统100的一个实施例。
图2示出保护SMM空间免受高速缓存攻击的计算机系统100的
施例。
一个实
的发明。
件例程
理器可
理模式
它应用程序透
统管理中断
统管理随机存
间的预先指定的存储
在可能对应于SMI处理程
缓存攻击的后果就是这段恶
制。例如,为
此外,在认为
应或者类似的
具体实施方式
以下描述说明了一种用于保护SMM空间免受高速缓存攻击的机
以下描述中,为了提供对本发明的更透彻的理解,阐述了大量
节,例如逻辑实现方式、资源划分或共享或复制实现方式、系
的类型和相互关系、以及逻辑划分或组合选择。但是,本领域
员将会理解,可以在没有这些具体细节的情况下实现本发明。
情况下,为了避免使本发明变得不够明确,并未详细示出控制
门级电路以及全软件指令序列。通过本文所包含的描述,本领
人员无需过多的实验就能够实现适当的功能。
说明书中对于“一个实施例”、“实施例”、“示例性实施例”的引
的实施例可以包括特定的特征、结构或特性,但是,不
都包括该特定的特征、结构或特性。此外,这种术语未
实施例。此外,当结合一个实施例描述特定的特征、结
认为其位于本领域技术人员结合其它明确描述或未明确
来应用这种特征、结构或特性的知识范围内。
本发明的实施例可以实现在硬件、固件、软件或者其任意组合中。
的实施例还可以实现为存储于机器可读介质上的指令,所述指
由一个或多个处理器读取和执行。机器可读介质可以包含用于
(例如计算设备)可读方式的信息进行存储或发送的任何机制。
例如,机器可读介质可以包括:只读存储器(ROM);随机存取
磁盘存储介质;光存储介质;闪存设备;电、光、
播信号(例如,载波、红外信号以及数字信号)。
件、软件、例程和指令描述为执行特定的
存储器(RAM);
本发明
令可以
对机器
用指示所描述
必每个实施例
必涉及同一个
构或特性时,
描述的实施例
制。在
具体细
统组件
技术人
在其它
结构、
域技术
声或者其它形式的传
此外,在本文中,可以将固
操作。但是,应当理解,这
些描述仅仅是为了方便,并且所述操作实
例程和指令的计算设备、处理器、控制器
际上源自执行固件、软件、
以及其它设备。
在图1中示出计算系统100的一个实施例。计算系统100可以包
器110、存储器控制中心(MCH)150以及存储器190。
在一个实施例中,存储器190可以包括动态随机存取存储器
态随机存取存储器(SRAM)。在一个实施例中,存
SMRAM 195、专用于SMM的存储器区域以及系
括处理
(DRAM)和静
储器190可以包括
统存储器199。
区域
193。
SMRAM 195可以包括SMM空间,例如,兼容SMRAM
(C_SMRAM)191、高段(HSEG)192以及存储器顶段(TSEG)
在一个实施例中,C_SMRAM 191可以引用存储器位置,其可以
兆字节(MB)内的一个固定地址处。处理器110可以在所述
C_SMRAM 191进行寻址。在一个实施例中,
等于128千字节。在一个实施例中,HSEG
其可以位于1兆字节(MB)内的一个固
MCH 192指定的1MB和4GB之间的
HSEG 192的大小可以等于128
在一个实施例中,TSEG 193可以引用存储器位置,其可以位于
和4GB之间的一个配置地址处。处理器110可以在可位于1MB
位于1
固定地址处对
C_SMRAM 191的大小可以
192可以引用存储器位置,
定地址处。处理器110可以在
一个地址处对HSEG 192进行寻址。
千字节。
1MB
和
中,
4GB之间的所述配置地址处对TSEG 193进行寻址。在一个实施例
TSEG 193的大小可以是可变大小,其可位于1MB和8MB之间。
在一个实施例中,处理器110可以包括处理单元(PU)120、寄
高速缓存130和处理器接口125。在一个实施例中,处
储器控制中心150耦合到存储器190。在一个实
存器组128、
理器110可以通过存
施例中,处理器110可以表
示英特尔微处理器族中的奔腾4或酷睿
双核处理器。
在一个实施例中,处理单元(PU)120可以在例如前端总线(FSB)
上经由处理器接口125与MCH 150进行通信。在一个实施例
于VM根操作而接收到SMI或执行VMCALL指令,
MCH 150发送SMI确认消息。PU 120可以生成SMM
控制信号可用于使PU 120有权访问SMRAM 195,
存储例如内部上下文。在存储了上下文之后,PU
理程序。在执行SMI处理程序的过程中,可以
数据块加载到高速缓存130。在一个实施
致执行功率管理以及提供安全性。
在一个实施例中,高速缓存攻击可以指基于软件的攻击,其中,
正存储对应于SMM空间的指令或数据的地址处,攻击者可以
130写入恶意指令或数据。这种攻击可能导致预料不到的
件,例如,恶意指令接管处理器110。在一个实施例中,
行可能导致在访问高速缓存130时的非法存储器访问。
在一个实施例中,处理器110可以包括寄存器组128,该寄存器
可以包括一对或多对寄存器,例如,系统管理模式存储器类型
存器(SMM_MTRR)。在一个实施例中,SMM_MTRR可以定
围的存储器类型,并且可以包括对其所描述的物理地址
区域的特定排列和长度要求。SMM_MTRR可用于静态
物理地址范围的存储器类型。在一个实施例中,
以将存储器类型动态地指定给存储器190的线
例中,处理器110可以将标准MTRR与
扩展和可编程特征与PAT的灵活性
的总线
中,响应于基
PU 120可以向
控制信号,该SMM
以在进入SMM之后
120可以执行SMI处
将来自存储器190的指令或
例中,SMI处理程序的执行可以导
在可能
向高速缓存
且不期望的事
恶意指令的执
组128
范围寄
义物理地址范
范围或存储器
地描述存储器190内
页面属性表(PAT)可
性寻址的页面。在一个实施
PAT结合使用,以将MTRR的可
相组合。
在一个实施例中,除了标准MTRR之外,处理器110可以包括
SMM_MTRR:SMM_MTRR_BASE_REG 121和
在一个实施例中,SMM_MTRR_MASK_REG 122也可以包括两
使能字段122-A和地址掩码字段122-B。在一个实施例中,
122-A可被编程为第一值,以激活对于SMM空间的保护机
字段122-A可被编程为第二值,以关闭保护机制。在一
地址掩码字段122-B可以包括SMM空间(C_SMRAM
TSEG 193)的物理地址掩码。在一个实施例中,
运行于当前特权等级(CPL)0时配置
实施例中,PU 120可以基于BIOS
使得无论是否启动了保护,
SMM空间的类型以及类
在一个实施例中,处理器110可以提供新的存储器类型,称为非
不可缓存(NCUC:non-coherent strong uncacheable)类型以及
入(NCWC:non-coherent write-combining)类型。在
处理器110能够指示其运行于SMM,则可以将
型用于外部总线上发出的存储器事务。
在一个实施例中,除了强不可缓存(UC)存储器类型的缓存特
关强不可缓存(NCUC)存储器类型还可以包括非相关
SMM_MTRR_MASK_REG 122。在一个实施例中,
一对
SMM_MTRR_BASE_REG 121可以包括两个字段,称为类型字段
121-A和地址字段121-B。在一个实施例中,类型字段121-A可以包
括指向SMM空间191-193的线性和物理发起SMM处理器存储器访
问的存储器类型。地址字段121-B可以包括SMM空间的基本物理地
址。
个字段:
使能字段
制,并且使能
个实施例中,
191、HSEG 192和
PU 120可以在处理器110
SMM_MTRR 121和122。在一个
(基本输入输出系统)配置SMM_MTRR,
MTRR都可以指示SMM空间的地址范围、
似的这种值。
相关强
非相关混合写
其它实施例中,如果
强不可缓存(UC)存储器类
性之外,非相
属性。在一个实施例
中,强不可缓存(UC)存储器类型的缓存特性
回写缓存:否,允许随机读取:否)。在
型可以相当于强排序,其中,以严
中,非相关属性可以表示:当在外
线/链路代理不能侦听其内部高速
中止或重定向指向SMM空间
可以包括(可缓存:否,可
一个实施例中,用于UC的排序模
格的顺序执行事务。在一个实施例
部总线上观测到存储器事务时,总
缓存。在一个实施例中,MCH 150可以
的非相关存储器事务。
在一个实施例中,除了混合写入(WC)存储器类型的缓存特性
混合写入(NCWC)存储器类型还可以包括非相关属性。
合写入(WC)存储器类型的缓存特性可以包括
否,允许随机读取:是)。在一个实施
器事务的弱排序,在将组合更新存
冲器中进行累积。在一个实施例中,
线上观测到存储器事务时,总线/
个实施例中,MCH 150可
事务。
在一个实施例中,处理器110可以基于存储器访问的类型以及
之外,非相关
在一个实施例中,混
(可缓存:否,可回写缓存:
例中,排序特性可以相当于写存储
储到存储器190之前,可以在写缓
非相关属性可以表示:当在外部总
链路代理不能侦听其内部高速缓存。在一
以中止或重定向指向SMM空间的非相关存储器
SMM_MTRR 121和122中的配置值,确定最终的存储器类型。在一
个实施例中,最终的存储器类型可以确定在外部总线上是否发生存储
器访问。在一个实施例中,如果最终的存储器类型为NCUC和NCWC,
则在外部总线上发生标记为这种存储器类型的存储器访问。在一个实
施例中,如果最终的存储器类型为回写,则外部总线上可能没有发生
存储器访问。在一个实施例中,如果处理器110运行于RAM(CRAM)
模式的高速缓存中,则最终的存储器类型可能为回写。在一个实施例
中,CRAM模式可以保证存储在高速缓存130中的指令和数据可来
自信任源。在一个实施例中,可以将强加密算法用于对CRAM中的
指令和数据进行鉴权。
在一个实施例中,MCH 150可以保护SMM空间免受非法处理器
访问。在一个实施例中,为了保护SMM空间,存储器控制中
可以支持可锁定SMRAM配置寄存器以及控制寄存
可锁定配置寄存器可以启动SMM空间的特定
制寄存器可以控制例如FSB等外部总线
寄存器可由运行于SMM的处理器
在一个实施例中,当启动C_SMRAM 191时,MCH 150可以将
处理器存储器访问导向SMM地址,以及将非SMM处理器存
传统的视频区域,其中所述非SMM处理器存储器访问
(PCI)Express和直接媒体接口(DMI)引起的存
当启动HSEG 192时,MCH 150可以将
向重新映射的SMRAM地址,并且
在一个实施例中,当启动TSEG 193时,MCH 150可以将SMM
处理器存储器访问导向所配置的SMRAM地址,并且中止非
存储器访问。从而,MCH 150可以保护SMM空间免受
出的非法存储器访问。但是,MCH 150可能无法保护
发生在处理器110的高速缓存130内部的非法存
在一个实施例中,处理器110可以重新路由指向所启动的SMM
非法存储器访问或者强制其发生在外部总线上。当在外部总线
对应于高速缓存攻击的非法存储器访问之后,MCH 150可以
间免受高速缓存攻击。
在图2中描述了可以对指向所启动的SMM空间的非法存储器访 问进行
空间的
上执行
和回写
SMM
存储器
心(MCH)150
器。在一个实施例中,
组合。在一个实施例中,控
上数据访问的发生,其中所述控制
110部分地锁定以及部分地改变。
储器访问导向
例如外围组件互连
储器访问。在一个实施例中,
SMM和回写处理器存储器访问导
中止非SMM处理器存储器访问。
SMM处理器
外部总线上发
SMM空间免受可能
储器访问。
保护SMM空
强制的处理器110的一个实施例。
在方框205中,BIOS可以使用SMM空间的一个基本物理地址
MTRR类型对SMM_MTRR进行配置。在一个实施例中,基于
内容的处理器110可以将SMM_MTRR_BASE_REG 121的类型
121-A配置为一种存储器类型,例如NCUC、NCWC、UC以及
(WB)。BIOS可以将SMM_MTRR_BASE_REG 121的地址字段
配置为SMM空间的一个基本物理地址。例如,基本物理地址
C_SMRAM 191或者HSEG 192或者TSEG 192的基址。
在方框210中,基于BIOS的处理器110可以使用SMM空间的
址掩码以及保护使能指示符值对SMM_MTRR 121和122进行
实施例中,处理器110可以将SMM_MTRR_MASK_REG
段122-A配置为第一逻辑值,以激活保护机制,以及将
122-A配置为第二逻辑值,以关闭向SMM空间提供的
在方框215中,处理器110可以确定线性或物理发起存储器访问
向SMM空间。在一个实施例中,线性存储器访问可以表示可
的存储器操作,其中处理器110可以使用页面调度机制
为物理地址。在一个实施例中,物理发起存储器
直接使用物理地址所执行的存储器访问。
在一个实施例中,处理器110可以检查使能字段122-A,如果
对121和122被启动,则可以确定线性或物理发起存储
SMM空间。在一个实施例中,处理器110可以进行
所述,以确定线性或物理发起存储器访问是
((处理器110指向的物理地址)AND(存储在寄存器122的掩
以及
BIOS
字段
回写
121-B
值可以等于
物理地
配置。在一个
122的使能字
所述使能字段
保护机制。
是否指
使用线性地址
将所述线性地址转换
访问可以表示处理器
SMM MTRR
器访问是否指向
比较,如下述方程(1)
否指向SMM空间。
码字段122-B
中的掩码))=((存储在寄存器121的地址字段121-B
在寄存器122的掩码字段122-B中的掩码))
--------------方程(1)
中的地址)AND(存储
------------------------------------
在一个实施例中,如果方程(1)中的条件为真,则控制可以进
否则,控制可以进行到方框235。
行到方框220,
在方框220中,处理器110可以检查处理器110是否运行于SMM。
实施例中,CPU 120可以确定是否维持了SMM运行指示信号。
实施例中,SMM运行指示信号的维持可以指示处理器110正
如果处理器110正运行于SMM,则控制可以进行到方
可以进行到方框260。
在方框225中,处理器110可以确定SMM_MTRR_BASE_REG
否指定了存储器类型,如果寄存器121指定了存储器类型,则
框250,否则,控制进行到方框235。在方框235中,
存储在标准MTRR寄存器中的配置值以及PAT
储器类型。在方框250中,处理器110可
121以及页面属性表(PAT)中的
在方框260中,处理器110可以确定存储器访问是否是线性发起
果存储器访问是线性发起的,则控制进行到方框265,如果存
理发起的,则控制进行到方框280。在一个实施例中,
引起存储器访问的微操作(称为“uop”)类型,
的还是物理发起的。在一个实施例中,线
的内部编码,处理器110可以基于内部编
在一个
在一个
运行于SMM。
框225,否则,控制
121是
控制进行到方
处理器110可以基于
中的属性值,确定最终的存
以基于存储在SMM MTRR寄存器
配置值,确定最终的存储器类型。
的,如
储器访问是物
处理器110可以基于
确定存储器访问是线性发起
性和物理uop可以包括不同
码识别线性或者物理存储器访问。
在方框265中,处理器110可以确定有效存储器类型是否是混合
(WC),如果有效存储器类型是WC,则控制进行到方框270,
行到方框275。在一个实施例中,处理器110可以通过
类型和PAT存储器类型计算有效存储器类型,来
是否是WC。
在方框270中,处理器110可以确定最终的存储器类型是NCWC。
275中,处理器110可以确定最终的存储器类型是NCUC。在
处理器110可以基于一组标准确定最终的存储器类
该组标准可以包括:有效存储器类型,存储器
处理器110是否运行于SMM,存储器访
以及处理器110是否运行于CRAM
在方框280中,处理器110可以确定处理器110是否运行于
如果处理器110运行于CRAM模式,则控制进行到方
进行到方框275。在一个实施例中,处理器110
的比特,确定其是否运行于CRAM模式。
110可以在进入和退出CRAM模式时,设
存器中的预先指定的比特。在方框285
储器类型是回写(WB)。
已经参考示例性实施例描述了本发明的特定特征。但是,该描述
在以限制方式进行解释。本发明所属领域的技术人员所显而易
例性实施例的多种修改以及本发明的其它实施例将被认为落
神和范围内。
写入
否则,控制进
根据MTRR存储器
确定有效存储器类型
在方框
一个实施例中,
型。在一个实施例中,
地址是否指向SMM空间,
问是线性发起的还是物理发起的,
模式。
CRAM模式,
框285,否则,控制
可以基于内部控制寄存器中
在一个实施例中,处理器
置或者重新设置内部控制寄
中,处理器110可以确定最终的存
并不旨
见的示
入本发明的精