将系统管理代码区域访问转向的制作方法

文档序号:6570238阅读:136来源:国知局
专利名称:将系统管理代码区域访问转向的制作方法
技术领域
本^〉开涉及信息处理领域,更具体地说,涉及存储器管理和保护 领域。
背景技术
信息处理系统(如那些包括英特尔公司的Pentium⑧处理器系列中 的处理器的信息处理系统)可以提供系统管理模式("SMM"),它是与 正常执行环境并行的操作环境,它可用于执行特殊任务,如系统管理、 设备管理、功率管理、热管理、可靠性功能、可用性功能、可服务性 功能等。SMM通常通过断言系统管理中断引脚而进入,并且通过执 行恢复指令而退出。因为SMM是独立的操作环境,所以它有它自己 的专用存储器空间,必须对该空间进行保护以免受正常执行环境的影 响。尽管该专用存储器空间与常^L的系统存储器分离,但它会映射到 常规系统存储器中的地址区域。
SMM代码映射到的常规系统存储器中的地址区域应当只能在 SMM操作期间才可访问。但是,因为典型的高速緩存不能区分SMM 代码和其它代码,所以已知的病毒溢出(exploit)涉及在SMM代码映射 到的地址处对高速緩存的写入。 一种保护SMM代码免于这种溢出的 方法是利用存储器类型范围寄存器("MTRR")来将SMM代码区域设 置成在正常执行期间不可緩存,在进入到SMM时回写可緩存,并且 在恢复时回到不可緩存。


