对预留给处理器逻辑使用的存储器的访问类型保护的制作方法_2

文档序号:8501120阅读:来源:国知局
是否来自于管芯上的处理器逻辑103。例如,如果管芯上的处理器 逻辑正在意图进行访问,则操作模式1〇9(例如,单一比特)可以具有第一值(例如,被设置 为二进制1),或者,如果管芯上的处理器逻辑不正在意图进行访问(例如,执行软件102正 在意图进行访问),则可以具有第二、不同的值(例如,被清除为二进制零)。在某些实施例 中,处理器(例如,管芯上的处理器逻辑或处理器的其他固件或硬件)可以基于管芯上的处 理器逻辑是否正在意图访问预留存储器,来指定操作模式。如图所示,操作模式可以被包括 在配置寄存器108组中。操作模式基本上指示旨在访问操作模式保护的存储器的特定管芯 上的处理器逻辑是否事实上是正在访问操作模式保护的存储器的实体。可另选地,操作模 式可以被包括在管芯上的处理器逻辑中、存储器管理单元(未示出)中,或在别处。作为另 一选项,操作模式还可以与处理器执行流水线中的微指令相关联(例如,作为微指令的属 性中的一个)。操作模式检查逻辑可以判定允许由管芯上的处理器逻辑访问,或阻止由除管 芯上的处理器逻辑以外的的实体(例如,由执行软件102)访问。在示图中,使用"X"来指 示操作模式检查逻辑可以阻止由执行软件对预留存储器的访问。
[0040] 预留存储器保护逻辑还包括访问类型检查逻辑106的实施例。访问类型检查逻辑 可以能够用于基于意图的访问的类型,允许或阻止对访问类型保护的存储器119的访问。 来自管芯上的处理器逻辑的访问以及来自执行软件的访问可以各自都具有对应的访问类 型。例如,这些访问类型可以对应于正在意图访问的指令(例如,宏指令和/或微指令)。 例如,加载(load)指令可以意图读取类型的访问,存储(store)指令可以意图写入类型的 访问,等等。访问类型检查逻辑可以接收这些意图的类型的访问,以及对应于访问类型保护 的存储器的允许的访问类型111。访问类型检查逻辑可以能够用于检查意图的类型的访问 是否匹配允许的访问类型。访问类型检查逻辑可以当意图的访问类型匹配允许的访问类型 时判定允许访问,或当意图的访问类型不匹配允许的访问类型时,阻止访问。例如,意图的 从写入保护的存储器121读取可以被允许,但是,意图的向写入保护的存储器121的写入可 能不被允许。
[0041] 保护逻辑107可以基于操作模式105以及访问类型检查106逻辑的检查,允许或 阻止意图的访问。在某些实施例中,如果操作模式或者访问类型是非法的,则可以阻止意图 的访问。在某些实施例中,在意图的非法访问的情况下,可以采取一种或多种额外的保护措 施。这样的措施的示例包括,但不仅限于,引发异常(例如,中断、错误、陷阱等等),将非法 意图报告给适当的实体(例如,管芯上的处理器逻辑或操作系统)、停止正在执行的软件, 等等。
[0042] 有利地,基于意图的访问的类型来限制对存储器的某些部分的意图的访问的这一 能力可以帮助提高总体安全性。一方面,这可以帮助实施最小特权原则,其中,每一个实体 只被允许做它实现其计划的任务需要做的事情,而不能做别的。访问类型检查逻辑可以基 于访问类型,帮助进一步限制甚至是由管芯上的处理器逻辑本身对访问类型保护的存储器 的访问。计划的或期望的访问类型可以被允许,而非计划的或不期望的访问类型可以被阻 止(甚至对于否则将会满足操作模式检查的管芯上的处理器逻辑亦是如此)。这表示除 操作模式限制之外的额外的限制。作为示例,在没有访问类型检查和保护逻辑的情况下, 管芯上的处理器逻辑可以被允许向写入保护的存储器121进行写入,但是,在有访问类型 检查和保护逻辑的情况下,管芯上的处理器逻辑可以被阻止向写入保护的存储器121进行 写入。其次,此能力还可以帮助提供纵深防御,其中,即使操作模式检查和保护机制被破坏 (例如,被漏洞(bug)、恶意软件、窜改等等所破坏),访问类型检查和保护机制也能够提供 另一级别的防御。
[0043] 图2A是带有显式访问类型211的访问类型保护的存储器规范寄存器210A的实施 例的框图。在某些实施例中,BIOS、固件、适当地拥有特权的软件,等等,可以配置或指定寄 存器,以便指定访问类型保护的存储器(例如,图1中的访问类型保护的存储器119)的属 性。
[0044] 寄存器包括允许指定基址(base address)的基址字段230。寄存器包括允许指定 地址掩码的地址掩码字段231。基址可以指定访问类型保护的存储器驻留在物理存储器中 的什么位置。地址掩码可以指定访问类型保护的存储器的大小。下面将进一步描述合适的 基址和地址掩码的进一步的细节。
[0045] 寄存器包括可选有效性字段232。有效性字段可以允许指定访问类型保护的存储 器规范寄存器和/或其对应的访问类型保护的存储器是否有效(例如,是否正在被使用)。 例如,只有当有效比特被设置或以别的方式启用时,才可以执行访问类型检查和实施。如 此,有效比特可以表示对于访问类型检查和实施机制的开/关切换。
[0046] 寄存器包括用于允许寄存器被锁定的可选锁定字段233。作为示例,在BIOS、固 件,或另一适当的实体已经配置了寄存器之后,该实体可以启用锁定(例如,通过在锁定字 段存储预定值)。例如,单一比特锁定字段可以被设置为二进制1,以锁定寄存器,或被清除 为二进制零以解锁寄存器。启用锁定可以帮助防止对寄存器的未授权修改。作为示例,当 系统被关闭和/或发生硬件重置时,锁定可以被释放(例如,寄存器被解锁)。锁定可以保 持解锁,直到BIPS或其他实体配置寄存器并设置锁定。
[0047] 寄存器包括访问类型字段211,用于允许显示指定由基址和地址掩码所指定的存 储器位置的一种或多种访问类型。指定的访问类型可以是被允许的访问类型或者被阻止的 访问类型。例如,访问类型字段可以指定读取、写入、执行中的任何一个,或其某种组合,是 否被允许或被阻止。作为示例,写入保护的存储器可以被指定为阻止写入或者准许读取和 执行。
[0048] 图2B是带有隐式访问类型的访问类型保护的存储器规范寄存器210B的实施例的 框图。寄存器包括基址字段230、地址掩码字段231、可选有效性字段232,以及可选锁定字 段233。寄存器,以及这些字段中的每一个,都可以类似于上文结合图2A所描述的那些或与 它们相同。为避免模糊描述,将不重复这些类似处,讨论将强调寄存器210B的不同的或额 外的方面。
[0049] 寄存器省略显式地指定的访问类型字段。相反,一种或多种访问类型对于寄存器 210B是预定义的或以别的方式隐式的。例如,预留存储器保护逻辑104可以理解,对应于寄 存器210B的存储器部分(例如,通过基址字段230和地址掩码字段231指示的)具有预定 义的或以别的方式隐式的被允许的或被阻止的访问类型。在某些情况下,不同的这样的寄 存器可以各自具有对于不同的对应的存储器范围的不同的对应的隐式访问类型。
[0050] 应该理解,这些只是合适的寄存器的示例实施例。替换实施例可包括所示出的字 段的子集,和/或可包括额外的字段。例如,某些寄存器可以具有有效性字段而没有锁定字 段,可以具有锁定字段而没有有效性字段,或可以省略这两个字段但是包括额外的字段。此 外,寄存器内的字段的所示出的布局不是必需的,相反可以以许多不同的方式重新排列字 段。字段中的每一个都可以是寄存器中的足以指定用于特定实现的计划的信息的一个或多 个比特(bit)。所述比特可以是在物理上连续的比特序列,或可以分散在整个寄存器中,但 是逻辑地编组到字段中,或其组合。
[0051] 图3是检查并限制对操作模式及访问类型保护的(operation mode and access type protected)存储器的访问的方法340的详细示例实施例的方框流程图。在某些实施 例中,图3的操作和/或方法可以由图1的处理器执行和/或在其内执行。替换地,图3的 操作和/或方法可由类似的或完全不同的设备执行,和/或在类似的或完全不同的设备内 执行。此外,图1的处理器可以执行与图3的那些相同、类似,或不同的操作和/或方法。
[0052] 该方法包括在框341,判定意图的访问是否在操作模式及访问类型保护的存储器 内。例如,这可包括将意图的访问的物理地址与对应的访问类型保护的存储器规范寄存器 的基址字段和地址掩码字段进行比较。如果意图的访问的物理地址不在操作模式及访问类 型保护的存储器内(即,在框341,判定是"否"),那么,在框342,可以允许对存储器的物理 地址的意图的访问。这意味着,意图的访问在操作模式及访问类型保护的存储器之外。此 后,在下一对存储器的意图的访问时,方法可以重回框341。
[0053] 可另选地,如果意图的访问的物理地址在操作模式及访问类型保护的存储器内 (即,在框341,判定是"是"),那么,方法可以前进到框343。在框343,可以作出是否对于 访问类型检查和实施启用了操作模式及访问类型保护的存储器的可选判定。这是可选的, 不是必需的。这可包括检查对应的访问类型保护的存储器规范寄存器中的有效性比特或字 段。如上文所提及的,有效性可以指示当前启用还是禁用对访问类型保护的存储器的保护。 如果它无效(即,在框341,判定是"否"),那么,方法可以前进到框347,在那里,可以允许 对操作模式及访问类型保护的存储器的意图的访问(例如,因为保护机制当前被禁用或以 别的方式无效)。
[0054] 可另选地,如果操作模式及访问类型保护的存储器有效(即,在框343,判定是 "是"),那么,方法可以前进到框344。在框344,可以作出意图的访问的操作模式是否被允 许的判定。这可包括检查当前操作模式(例如,处理器的配置寄存器中的比特),以及判定 当前操作模式是否指示管芯上的处理器逻辑正在意图访问。如果管芯上的处理器逻辑正在 意图访问,那么,可以允许意图的访问的操作模式。否则,如果管芯上的处理器逻辑不正在 意图访问(例如,而是在处理器上执行的软件正在意图访问),则可以不允许意图的访问的 操作模式。
[0055] 如果意图的访问的操作模式被允许(即,在框344,判定是"是"),则方法可以前 进到框346。在框346,可以作出意图的访问的访问类型是否被允许的判定。这可包括将意 图的访问的访问类型与对于操作模式及访问类型保护的存储器的允许的访问类型进行比 较。如上文所提及的,在某些情况下,可以由对应的访问类型保护的存储器规范寄存器显式 地指定或隐式地指示允许的访问类型。如果意图的访问类型匹配允许的访问类型之一,那 么,可以允许意图的访问类型。否则,如果意图的访问类型不同于所有的允许的访问类型, 那么,可以不允许意图的访问类型。
[0056] 如果意图的访问的操作模式不被允许(即,在框344,判定是"否"),或者如果意图 的访问的访问类型不被允许(即,在框346,判定是"否"),则方法可以前进到框345。在框 345,可以拒绝对操作模式及访问类型保护的存储器的意图的访问。在某些实施例中,还可 以采取其他措施(例如,引发异常、向有特权的实体报告非法访问,等等)。此后,在下一对 存储器的意图的访问时,方法可以重回框341。
[0057] 可另选地,如果意图的访问被允许(即,在框346,判定是"是"),那么,方法可以前 进到框347。在框347,可以允许对操作模式及访问类型保护的存储器的意图的访问。对操 作模式及访问类型两者的检查表明,意图的访问是可允许的。此后,在下一对存储器的意图 的访问时,方法可以重回框341。
[0058] 这只是合适的方法的一个说明性示例。也可以构想此方法的许多变体。例如,以 相对基本的形式描述了方法,但是,可以可任选地向方法中添加操作和/或从方法中删除 操作。作为一个示例,其他实施例可以省略在框343处示出的有效性检查。作为另一个示 例,其他实施例涉及访问类型保护而没有操作模式保护。此外,尽管流程图示出了操作的一 个可能的顺序,但是,替换实施例可以以不同的顺序执行操作、组合某些操作,重叠某些操 作等等。
[0059] 图4是预留存储器保护逻辑404的实施例的框图。在某些实施例中,图4的预留 存储器保护逻辑可以被包括在图1的处理器中。可另选地,图4的预留存储器保护逻辑可 以被包括在类似的或者完全不同的设备内。此外,图1的处理器可包括与图4的那个相同, 类似,或者完全不同的预留存储器保护逻辑。此外,在某些实施例中,图4的预留存储器保 护逻辑可以执行图3的操作和/或方法。可另选地,图4的预留存储器保护逻辑可以执行 类似的或者完全不同的操作和/或方法。此外,图3的操作和/或方法可以由与图4的那 个相同,类似,或者完全不同的逻辑来执行。
[0060] 向第一 AND逻辑452的输入端(a)提供基址430。向第一 AND逻辑的输入端(b) 提供地址掩码431。还向第二AND逻辑453的输入端(d)提供该地址掩码。作为示例,基址 和地址掩码可以来自访问类型
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1