附图中举例而非限制性地示出本发明 图lW
处理器的实施例。
具体实施例方式
以下说明描述了用于将SMM代码区域访问转向的技术的实施 例。在以下描述中,阐述了诸如处理器和系统配置的众多具体细节, 以便更充分地理解本发明。但是,本领域的技术人员将明白,在没有 这些具体细节的情况下,也可以实现本发明。此外,没有详细示出一 些熟知的结构、电路等,以免不必要地使本发明晦涩难懂。
本发明的实施例提供SMM代码区域访问。该转向可以合乎需要 地用于保护SMM代码免于在正常执行期间被访问。本发明的实施例 可以结合SMM与正常执行才莫式之间的转换来实现,而不会因为在可 》1存与不可緩存之间改变存储器类型而带来性能损失。
图1示出本发明的处理器(处理器110)的实施例,处理器110包括 用于将对SMM代码区域的访问转向的逻辑。图中将处理器110示为 位于系统100中,该系统100还包括SMM存储器120和正常系统存 储器130。
处理器110可以是多种不同类型的处理器中的任何一种处理器, 如英特尔/>司的Pentium⑧处理器系列、Itanium⑧处理器系列或其它处 理器系统中的处理器,或来自另一家公司的任何其它专用或其它处理 器。尽管图1示出在处理器中实施的本发明,但是本发明可以替代地 在任何其它类型的数据处理元件或装置中实施。在图1的实施例中, 处理器110包括状态指示器(indicator)lll、基存储单元112、存储器 类型存储单元113、掩码存储单元114、有效指示器115、异常终止存 储单元116、地址比较器117、转向逻辑118和控制逻辑119。
状态指示器111用于指示处理器110是否正在SMM中工作。状 态指示器111可以是任何存储单元中的任何字段或指示器,如寄存器
中的状态位,当处理器110进入SMM时,控制逻辑119(如下所述) 将该状态位设置成1,当处理器110退出SMM时,控制逻辑119将 该状态位清为0。
基(base)存储单元112用于存储基地址。基地址用于指定存储器地 址区域("SMM区域"),在该存储器地址区域,将访问SMM代码的。 基存储单元112可以是任何存储单元中的任何字段。在一个实施例中, 基存储单元112可以是用于指定对准的4K基地址的64位才莫式指定寄 存器("基系统管理范围寄存器"或"基SMRR")的位31:12。
存储器类型存储单元113用于存储由基地址指定的区域的存储器 类型(如不可緩存、回写可緩存、写保护可緩存、直写可緩存等)。存 储器类型存储单元113可以是任何存储单元中的任何字段。在一个实 施例中,存储器类型存储单元113可以是基SMRR的位7:0。
掩码存储单元114用于存储掩码(mask)值,当将存储器访问中所 用的地址与基地址进行比较时,该掩码值用于屏蔽所选的位。掩码存 储单元114可以是任何存储单元中的任何字段。在一个实施例中,掩 码存储单元114可以是用于指定待存储在基SMRR中的基地址的屏蔽 的位的64位模式指定寄存器("掩码系统管理范围寄存器"或"掩码 SMRR")的位31:12。
有效指示器115用于指示基存储单元112和掩码存储单元114是 否正在存储有效值。有效指示器115可以是任何存储单元中的任何字 段或指示器,它可以通过系统管理初始化代码、系统管理处理程序、 或任何其它软件、固件或硬件来设置。在一个实施例中,有效指示器 可以是掩码SMRR的位11。
异常终止存储单元116用于存储异常终止地址。异常终止地址用 于指定这样的存储器地址区域("异常终止区域"),如果处理器110 不在SMM中工作,则将对SMM区域的访问转向该存储器地址区域。 异常终止存储单元116可以是任何存储单元中的任何字段。在一个实 施例中,异常终止存储单元116可以是寄存器。在一个实施例中,异
常终止地址是处理程序的系统存储器地址。异常终止区域中可以存储 用于处理访问的任何代码,如操作系统例行程序。
地址比较器117用于将存储器访问中所用的地址与基地址进行比 较。该比较可以根据任何已知的方法来执行,并且可以使用来自掩码 存储单元114的掩码值来屏蔽该比较中的所选位。
转向逻辑118用于在处理器110不在SMM中工作时将SMM区 域访问转向异常终止区域。该转向可以根据任何已知的方法来执行,
例如用异常终止地址替^:内部或外部地址总线上的基地址。
控制逻辑119用于只有在处理器110处于SMM时才允许对上文 描述的存储单元和指示器编程。控制逻辑119可以是处理器110内的 微代码、可编程逻辑、硬编码逻辑或任何其它形式的控制逻辑。在其 它实施例中,控制逻辑119可以在处理器内的或在处理器可访问的任 何元件或处理器可读的任何介质(如SMM存储器120)内的任何形式的 硬件、软件或固件(如处理器抽象层)中实现。
在图1中,存储器120和130可以是静态或动态随机存取存储器、 基于半导体的只读存储器或闪速存储器、磁盘或光盘存储器、处理器
110可读的任何其它类型的介质、或这些介质的任意组合。SMM存储 器120用于存储SMM代码。正常系统存储器130用于存储包括操作 系统和应用程序代码在内的代码。
处理器110与存储器120和130可以根据任何已知的方法相互耦 合或彼此通信,例如直接耦合或通信,或通过一个或多个总线、点对 点或其它有线或无线连接、和/或通过诸如芯片集或存储器控制器的4壬 何其它元件间接耦合或通信。系统IOO还可包括任意数量的附加元件 或连接。
图2示出本发明的用于将SMM代码区域访问转向的方法(方法 200)的实施例。在方框210,检测例如因读或写指令的提取、解码、 执行或尝试执行引起的存储器访问。该存储器访问启动MTRR中的查 找,以便确定所访问的存储器区域的存储器类型。
在方框212,通过例如地址比较器117,利用来自掩码SMRR的 掩码,将与方框210中的存储器访问关联的地址与来自基SMRJR的基 地址进^f亍比4支。如果地址不匹配,则在方框240允许访问。如果地址 匹配,则在方框214,检查状态指示器111以便确定处理器IIO是否 处于SMM。
从方框214,如果处理器IIO没有处于SMM,则在方框220,转 向逻辑118例如通过用异常终止地址替换与存储器访问关联的地址的 基部分来将访问转向异常终止区域。在方框222,控制逻辑119为存 储器访问指定不可緩存的存储器类型。在方框240,允许访问。
从方框214,如果处理器IIO处于SMM,则在方框230,为存储 器访问指定来自基SMRR的存储器类型。在方框240,允许访问。
在本发明的范围内,方法200可以按不同的次序执行,其中可以 同时执行所示方框,可以省去所示方框,可以增加额外的方框,或者 进行重新排序的、组合的、省去的或额外的方框的组合。
可以在从创建到模拟到制作的不同阶段进行设计。代表设计的数据可 以用多种方式来表示这个设计。首先,可以使用硬件描述语言或另一 种功能描述语言来表示硬件,这在模拟中有用。作为补充或替代,可 以在设计过程中的某些阶段产生具有逻辑和/或晶体管门的电路级才莫 型。此外,在某个阶段,大部分设计达到能够用代表各种设备的物理 替换的数据对其进行建^t的程度。在使用常规半导体制造技术的情况 下,代表设备替换才莫型的数据可以是指定在用来制造集成电路的掩模 的不同掩才莫层上各种特征存在与否的数据。
在设计的任意表示中,数据可以存储在任意形式的机器可读介质 中。经调制或以其它方式生成用来传送该信息的光波或电波、存储器、 或诸如盘的磁或光存储介质都可以作为机器可读介质。所有这些介质 都可以"携带"或"指示,,该设计、或本发明的实施例中所用的其它 信息,如错误恢复例行程序中的指令。当指示或携带信息的电载波得
以传送时,在执行电信号的复制、緩冲或重新传送的程度,进行了新 的复制。因此,通信提供者或网络提供者的动作可以构成物品(例如, 载波)的复本,从而实施本发明的技术。
因此,上文公开了用于将SMM代码区域访问转向的技术。虽然
已经描述并在附图中示出了某些实施例,但是要了解,这些实施例只 是说明而不是限制宽广的本发明,并且本发明并不局限于所示出和描 述的具体结构和配置,本领域的技术人员在研究本公开之后可以联想 到各种其它修改。在发展迅速并且难以预见到进一步改进的诸如此类
的技术领域中,在不背离本公开的原则或随附权利要求的范围的前提 下,通过促进4支术进步可以容易地对所公开的实施例进行配置和细节 方面的纟务改。
权利要求
1.一种装置,包括用于指示所述装置是否正在系统管理模式中工作的状态指示器;用于存储基地址的基存储单元,其中所述基地址用于指定第一存储器地址区域,在所述第一存储器地址区域,将访问系统管理代码;用于存储异常终止地址的异常终止存储单元,其中所述异常终止地址用于指定第二存储器地址区域,如果所述装置不在所述系统管理模式中工作,则将对所述第一存储器地址区域的访问转向所述第二存储器地址区域。
2. 如权利要求l所述的装置,还包括转向逻辑,如果所述装置不 在所述系统管理才莫式中工作,则所述转向逻辑将第一存储器地址区域 访问转向所述第二存储器地址区域。
3. 如权利要求l所述的装置,还包括存储器类型存储单元,用于 存储将指定给对所述第 一存储器地址区域的访问的存储器类型。
4. 如权利要求l所述的装置,还包括控制逻辑,用于为对所述第 二存储器地址区域的访问指定不可緩存的存储器类型。
5. 如权利要求l所述的装置,还包括比较器,用于将所述基地址 和与存储器访问关联的地址进行比较。
6. 如权利要求5所述的装置,还包括掩码存储单元,用于存储用 于指定所述比较器要屏蔽的地址位的掩码。
7. —种方法,包括 检测存储器访问请求;以及如果所述存储器访问是针对系统管理代码区域并且所述存储器 访问请求不是在系统管理;f莫式中执行的,则将所述存储器访问转向异 常终止代码区域。
8. 如权利要求7所述的方法,还包括将与所述存储器访问关联的 地址与基地址进行比较,以便确定所述访问是否是针对所述系统管理代码区域的。
9. 如权利要求8所述的方法,还包括从基地址存储单元读取所述 基地址。
10. 如权利要求8所述的方法,其中将与所述存储器地址关联的 地址与所述基地址进行比较还包括屏蔽所述基地址的所选位。
11. 如权利要求IO所述的方法,还包括读取掩码存储单元,以便 确定选择哪些位来进行屏蔽。
12. 如权利要求7所述的方法,还包括 从存储器类型存储单元读取存储器类型;以及如果所述访问是针对所述系统管理代码区域并且所述存储器访 问请求是在所述系统管理模式中执行的,则将所述存储器类型指定给 所述访问。
13. 如权利要求7所述的方法,还包括如果所述访问是针对所 述系统管理代码区域并且所述存储器访问请求不是在所述系统管理 模式中执行的,则为所述访问指定不可緩存的存储器类型。
14. 如权利要求7所述的方法,还包括通过检查状态指示器来确 定所述访问是否是在所述系统管理模式中执行的。
15. 如权利要求7所述的方法,其中将所述存储器访问转向异常址的一部分。
16. 如权利要求15所述的方法,还包括从异常终止地址存储单元 读取所述异常终止地址。
17. 如权利要求7所述的方法: 求是在所述系统管理模式中执行的 进行访问。
18. —种系统,包括 动态随机存取存储器;以及 处理器,所述处理器包括还包括如果所述存储器访问请 则允许对所述系统管理代码区A戈 用于指示所述处理器是否正在系统管理^t式中工作的状态指示器;用于存储基地址的基存储单元,其中所述基地址用于指定第 一存储器地址区域,在所述第一存储器地址区域,将访问系统管理代 码;用于存储异常终止地址的异常终止存储单元,其中所述异常 终止地址用于指定第二存储器地址区域,如果所述处理器不在所述系 统管理模式中工作,则将对所述第 一存储器地址区域的访问转向所述 第二存储器地址区域。
19. 如权利要求18所述的系统,其中所述动态随机存取存储器用 于存储所述系统管理代码。
20. 如权利要求18所述的系统,其中所述动态随机存取存储器是 用于在所述处理器不在所述系统管理模式中工作时处理对所述第一 存储器地址区域的访问的处理程序。
全文摘要
公开用于将SMM代码区域访问转向的装置和方法。在一个实施例中,装置包括状态指示器、基存储单元和异常终止存储单元。状态指示器用于指示装置是否正在SMM中工作。基存储单元用于存储基地址,而异常终止存储单元用于存储异常终止地址。基地址用于指定第一存储器地址区域,在该区域,将访问SMM代码。异常终止地址用于指定第二存储器地址区域,如果装置不在SMM中工作,则将对第一存储器地址区域的访问转向第二存储器地址区域。
文档编号G06F12/14GK101351775SQ200680049977
公开日2009年1月21日 申请日期2006年12月18日 优先权日2005年12月30日
发明者C·B·拉斯特, D·A·库费蒂, F·宾斯, H·W·加特勒, M·G·迪克松 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1