首页> 中国专利> 对预留给处理器逻辑使用的存储器的访问类型保护

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

摘要

一方面的处理器包括操作模式检查逻辑,所述操作模式检查逻辑基于用于指示意图的访问是否是由管芯上的处理器逻辑作出的操作模式来判定是否允许对操作模式及访问类型保护的存储器的意图的访问。访问类型检查逻辑基于对操作模式及访问类型保护的存储器的意图的访问的访问类型,判定是否允许对操作模式及访问类型保护的存储器的意图的访问。保护逻辑与操作模式检查逻辑耦合,并与访问类型检查逻辑耦合。如果操作模式检查逻辑和访问类型检查逻辑中的至少一个判定不允许意图的访问,则保护逻辑将拒绝对操作模式及访问类型保护的存储器的意图的访问。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-06-07

    未缴年费专利权终止 IPC(主分类):G06F13/16 专利号:ZL2013800623415 申请日:20130613 授权公告日:20180330

    专利权的终止

  • 2018-03-30

    授权

    授权

  • 2015-09-02

    实质审查的生效 IPC(主分类):G06F13/16 申请日:20130613

    实质审查的生效

  • 2015-08-05

    公开

    公开

说明书

背景

领域

各实施例涉及处理器领域。具体而言,各实施例涉及用于限制对存储 器的某些部分的访问的的处理器的领域。

背景信息

某些处理器具有预留物理存储器的一部分供处理器的固件,或其他管 芯上的处理器逻辑使用,但不供在处理器中执行的软件使用的机制。作为 示例,物理存储器的该部分可以由处理器的固件、基本输入/输出系统 (BIOS)配置,或以别的方式配置。在操作过程中,该机制可以监测对物 理存储器的该部分的意图的(attempted)访问,并判断是否应该允许该意 图的访问。在这样的处理器中,对物理存储器的该部分的保护基于意图的 访问的操作模式(例如,是管芯上的处理器逻辑还是软件正在意图访问)。 如果意图的访问来自于管芯上的处理器逻辑,则它们可以被允许,或者如 果意图的访问来自于在处理器中执行的软件,则它们可能不被允许。

附图的若干视图的简述

可以通过参考用来说明本发明的各实施例的下列描述和附图来理解本 发明。在附图中:

图1是包括处理器和存储器的计算机系统的实施例的框图。

图2A是带有显式访问类型的访问类型保护的存储器规范寄存器的实 施例的框图。

图2B是带有隐式访问类型的访问类型保护的存储器规范寄存器的实 施例的框图。

图3是检查并限制对操作模式及访问类型保护的存储器的访问的方法 的详细示例实施例的方框流程图。

图4是预留存储器保护逻辑的实施例的框图。

图5是一组访问类型保护的存储器的实施例的框图。

图6是具有TLB的实施例的处理器的框图,TLB具有访问类型检查和 实施逻辑。

图7示出了具有条目的TLB,条目具有常规分页属性比特和逻辑以重 新使用常规分页属性比特,但是带有对于物理访问的不同的解释。

图8示出了具有条目的TLB,条目具有常规分页属性比特和额外的比 特以指定存储器访问类型和逻辑以使用额外的比特来进行物理访问。

图9A是示出根据本发明的各实施例的示例性有序流水线和示例性的 寄存器重命名的无序发布/执行流水线的框图。

图9B是示出根据本发明的各实施例的要包括在处理器中的有序架构 核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框 图。

图10A是根据本发明的各实施例的单个处理器核的框图,以及其与管 芯上的互连网络的连接以及其第2级(L2)高速缓存的本地子集。

图10B是根据本发明的实施例的图10A中的处理器核的一部分的展开 图。

图11是根据本发明的各实施例的可以具有一个以上的核,可以具有集 成的存储器控制器,并可以具有集成的图形器件的处理器的框图。

图12,所示是根据本发明一实施例的系统的框图。

图13,所示是根据本发明的一个实施例的第一更具体的示例性系统的 框图。

图14,所示是根据本发明的一个实施例的第二更具体的示例性系统的 框图。

图15,所示是根据本发明一实施例的SoC的框图。

图16是根据本发明的各实施例的对照使用软件指令转换器将源指令 集中的二进制指令转换成目标指令集中的二进制指令的框图。

具体实施方式

在以下描述中,阐述了大量具体细节(例如,具体寄存器内容和布局、 具体逻辑实现、具体操作序列、具体逻辑分区/集成细节、系统组件的类型 和相互关系,等等)。然而,应该理解,本发明的各实施例可以在没有这 些具体细节的情况下实施。在其他情况下,没有详细示出已知的电路、结 构,以及技术,以便不至于使对本描述的理解变得模糊。

如背景部分所描述的仅基于意图的访问(attempted access)的操作模 式(例如,是管芯上的处理器逻辑还是软件正在意图访问)来限制对物理 存储器的一部分的意图的访问,此举的一个局限性在于没有考虑意图的访 问的访问类型(例如,意图的访问是读取、写入、还是执行等等)。结果, 计划或期望具有一种类型的被允许的访问的物理存储器的一部分相反可能 被另一,不同的非计划的(non-intended)访问类型访问。例如,物理存储 器的计划作为只读被访问的一部分可能相反被写入和/或从该部分执行。管 芯上的处理器逻辑可能能够执行这样的非计划的类型的访问,即使基于操 作模式的检查和保护机制在适当地起作用。另外,除管芯上的处理器逻辑 以外的实体,例如,在处理器中执行的软件,如果基于操作模式的检查和 保护机制被破坏(例如,被缺陷、恶意软件、窜改等等),则可能能够执 行这样的非计划的类型的访问。在这样的情况下,可能违反了对于物理存 储器的这些部分的计划的或所期望的访问类型。

此处公开了能够用于(operable to)至少部分地基于意图的访问的访问 类型,保护存储器的为管芯上的处理器逻辑所预留的某些部分的处理器、 方法,以及系统。有利地,这些处理器、方法,以及系统可以帮助提高总 体安全性。基于意图的访问的类型,限制对存储器的某些部分的意图的访 问,可以帮助进一步保护存储器的某些部分,甚至防止管芯上的处理器逻 辑的访问。这可以帮助实施最小特权原则,其中,每一个实体只被允许做 它实现其计划的任务需要做的事情,而不能做别的。另外,这还可以帮助 提供纵深防御(defense in depth),其中,即使操作模式检查和保护机制被 破坏,访问类型检查和保护机制也可以帮助提供另一级别的防御。

图1是包括处理器101和存储器115的计算机系统100的实施例的框 图。处理器和存储器通过常规耦合机制114(例如,通过一个或多个总线、 中枢、存储器控制器、芯片组组件等等),耦合,或以别的方式彼此进行 通信。存储器表示物理存储器,并可包括一个或多个不同的存储器设备, 和/或一个或多个不同类型的存储器。

在某些实施例中,处理器可以是通用处理器(例如,用于台式机、膝 上型计算机、服务器等计算机的类型的)。替换地,处理器可以是专用处 理器。合适的专用的处理器的示例包括,但不仅限于,通信处理器、网络 处理器、密码处理器、图形处理器、协处理器、嵌入式处理器、数字信号 处理器(DSP)以及控制器(例如,微控制器),仅举几个例子而已。

再次参考图1,存储器包括软件116。软件可包括,例如,一个或多个 操作系统(OS)、一个或多个应用程序等等。在操作过程中,软件的一部 分可以作为执行软件102在处理器上执行。执行软件可包括从软件116加 载并在处理器上执行(例如,被调度、解码、执行等等)的宏指令或指令 集架构(ISA)级别指令。ISA级别指令是ISA的一部分。ISA表示涉及编 程的处理器的架构的一部分,通常包括处理器的原生指令、架构寄存器、 数据类型、寻址模式等等。ISA与微架构不同,微架构一般表示被选择用 于实现ISA的特定处理器设计技术。执行软件可以使用存储器子集117, 该存储器子集117是存储器115的被允许被执行软件使用的一部分。

处理器101包括管芯上的处理器逻辑103。管芯上的处理器逻辑是固 定的,常驻的,或持久性在管芯上(例如,与从存储器115加载到处理器 中的软件指令相反)。通常,管芯上的处理器逻辑在处理器上存在,甚至 在处理器被断电的情况下,在引导之前,和/或在完成制造时。合适的管芯 上的处理器逻辑的示例包括,但不仅限于,处理器固件、处理器硬件(例 如,集成电路)、处理器的其他管芯上的永久性的逻辑,或其组合。作为 示例,固件可包括处理器的永久性和/或非易失性存储器(例如,ROM、 EPROM、闪存,等等)以及存储在持久性和/或非易失性存储器中的指令(例 如,微代码、微指令、微架构指令、比ISA级别指令更靠近处理器的电路/ 微架构的级别的指令)的组合。

预留(reserved)存储器118(其是存储器115的一部分)的实施例被 预留以供管芯上的处理器逻辑103使用,但不供执行软件102使用。在某 些实施例中,管芯上的处理器逻辑可以被允许访问并使用预留存储器,但 是,执行软件可能不被允许访问或使用预留存储器。管芯上的处理器逻辑 是全部的管芯上的处理器逻辑的特定子集,诸如,例如,特定的管芯上的 安全性相关的逻辑,该逻辑单独地被计划为使用操作模式保护的存储器。 存储器115还包括被基于访问的类型而保护的访问类型保护的存储器119。 如图所示,在某些实施例中,访问类型保护的存储器是预留存储器的一部 分。在这样的实施例中,可以基于操作模式(例如,管芯上的处理器逻辑 是否是访问的源)以及基于访问的类型二者来保护访问类型保护的存储器。 在其他实施例中,访问类型保护的存储器,或其一部分,不必是操作模式 保护的存储器。如图所示,在某些实施例中,访问类型保护的存储器可包 括不同类型的访问类型保护的存储器,诸如,例如,读取保护的存储器120、 写入保护的存储器121,以及执行保护的存储器122。还可构想其他类型的 访问类型保护的存储器(例如,写入和执行、读取和写入保护的,两种或 更多种类型的访问的其他组合,等等)。

在某些实施例中,处理器可包括一个或多个预留存储器规范寄存器 110,它们能够用于指定预留存储器118的一个或多个属性。合适的属性的 示例包括,但不仅限于,预留存储器的位置、预留存储器的大小、预留存 储器有效还是无效(例如,启动或关闭),预留存储器规范寄存器是否被 锁定,等等。在某些情况下,预留存储器规范寄存器可以指定预留存储器 的范围,并可以被称为范围寄存器。

在某些实施例中,一个或多个预留存储器规范寄存器110可以可任选 地包括对应于访问类型保护的存储器119的允许的访问类型信息111。允许 的访问类型信息可以指示对于访问类型保护存储器的一种或多种允许的类 型的访问。如此处所使用的,指示允许的类型的访问包括显式地指定允许 的类型的访问,隐式地指示允许的类型的访问,通过显式地指定非允许的 类型的访问间接地指定允许的类型的访问,以及其组合。在某些实施例中, 对于不同的访问类型保护的存储器(例如,对于读取保护的存储器120、写 入保护的存储器121,以及执行保护的存储器122中的每一个)可以有允许 的访问类型指示信息111和/或不同的预留存储器规范寄存器110的不同的 集合。

如图所示,预留存储器规范寄存器可以可任选地被包括在处理器的一 组配置寄存器108中。可另选地,可以在其他位置(例如,在管芯上的处 理器逻辑中、存储器管理单元(未示出),或在别处)指定如前所述的属 性。作为示例,预留存储器规范寄存器可以由基本输入/输出系统(BIOS)、 固件配置,或以别的方式配置。可另选地,并非显式地指定或配置,如前 所述的属性中的一个或多个可以是隐式的(例如,预留存储器的位置可以 是预定义的或以别的方式为隐式的,存储器部分的允许的访问类型可以是 预定义的或以别的方式隐式的,等等)。

在操作过程中,处理器可以监测对预留存储器118的意图的访问,并 判定是否将允许该意图的访问。处理器包括预留存储器保护逻辑104的实 施例。预留存储器保护逻辑通常是处理器的管芯上的逻辑,例如,硬件、 固件,或其组合。在某些实施例中,预留存储器保护逻辑可以驻留在存储 器管理子系统中(例如,在页未命中(page miss)处理程序中,在加载/存 储单元中,等等)。来自管芯上的处理器逻辑103的访问以及来自执行软 件102的访问可以各自都具有对应的访问地址。例如,这样的访问地址可 以对应于意图进行访问的指令(例如,宏指令和/或微指令)。作为示例, 加载微指令可以指定预留存储器中的物理地址。预留存储器保护逻辑104 可以知道预留存储器118的位置以及大小。例如,预留存储器保护逻辑可 以从预留存储器规范寄存器110接收预留存储器的位置以及大小。预留存 储器保护逻辑可以判定意图的访问的访问地址是否在预留存储器内。如果 访问地址在预留存储器和/或访问类型保护的存储器内,那么,可以使用操 作模式检查逻辑105和/或访问类型检查逻辑106来判定意图的访问是否应 该被允许或阻止。

预留存储器保护逻辑包括操作模式检查逻辑105。操作模式检查逻辑 可以能够用于基于意图的访问的操作模式,允许或阻止对预留存储器的访 问。在某些实施例中,操作模式可以指示意图的访问是否来自于管芯上的 处理器逻辑103。例如,如果管芯上的处理器逻辑正在意图进行访问,则操 作模式109(例如,单一比特)可以具有第一值(例如,被设置为二进制1), 或者,如果管芯上的处理器逻辑不正在意图进行访问(例如,执行软件102 正在意图进行访问),则可以具有第二、不同的值(例如,被清除为二进 制零)。在某些实施例中,处理器(例如,管芯上的处理器逻辑或处理器 的其他固件或硬件)可以基于管芯上的处理器逻辑是否正在意图访问预留 存储器,来指定操作模式。如图所示,操作模式可以被包括在配置寄存器 108组中。操作模式基本上指示旨在访问操作模式保护的存储器的特定管芯 上的处理器逻辑是否事实上是正在访问操作模式保护的存储器的实体。可 另选地,操作模式可以被包括在管芯上的处理器逻辑中、存储器管理单元 (未示出)中,或在别处。作为另一选项,操作模式还可以与处理器执行 流水线中的微指令相关联(例如,作为微指令的属性中的一个)。操作模 式检查逻辑可以判定允许由管芯上的处理器逻辑访问,或阻止由除管芯上 的处理器逻辑以外的的实体(例如,由执行软件102)访问。在示图中,使 用“X”来指示操作模式检查逻辑可以阻止由执行软件对预留存储器的访问。

预留存储器保护逻辑还包括访问类型检查逻辑106的实施例。访问类 型检查逻辑可以能够用于基于意图的访问的类型,允许或阻止对访问类型 保护的存储器119的访问。来自管芯上的处理器逻辑的访问以及来自执行 软件的访问可以各自都具有对应的访问类型。例如,这些访问类型可以对 应于正在意图访问的指令(例如,宏指令和/或微指令)。例如,加载(load) 指令可以意图读取类型的访问,存储(store)指令可以意图写入类型的访 问,等等。访问类型检查逻辑可以接收这些意图的类型的访问,以及对应 于访问类型保护的存储器的允许的访问类型111。访问类型检查逻辑可以能 够用于检查意图的类型的访问是否匹配允许的访问类型。访问类型检查逻 辑可以当意图的访问类型匹配允许的访问类型时判定允许访问,或当意图 的访问类型不匹配允许的访问类型时,阻止访问。例如,意图的从写入保 护的存储器121读取可以被允许,但是,意图的向写入保护的存储器121 的写入可能不被允许。

保护逻辑107可以基于操作模式105以及访问类型检查106逻辑的检 查,允许或阻止意图的访问。在某些实施例中,如果操作模式或者访问类 型是非法的,则可以阻止意图的访问。在某些实施例中,在意图的非法访 问的情况下,可以采取一种或多种额外的保护措施。这样的措施的示例包 括,但不仅限于,引发异常(例如,中断、错误、陷阱等等),将非法意 图报告给适当的实体(例如,管芯上的处理器逻辑或操作系统)、停止正 在执行的软件,等等。

有利地,基于意图的访问的类型来限制对存储器的某些部分的意图的 访问的这一能力可以帮助提高总体安全性。一方面,这可以帮助实施最小 特权原则,其中,每一个实体只被允许做它实现其计划的任务需要做的事 情,而不能做别的。访问类型检查逻辑可以基于访问类型,帮助进一步限 制甚至是由管芯上的处理器逻辑本身对访问类型保护的存储器的访问。计 划的或期望的访问类型可以被允许,而非计划的或不期望的访问类型可以 被阻止(甚至对于否则将会满足操作模式检查的管芯上的处理器逻辑亦是 如此)。这表示除操作模式限制之外的额外的限制。作为示例,在没有访 问类型检查和保护逻辑的情况下,管芯上的处理器逻辑可以被允许向写入 保护的存储器121进行写入,但是,在有访问类型检查和保护逻辑的情况 下,管芯上的处理器逻辑可以被阻止向写入保护的存储器121进行写入。 其次,此能力还可以帮助提供纵深防御,其中,即使操作模式检查和保护 机制被破坏(例如,被漏洞(bug)、恶意软件、窜改等等所破坏),访问 类型检查和保护机制也能够提供另一级别的防御。

图2A是带有显式访问类型211的访问类型保护的存储器规范寄存器 210A的实施例的框图。在某些实施例中,BIOS、固件、适当地拥有特权的 软件,等等,可以配置或指定寄存器,以便指定访问类型保护的存储器(例 如,图1中的访问类型保护的存储器119)的属性。

寄存器包括允许指定基址(base address)的基址字段230。寄存器包 括允许指定地址掩码的地址掩码字段231。基址可以指定访问类型保护的存 储器驻留在物理存储器中的什么位置。地址掩码可以指定访问类型保护的 存储器的大小。下面将进一步描述合适的基址和地址掩码的进一步的细节。

寄存器包括可选有效性字段232。有效性字段可以允许指定访问类型 保护的存储器规范寄存器和/或其对应的访问类型保护的存储器是否有效 (例如,是否正在被使用)。例如,只有当有效比特被设置或以别的方式 启用时,才可以执行访问类型检查和实施。如此,有效比特可以表示对于 访问类型检查和实施机制的开/关切换。

寄存器包括用于允许寄存器被锁定的可选锁定字段233。作为示例, 在BIOS、固件,或另一适当的实体已经配置了寄存器之后,该实体可以启 用锁定(例如,通过在锁定字段存储预定值)。例如,单一比特锁定字段 可以被设置为二进制1,以锁定寄存器,或被清除为二进制零以解锁寄存器。 启用锁定可以帮助防止对寄存器的未授权修改。作为示例,当系统被关闭 和/或发生硬件重置时,锁定可以被释放(例如,寄存器被解锁)。锁定可 以保持解锁,直到BIPS或其他实体配置寄存器并设置锁定。

寄存器包括访问类型字段211,用于允许显示指定由基址和地址掩码 所指定的存储器位置的一种或多种访问类型。指定的访问类型可以是被允 许的访问类型或者被阻止的访问类型。例如,访问类型字段可以指定读取、 写入、执行中的任何一个,或其某种组合,是否被允许或被阻止。作为示 例,写入保护的存储器可以被指定为阻止写入或者准许读取和执行。

图2B是带有隐式访问类型的访问类型保护的存储器规范寄存器210B 的实施例的框图。寄存器包括基址字段230、地址掩码字段231、可选有效 性字段232,以及可选锁定字段233。寄存器,以及这些字段中的每一个, 都可以类似于上文结合图2A所描述的那些或与它们相同。为避免模糊描 述,将不重复这些类似处,讨论将强调寄存器210B的不同的或额外的方面。

寄存器省略显式地指定的访问类型字段。相反,一种或多种访问类型 对于寄存器210B是预定义的或以别的方式隐式的。例如,预留存储器保护 逻辑104可以理解,对应于寄存器210B的存储器部分(例如,通过基址字 段230和地址掩码字段231指示的)具有预定义的或以别的方式隐式的被 允许的或被阻止的访问类型。在某些情况下,不同的这样的寄存器可以各 自具有对于不同的对应的存储器范围的不同的对应的隐式访问类型。

应该理解,这些只是合适的寄存器的示例实施例。替换实施例可包括 所示出的字段的子集,和/或可包括额外的字段。例如,某些寄存器可以具 有有效性字段而没有锁定字段,可以具有锁定字段而没有有效性字段,或 可以省略这两个字段但是包括额外的字段。此外,寄存器内的字段的所示 出的布局不是必需的,相反可以以许多不同的方式重新排列字段。字段中 的每一个都可以是寄存器中的足以指定用于特定实现的计划的信息的一个 或多个比特(bit)。所述比特可以是在物理上连续的比特序列,或可以分 散在整个寄存器中,但是逻辑地编组到字段中,或其组合。

图3是检查并限制对操作模式及访问类型保护的(operation mode and  access type protected)存储器的访问的方法340的详细示例实施例的方框流 程图。在某些实施例中,图3的操作和/或方法可以由图1的处理器执行和/ 或在其内执行。替换地,图3的操作和/或方法可由类似的或完全不同的设 备执行,和/或在类似的或完全不同的设备内执行。此外,图1的处理器可 以执行与图3的那些相同、类似,或不同的操作和/或方法。

该方法包括在框341,判定意图的访问是否在操作模式及访问类型保 护的存储器内。例如,这可包括将意图的访问的物理地址与对应的访问类 型保护的存储器规范寄存器的基址字段和地址掩码字段进行比较。如果意 图的访问的物理地址不在操作模式及访问类型保护的存储器内(即,在框 341,判定是“否”),那么,在框342,可以允许对存储器的物理地址的意 图的访问。这意味着,意图的访问在操作模式及访问类型保护的存储器之 外。此后,在下一对存储器的意图的访问时,方法可以重回框341。

可另选地,如果意图的访问的物理地址在操作模式及访问类型保护的 存储器内(即,在框341,判定是“是”),那么,方法可以前进到框343。 在框343,可以作出是否对于访问类型检查和实施启用了操作模式及访问类 型保护的存储器的可选判定。这是可选的,不是必需的。这可包括检查对 应的访问类型保护的存储器规范寄存器中的有效性比特或字段。如上文所 提及的,有效性可以指示当前启用还是禁用对访问类型保护的存储器的保 护。如果它无效(即,在框341,判定是“否”),那么,方法可以前进到框 347,在那里,可以允许对操作模式及访问类型保护的存储器的意图的访问 (例如,因为保护机制当前被禁用或以别的方式无效)。

可另选地,如果操作模式及访问类型保护的存储器有效(即,在框343, 判定是“是”),那么,方法可以前进到框344。在框344,可以作出意图的 访问的操作模式是否被允许的判定。这可包括检查当前操作模式(例如, 处理器的配置寄存器中的比特),以及判定当前操作模式是否指示管芯上 的处理器逻辑正在意图访问。如果管芯上的处理器逻辑正在意图访问,那 么,可以允许意图的访问的操作模式。否则,如果管芯上的处理器逻辑不 正在意图访问(例如,而是在处理器上执行的软件正在意图访问),则可 以不允许意图的访问的操作模式。

如果意图的访问的操作模式被允许(即,在框344,判定是“是”),则 方法可以前进到框346。在框346,可以作出意图的访问的访问类型是否被 允许的判定。这可包括将意图的访问的访问类型与对于操作模式及访问类 型保护的存储器的允许的访问类型进行比较。如上文所提及的,在某些情 况下,可以由对应的访问类型保护的存储器规范寄存器显式地指定或隐式 地指示允许的访问类型。如果意图的访问类型匹配允许的访问类型之一, 那么,可以允许意图的访问类型。否则,如果意图的访问类型不同于所有 的允许的访问类型,那么,可以不允许意图的访问类型。

如果意图的访问的操作模式不被允许(即,在框344,判定是“否”), 或者如果意图的访问的访问类型不被允许(即,在框346,判定是“否”), 则方法可以前进到框345。在框345,可以拒绝对操作模式及访问类型保护 的存储器的意图的访问。在某些实施例中,还可以采取其他措施(例如, 引发异常、向有特权的实体报告非法访问,等等)。此后,在下一对存储 器的意图的访问时,方法可以重回框341。

可另选地,如果意图的访问被允许(即,在框346,判定是“是”),那 么,方法可以前进到框347。在框347,可以允许对操作模式及访问类型保 护的存储器的意图的访问。对操作模式及访问类型两者的检查表明,意图 的访问是可允许的。此后,在下一对存储器的意图的访问时,方法可以重 回框341。

这只是合适的方法的一个说明性示例。也可以构想此方法的许多变体。 例如,以相对基本的形式描述了方法,但是,可以可任选地向方法中添加 操作和/或从方法中删除操作。作为一个示例,其他实施例可以省略在框343 处示出的有效性检查。作为另一个示例,其他实施例涉及访问类型保护而 没有操作模式保护。此外,尽管流程图示出了操作的一个可能的顺序,但 是,替换实施例可以以不同的顺序执行操作、组合某些操作,重叠某些操 作等等。

图4是预留存储器保护逻辑404的实施例的框图。在某些实施例中, 图4的预留存储器保护逻辑可以被包括在图1的处理器中。可另选地,图4 的预留存储器保护逻辑可以被包括在类似的或者完全不同的设备内。此外, 图1的处理器可包括与图4的那个相同,类似,或者完全不同的预留存储 器保护逻辑。此外,在某些实施例中,图4的预留存储器保护逻辑可以执 行图3的操作和/或方法。可另选地,图4的预留存储器保护逻辑可以执行 类似的或者完全不同的操作和/或方法。此外,图3的操作和/或方法可以由 与图4的那个相同,类似,或者完全不同的逻辑来执行。

向第一AND逻辑452的输入端(a)提供基址430。向第一AND逻辑的 输入端(b)提供地址掩码431。还向第二AND逻辑453的输入端(d)提供 该地址掩码。作为示例,基址和地址掩码可以来自访问类型保护的存储器 规范寄存器。向第二AND逻辑的输入端(e)提供意图的访问的物理地址。 向比较逻辑454的输入端(c)提供第一AND逻辑的输出。向比较逻辑的输入 端(f)提供第二AND逻辑的输出。比较逻辑能够用于判定意图的访问的物理 地址是否在由基址和地址掩码所定义的操作模式及访问类型保护的存储器 内。比较逻辑向提供第三逻辑456的输入端(g)提供“地址匹配/不匹配指 示”。可选有效性432可以向第三逻辑的输入端(k)提供“有效/无效指示”。 作为示例,有效性可以来自访问类型保护的存储器规范寄存器。

在某些实施例中,如果(物理地址450AND地址掩码431)等于(基 址430AND地址掩码431),则意图的访问的物理地址可以被视为在操作 模式及访问类型保护的存储器的范围内。基址寄存器可以确定存储器区域 驻留在存储器中的哪里。一方面,可以使用页的分辨率(例如,4K字节或 4096字节)。如此,只有地址比特12以及更高有效位可以用于比较,且这 些比特需要被包括在预留存储器规范寄存器中。地址掩码可以确定预留存 储器区域的大小。例如,如果地址掩码都是1,那么,存储器区域可以只是 一个页,因为基址和地址掩码需要相等,以创建匹配。如果地址掩码是“1... 1111000”,那么,该区域的大小可以是八个页,因为地址的较低位的3比 特可以被“忽略”或“掩盖”,而比特15以及更高有效位可以用于比较,并确 定结果。这样的基址和地址掩码一般高效率地实现,因为可以利用AND逻 辑和比较器来评估它们。然而,还可以可任选地使用表示存储器区域的其 他方式。

可以向操作模式检查逻辑405提供意图的访问的模式409。操作模式 检查逻辑可以向OR逻辑455的输入端(h)提供合法/非法访问指示。可以 向访问类型检查逻辑406提供意图的访问的访问类型451。还可以向访问类 型检查逻辑提供对应于操作模式及访问类型保护的存储器的一个或多个允 许的访问类型411。作为示例,一个或多个允许的访问类型可以来自访问类 型保护的存储器规范寄存器。访问类型检查逻辑可以向OR逻辑455的输 入端(i)提供合法/非法访问指示。OR逻辑可以向第三逻辑的输入端(j) 提供“合法/非法访问指示”。如果操作模式或者访问类型被确定为非法,那 么,OR逻辑可以提供非法访问指示。可另选地,如果操作模式及访问类型 两者都被确定为合法,那么,OR逻辑可以提供合法访问指示。

第三逻辑456可以基于在其输入端(g)、(k),以及(j)提供的指 示,判定是允许还是不允许意图的访问。如果在输入端(g)提供地址非匹 配指示,那么,第三逻辑可以允许意图的访问。这一般意味着,意图的访 问将不是针对操作模式及访问类型保护的存储器区域。如果在输入端(k) 提供无效指示,那么,第三逻辑可以允许意图的访问。这可能意味着,访 问保护机制被禁用、关闭,或以别的方式无效。可另选地,在输入端(g) 提供地址匹配指示,在输入端(k)提供有效指示,然后,第三逻辑可以使 用在输入端(j)提供的合法/非法访问指示,来判定是否允许意图的访问。 如果提供合法指示,则可以允许意图的访问,而如果提供非法指示,那么, 意图的访问可能不被允许。保护逻辑407可以基于由第三逻辑作出的判定, 允许或不允许意图的访问。

图5是一组访问类型保护的存储器519的实施例的框图。访问类型保 护的存储器位于物理地址空间557中。访问类型保护的存储器包括读取、 写入,以及执行(RWX)准许的存储器519A、执行和读取(XR)准许的 但是写入阻止的存储器519B(向此区域写入的任何意图都将被中止),以 及读取和写入准许的但是执行阻止的存储器519C(从此区域执行的任何意 图都将被中止)。在某些实施例中,所有这些都可以为管芯上的处理器逻 辑预留。RWX存储器519A具有对应的RWX范围寄存器510A。XR存储 器具有对应的XR范围寄存器510B。在某些实施例中,读取和写入准许的 但是执行阻止的存储器519C也可以具有相对应的范围寄存器(未示出)。 然而,如图所示,在某些实施例中,读取和写入准许的但是执行阻止的存 储器519C可不具有相对应的范围寄存器(未示出)。相反,在某些实施例 中,可以基于对该组中的一个或多个其他访问类型保护的存储器的访问(例 如,访问的逻辑组合)的评估,来确定对此存储器519C的访问。即,在某 些实施例中,可以基于对一组中的其他访问类型保护的存储器的访问的逻 辑组合,评估对该组中的一个或某些访问类型保护的存储器的访问。例如, 可以基于对RWX存储器519A的访问命中ANDNOT(与非)对XR存储器 519B的访问命中,确定对读取和写入准许的但是执行阻止的存储器519C 的访问。有利地,这可以允许一个或多个规范寄存器被消除,但是,不是 必需的。

其他实施例涉及能够用于保护访问类型保护的存储器的转换后备缓冲 器(TLB)。TLB通常用于使用虚拟存储器的处理器及其他设备中。TLB 可以表示高速缓存,存储器管理硬件可以用该高速缓存来改善虚拟地址转 换。TLB可以被用来映射虚拟和物理地址空间。虚拟存储器可以表示从软 件进程的观点来看的存储器。通常,软件进程使用虚拟地址来搜索TLB以 找寻对应的物理地址。当虚拟地址的物理地址被高速缓存在TLB中时,发 生TLB命中。然后,可以使用检索到的物理地址来访问物理存储器。当TLB 不高速缓存虚拟地址的物理地址时时,可能发生TLB未命中。通常,在这 样的TLB未命中的情况下,可以执行页走查(page walk),以便在常常存 储在物理存储器中的页表(page table)中查询虚拟到物理转换。在通过执 行页走查来确定物理地址之后,虚拟地址到物理地址的映射可以被高速缓 存或保存在TLB中,以备将来使用。如此,TLB可以有效地高速缓存页表 的子集。

图6是具有TLB 660的实施例的处理器601的框图,TLB 660具有访 问类型检查和实施逻辑662。处理器还具有管芯上的处理器逻辑603和(在 使用过程中)执行的软件602。执行的软件可以利用虚拟地址来访问TLB 以获取物理地址,如前所述。相比之下,在某些实施例中,管芯上的处理 器逻辑可以使用物理地址来访问TLB。在通过适当的操作模式及访问类型 检查和保护逻辑来访问访问类型保护的存储器之后,转换可以被高速缓存 在TLB中,以备将来使用,并加速存储器访问。TLB可以帮助避免需要再 次经过整个的操作模式及访问类型检查和保护逻辑。然而,如果不适当地 处理TLB以实施访问类型限制,则将发生问题。作为示例,最初,加载操 作可以访问读取允许的但是写入阻止的存储器。在加载操作之后,转换可 以存储在TLB中。在某些实施例中,TLB具有访问类型检查和实施逻辑, 以阻止随后的非允许的类型的访问(诸如存储操作)能够使用TLB向读取 允许的但是写入阻止的存储器的写入。然而,在某些实施例中,访问类型 检查和实施逻辑662能够用于实施对于对TLB的物理访问的访问类型限 制。物理访问不由软件或操作系统执行,而是由管芯上的处理器逻辑执行。 访问限制的类型可以与物理地址的访问类型保护的存储器一致。例如,对 应于写入保护的存储器121的物理地址可以不准许写入,等等。

通常,页未命中处理程序不对物理转换执行页走查,因为不涉及到分 页(paging),并且物理地址等于线性地址。结果,根据常规方法(没有对 于物理访问的访问类型保护),被高速缓存在TLB中的物理转换可能将所 有页属性比特都设置为提供最大允许的访问级别的“安全”值(即,不强加 任何访问类型限制)。例如,写入比特或“w-bit”可以自动地被设置为二进 制1(即,“1”),非执行的或“NX-bit”可以被清除为二进制零(即,“0”)。 结果,TLB命中通常将被视为合法,将不会导致访问冲突。

可以构想访问类型检查和保护逻辑662的各种不同的实施例。在某些 实施例中,TLB的条目可以指示对于它们的对应的物理转换的访问类型限 制。

图7示出了具有条目762和逻辑766的TLB 760,条目762具有常规 分页属性比特764,逻辑766用于重新使用(reuse)常规分页属性比特, 但是带有对于物理访问的不同的解释。常规的现有的分页属性比特可以具 有对于采用虚拟地址的访问(例如,从执行的软件)的常规解释。这可以 是根据页表。然而,它们可以具有对于采用物理地址的访问(例如,从管 芯上的处理器逻辑)的不同的解释。例如,在某些实施例中,常规分页属 性比特并非被设置为提供最大允许的访问级别的“安全”值(即,不强加任 何访问类型限制),而是可以被设置为指示适当的访问类型限制的值。例 如,如果转换位于非可写入的区域,那么,TLB条目的写入比特或“w-bit” 可以被清除为二进制零(即,“0”)。作为另一个示例,如果转换位于非执 行的的区域,那么,非可执行位的或“NX-bit”可以被设置为二进制1(即, “1”)。注意,这些值不同于在上面的一些段落中描述的常规“安全”方法。 如果转换位于非可读取的只执行区域,那么它可以不被高速缓存在TLB中。

在TLB的填充过程中,如果访问是虚拟的,那么,可以根据页表,设 置常规TLB页属性比特。可另选地,在填充操作过程中,如果访问是物理 的,那么,可以根据指定的访问类型限制(例如,根据访问类型保护的存 储器规范寄存器210)来设置常规TLB页属性比特。在采用违反常规TLB 页属性比特的访问类型的TLB命中时,如果访问是虚拟的,那么,可以报 告页错误。可另选地,在采用违反常规TLB页属性比特的访问类型的TLB 命中时,如果访问是物理的,那么,可以采取类似于在别处描述的其他访 问类型违反的措施(例如,可以阻止访问,和/或可以通知操作系统、固件, 或另一适当的有特权的实体)。

图8示出了具有条目862和逻辑870的TLB 860,条目862具有常规 分页属性比特864和额外的比特868以指定存储器访问类型,逻辑870用 于使用用于物理访问的额外的比特868。常规分页属性比特可以具有对于采 用虚拟地址的访问(例如,从执行的软件)的常规解释。这可以是根据页 表。然而,额外的比特868可以用于物理访问(例如,从管芯上的处理器 逻辑)。作为示例,在一个实施例中,可以添加物理写入或“物理w比特”, 以指定写入类型访问是否被允许,并且可以添加物理执行或“物理X比特”, 以指定执行类型访问是否被允许。这些可以被添加到每一个TLB条目。这 可能倾向于增大TLB的大小和成本,但是,可以适合于某些实现。

在再一个实施例中,TLB可以不被用于高速缓存没有完全类型的访问 特权(例如,不准许读取、写入,以及执行)的任何物理转换。这可能倾 向于降低性能,但是,可以适合于某些实现。

上文描述了各实施例,虽然构想其他实施例。在一个替换实施例中, 访问类型保护的存储器部分可以是访问类型保护的,而不管它是否是操作 模式保护的。在另一替换实施例中,不同的管芯上的处理器逻辑可以各自 具有一个或多个访问类型保护的存储器部分的不同的组。其他实施例将对 所属领域的技术人员是显而易见的。

为避免模糊描述,此处示出并描述简化的处理器。在其他实施例中, 处理器可以可任选地包括其他已知的组件,诸如,例如,指令取出单元、 指令调度单元、分支预测单元、指令和数据高速缓存、指令和数据转换后 备缓冲器、预取缓冲器、微指令队列、微指令排序器、总线接口单元、第 二或更高级别的高速缓存、隐退单元、寄存器重命名单元、常规处理器中 所包括的其他组件。各实施例可以具有多个核、逻辑处理器,或执行引擎。 存在处理器中的组件的很多不同的组合和配置,各实施例不仅限于任何特 定组合或配置。处理器可以表示集成电路或一个或多个半导体管芯或芯片 (例如,单一管芯或芯片,或包括两个或更多管芯或芯片的封装)的集合。 在某些实施例中,处理器可以表示片上系统(SOC)。

      示例性核架构、处理器和计算机架构      

可以用不同方式、出于不同目的、且在不同的处理器中实现处理器核。 例如,这样的核的实现可以包括:1)旨在用于通用计算的通用有序核;2) 旨在用于通用计算的高性能通用无序核;3)旨在主要用于图形和/或科学(吞 吐量)计算的专用核。不同处理器的实现可包括:1)包括旨在用于通用计 算的一个或多个通用有序核和/或旨在用于通用计算的一个或多个通用无序 核的CPU;以及2)包括旨在主要用于图形和/或科学(吞吐量)的一个或 多个专用核的协处理器。这样的不同处理器导致不同的计算机系统架构, 其可包括:1)在与CPU分开的芯片上的协处理器;2)在与CPU相同的 封装中但分开的管芯上的协处理器;3)与CPU在相同管芯上的协处理器 (在该情况下,这样的协处理器有时被称为诸如集成图形和/或科学(吞吐 量)逻辑等专用逻辑,或被称为专用核);以及4)可以将所描述的CPU (有时被称为应用核或应用处理器)、以上描述的协处理器和附加功能包 括在同一管芯上的芯片上系统。接着描述示例性核架构,随后描述示例性 处理器和计算机架构。

示例性核架构

有序和无序核框图

图9A是示出根据本发明的各实施例的示例性有序流水线和示例性的 寄存器重命名的无序发布/执行流水线的框图。图9B是示出根据本发明的 各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄 存器重命名的无序发布/执行架构核的框图。图9A-B中的实线框示出有序 流水线和有序核,而任选增加的虚线框示出寄存器重命名的无序发布/执行 流水线和核。给定有序方面是无序方面的子集的情况下,将描述无序方面。

在图9A中,处理器流水线900包括取出级902、长度解码级904、解 码级906、分配级908、重命名级910、调度(也称为分派或发布)级912、 寄存器读取/存储器读取级914、执行级916、写回/存储器写入级918、异 常处理级922以及提交级924。

图9B示出了处理器核990,包括耦合到执行引擎单元950的前端单元 930,执行引擎单元950和前端单元930两者都耦合到存储器单元970。核 990可以是精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超 长指令字(VLIW)核或混合或替代核类型。作为又一选项,核990可以是 专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图形 处理器单元(GPGPU)核、或图形核等等。

前端单元930包括耦合到指令高速缓存单元934的分支预测单元932, 指令高速缓存单元934耦合到指令转换后备缓冲器(TLB)936,指令转换 后备缓冲器936耦合到指令取出单元938,指令取出单元938耦合到解码单 元940。解码单元940(或解码器)可解码指令,并生成从原始指令解码出 的、或以其他方式反映原始指令的、或从原始指令导出的一个或多个微操 作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码 单元940可使用各种不同的机制来实现。合适的机制的示例包括但不限于 查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM) 等。在一个实施例中,核990包括(例如,在解码单元940中或以其它方 式在前端单元930内的)微代码ROM或存储某些宏指令的微代码的其他介 质。解码单元940耦合到执行引擎单元950中的重命名/分配器单元952。

执行引擎单元950包括耦合到隐退单元952的重命名/分配器单元954 和一组一个或多个调度器单元956。调度器单元956表示任意数量的不同的 调度器,包括预留站、中心指令窗口等等。调度器单元956耦合到物理寄 存器组单元958。每个物理寄存器组单元958表示一个或多个物理寄存器 组,其中不同的物理寄存器组存储一种或多种不同的数据类型,诸如标量 整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点、状态(例 如,作为要执行的下一指令的地址的指令指针)等。在一个实施例中,物 理寄存器组单元958包括向量寄存器单元、写掩码寄存器单元和标量寄存 器单元。这些寄存器单元可以提供架构向量寄存器、向量掩码寄存器、和 通用寄存器。物理寄存器组单元958与引退单元954重叠以示出可以用来 实现寄存器重命名和无序执行的各种方式(例如,使用重新排序缓冲器和 引退寄存器组;使用将来的文件、历史缓冲器和引退寄存器组;使用寄存 器映射和寄存器池等等)。隐退单元954和物理寄存器组单元958耦合到 执行群集960。执行群集960包括一组一个或多个执行单元962和一组一个 或多个存储器访问单元964。执行单元962可以对各种类型的数据(例如, 标量浮点、紧缩整数、紧缩浮点、向量整型、向量浮点)执行各种操作(例 如,移位、加法、减法、乘法)。尽管一些实施例可以包括专用于特定功 能或功能组的若干个执行单元,但是,其他实施例可以只包括一个执行单 元或都执行所有功能的多个执行单元。调度器单元956、物理寄存器组单元 958,以及执行群集960被示为可能是多个,因为某些实施例对于某些类型 的数据/操作创建单独的流水线(例如,标量整数流水线、标量浮点/紧缩整 数/紧缩浮点/向量整数/向量浮点流水线和/或存储器访问流水线,每一个流 水线都具有它们自己的调度器单元、物理寄存器组单元和/或执行群集—— 并且在单独的存储器访问流水线的情况下,实现了其中只有此流水线的执 行群集具有存储器访问单元964的某些实施例)。还应该理解,使用单独 的流水线,这些流水线中的一个或多个可以是无序发出/执行,其余的是有 序的。

存储器访问单元964的集合耦合到存储器单元970,该存储器单元包 括耦合到数据高速缓存单元974的数据TLB单元972,其中数据高速缓存 单元耦合到二级(L2)高速缓存单元976。在一个示例性实施例中,存储 器访问单元964可以包括加载单元、存储地址单元以及存储数据单元,其 中每一个都耦合到存储器单元970中的数据TLB单元972。指令高速缓存 单元934进一步耦合到存储器单元970中的2级(L2)高速缓存单元976。 L2高速缓存单元976耦合到一个或多个其他级的高速缓存,并最终耦合到 主存储器。

作为示例,示例性寄存器重命名的、无序发布/执行核架构可以如下实 现流水线900:1)指令取出938执行取出和长度解码级902和904;2)解码 单元940执行解码级906;3)重命名/分配器单元952执行分配级908和重 命名级910;4)调度器单元956执行调度级912;5)物理寄存器组单元958 和存储器单元970执行寄存器读取/存储器读取级914;执行群集960执行 执行级916;6)存储器单元970和物理寄存器组单元958执行写回/存储器 写入级918;7)各单元可牵涉到异常处理级922;以及8)引退单元954和物 理寄存器组单元958执行提交级924。

核990可支持一个或多个指令集(例如,x86指令集(具有与较新版 本一起添加的一些扩展);加利福尼亚州桑尼维尔市的MIPS技术公司的 MIPS指令集;加利福尼州桑尼维尔市的ARM控股的ARM指令集(具有 诸如NEON等可选附加扩展)),其中包括本文中描述的各指令。在一个 实施例中,核990包括支持打包数据指令集合扩展(例如,AVX1、AVX2) 的逻辑,由此允许被许多多媒体应用使用的操作将使用打包数据来执行。

应该理解,核可以支持多线程(执行操作或线程的两个或更多并行组), 并可以以各种方式达到这一目的,包括时间切片多线程,同时的多线程(其 中,单个物理核为物理核同时正在多线程处理的每一个线程提供一种逻辑 核),或其组合(例如,时间切片获取和解码和此后的同时的多线程处理, 诸如在 Hyperthreading技术中)。

尽管寄存器重命名是在无序执行的上下文中描述的,但是,应该理解, 寄存器重命名可以用于有序架构中。尽管所示出的处理器的实施例还包括 分开的指令和数据高速缓存单元934/974以及共享L2高速缓存单元976, 但替代实施例可以具有用于指令和数据两者的单个内部高速缓存,诸如例 如一级(L1)内部高速缓存或多个级别的内部高速缓存。在某些实施例中, 系统可以包括内部缓存和核和/或处理器外部的外部缓存的组合。可另选地, 全部缓存都可以核和/或处理器外部的。

具体的示例性有序核架构

图10A-B示出了更为具体的示例性有序核架构的框图,该核将是芯片 中的多个逻辑块中的一个(包括相同类型和/或不同类型的其他核)。根据 应用,这些逻辑块通过高带宽的互连网络(例如,环形网络)与一些固定 的功能逻辑、存储器I/O接口和其它必要的I/O逻辑通信。

图10A是根据本发明的各实施例的单个处理器核的框图,以及其与管 芯上的互连网络1002的连接以及其第2级(L2)高速缓存1004的本地子 集。在一个实施例中,指令解码器1000支持具有紧缩数据指令集扩展的x86 指令集。L1高速缓存1006允许对进入标量和向量单元中的高速缓存存储 器的低等待时间访问。尽管在一个实施例中(为了简化设计),标量单元1008 和向量单元1010使用分开的寄存器集合(分别为标量寄存器1012和向量寄 存器1014),并且在这些寄存器之间转移的数据被写入到存储器并随后从一 级(L1)高速缓存1006读回,但是本发明的替代实施例可以使用不同的方法 (例如使用单个寄存器集合或包括允许数据在这两个寄存器组之间传输而 无需被写入和读回的通信路径)。

L2高速缓存的本地子集1004是全局L2高速缓存的一部分,该全局 L2高速缓存被划分成多个分开的本地子集,即每个处理器核一个本地子集。 每个处理器核具有到其自己的L2高速缓存1004的本地子集的直接访问路 径。被处理器核读出的数据被存储在其L2高速缓存子集1004中,并且可 以与其他处理器核访问其自己的本地L2高速缓存子集并行地被快速访问。 被处理器核写入的数据被存储在其自己的L2高速缓存子集1004中,并在 必要的情况下从其它子集清除。环形网络确保共享数据的一致性。环形网 络是双向的,以允许诸如处理器核、L2高速缓存和其它逻辑块之类的代理 在芯片内彼此通信。每个环形数据路径为每个方向1012位宽。

图10B是根据本发明的实施例的图10A中的处理器核的一部分的展开 图。图10B包括L1高速缓存1004的L1数据高速缓存1006A部分,以及 关于向量单元1010和向量寄存器1014的更多细节。具体地说,向量单元 1010是16宽向量处理单元(VPU)(见16宽ALU 1028),该单元执行整型、 单精度浮点以及双精度浮点指令中的一个或多个。该VPU通过混合单元 1020支持对寄存器输入的混合、通过数值转换单元1022A-B支持数值转换、 并通过复制单元1024支持对存储器输入的复制。写掩码寄存器1026允许 断定所产生的向量写。

具有集成存储器控制器和图形器件的处理器

图11是根据本发明的各实施例的可能具有一个以上核、可能具有集成 存储器控制器、以及可能具有集成图形器件的处理器1100的框图。图11 中的实线框示出具有单个核1102A、系统代理1110、一个或多个总线控制 器单元1116的集合的处理器1100,而虚线框的可选附加示出具有多个核 1102A-N、系统代理单元1110中的一个或多个集成存储器控制器单元1114 的集合以及专用逻辑1108的处理器1100。

因此,处理器1100的不同实现可包括:1)CPU,其中专用逻辑1108 是集成图形和/或科学(吞吐量)逻辑(其可包括一个或多个核),并且核 1102A-N是一个或多个通用核(例如,通用有序核、通用无序核、这两者 的组合);2)协处理器,其中核1102A-N是旨在主要用于图形和/或科学(吞 吐量)的多个专用核;以及3)协处理器,其中核1102A-N是多个通用有序 核。因此,处理器1100可以是通用处理器、协处理器或专用处理器,诸如 例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理 单元)、高吞吐量的集成众核(MIC)协处理器(包括30个或更多核)、 或嵌入式处理器等。该处理器可以被实现在一个或多个芯片上。处理器1100 可以是一个或多个衬底的一部分,和/或可以使用诸如例如BiCMOS、CMOS 或NMOS等的多个加工技术中的任何一个技术将处理器200实现在一个或 多个衬底上。

存储器层次结构包括核内的一级或多级高速缓存,一组或一个或多个 共享高速缓存器单元1106,以及耦合到集成的存储器控制器单元1114组的 外部存储器(未示出)。共享高速缓存器单元1106组可以包括一个或多个 中级高速缓存,诸如2级(L2)、3级(L3)、4级(L4),或其他级别 的高速缓存,末级高速缓存(LLC),和/或其组合。尽管在一个实施例中, 基于环的互连单元1112将集成图形逻辑1108、共享高速缓存单元1106的 集合以及系统代理单元1110/集成存储器控制器单元1114互连,但替代实 施例可使用任何数量的公知技术来将这些单元互连。在一个实施例中,维 持一个或多个高速缓存单元1106和核1102-A-N之间的一致性(coherency)。

在某些实施例中,核1102A-N中的一个或多个能够多线程处理。系统 代理1110可包括协调和操作核1102A-N的那些组件。系统代理单元1110 可包括例如功率控制单元(PCU)和显示单元。PCU可以是或包括用于管理核 1102A-N和集成的图形逻辑1108的电能状态所需的逻辑和组件。显示单元 用于驱动一个或多个从外部连接的显示器。

核1102A-N在架构指令集方面可以是同构的或异构的;即,这些核 1102A-N中的两个或更多个核可能能够执行相同的指令集,而其他核可能 能够执行该指令集的仅仅子集或不同的指令集。

示例性计算机架构

图12-15是示例性计算机架构的框图。本领域已知的对膝上型设备、 台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络 集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、 视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持 设备以及各种其他电子设备的其他系统设计和配置也是合适的。一般地, 能够包含本文中所公开的处理器和/或其他执行逻辑的多个系统和电子设备 一般都是合适的。

现在请参看图12,所示是根据本发明的一个实施例的系统1200的框 图。系统1200可以包括一个或多个处理器1210、1215,这些处理器耦合到 控制器中枢1220。在一个实施例中,控制器中枢1220包括图形存储器控制 器中枢(GMCH)1290和输入/输出中枢(IOH)1250(其可以在分开的芯 片上);GMCH 1290包括存储器和图形控制器,存储器1240和协处理器 1245耦合到该存储器和图形控制器;IOH 1250将输入/输出(I/O)设备1260 耦合到GMCH 1290。或者,存储器和图形控制器中的一个或两者可以被集 成在处理器内(如本文中所描述的),存储器1240和协处理器1245直接 耦合到处理器1210以及控制器中枢1220,控制器中枢1220与IOH 1250 处于单个芯片中。

在图12中利用虚线表示额外的处理器1215的可任选的特性。每一处 理器1210、1215可包括本文中描述的处理核中的一个或多个,并且可以是 处理器1100的某一版本。

存储器1240可以是例如动态随机存取存储器(DRAM)、相变存储器 (PCM)或这两者的组合。对于至少一个实施例,控制器中枢1220经由诸 如前端总线(FSB)之类的多分支总线、诸如快速通道互连(QPI)之类的 点对点接口、或者类似的连接1295与处理器1210、1215进行通信。

在一个实施例中,协处理器1245是专用处理器,诸如例如高吞吐量 MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌 入式处理器等等。在一个实施例中,控制器中枢1220可以包括集成图形加 速器。

在物理资源1210、1215之间可以存在包括架构、微架构、热、和功耗 特征等的一系列品质度量方面的各种差异。

在一个实施例中,处理器1210执行控制一般类型的数据处理操作的指 令。协处理器指令可嵌入在这些指令中。处理器1210将这些协处理器指令 识别为应当由附连的协处理器1245执行的类型。因此,处理器1210在协 处理器总线或者其他互连上将这些协处理器指令(或者表示协处理器指令 的控制信号)发布到协处理器1245。协处理器1245接受并执行所接收的协 处理器指令。

现在请参看图13,所示是根据本发明的一个实施例的第一更具体的示 例性系统1300的框图。如图13所示,多处理器系统1300是点对点互连系 统,并包括通过点对点互连1350耦合的第一处理器1370和第二处理器 1380。处理器1370和1380中的每一个都可以是处理器1100的某一版本。 在本发明的一个实施例中,处理器1370和1380分别是处理器1210和1215, 而协处理器1338是协处理器1245。在另一实施例中,处理器1370和1380 分别是处理器1210和协处理器1245。

处理器1370和1380被示为分别包括集成存储器控制器(IMC)单元 1372和1382。处理器1370还包括点对点(P-P)接口1376和1378,作为 其总线控制器单元的一部分;类似地,第二处理器1380包括P-P接口1386 和1388。处理器1370、1380可以使用点对点(P-P)接口电路1378、1388 经由P-P接口1350来交换信息。如图13所示,IMC 1372和1382将处理 器耦合到相应的存储器,即,存储器1332和存储器1334,它们可以是本地 连接到相应的处理器的主存储器的一部分。

处理器1370、1380可各自经由使用点对点接口电路1376、1390、1394、 1386的各个P-P接口1352、1354与芯片组1398交换信息。芯片组1390 可以可选地经由高性能接口1338与协处理器1339交换信息。在一个实施 例中,协处理器1338是专用处理器,诸如例如高吞吐量MIC处理器、网 络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。

共享高速缓存(未示出)可以被包括在任一处理器之内,或被包括在 两个处理器外部但仍经由P-P互连与这些处理器连接,从而如果将某处理 器置于低功率模式时,可将任一处理器或两个处理器的本地高速缓存信息 存储在该共享高速缓存中。

芯片组1390可经由接口1396耦合至第一总线1316。在一个实施例中, 第一总线1316可以是外围组件互连(PCI)总线,或诸如PCI Express总线或 另一第三代I/O互连总线之类的总线,但本发明的范围并不受此限制。

如图13所示,各种I/O设备1314,以及将第一总线1316耦合到第二 总线1320的总线桥1318,可以耦合到第一总线1316。在一个实施例中, 诸如协处理器、高吞吐量MIC处理器、GPGPU的处理器、加速器(诸如 例如图形加速器或数字信号处理器(DSP)单元)、现场可编程门阵列或 任何其他处理器的一个或多个附加处理器1315被耦合到第一总线1316。在 一个实施例中,第二总线1320可以是低引脚计数(LPC)总线。各种设备可 以被耦合至第二总线1320,在一个实施例中这些设备包括例如键盘/鼠标 1322、通信设备1327以及诸如可包括指令/代码和数据1328的盘驱动器或 其他大容量存储设备的存储单元1330。此外,音频I/O 1324可以被耦合至 第二总线1320。请注意,其他架构也是可以的。例如,代替图13的点对点 架构,系统可以实现多点分支总线或其他这样的架构。

现在请参看图14,所示是根据本发明的一个实施例的第二更具体的示 例性系统1400的框图。图13和14中的相同元素带有相同参考编号,从图 14省略了图13的某些方面,以便不至于使图14的其他方面变得模糊。

图14示出了处理器1370、1380可以分别包括集成的存储器和I/O控 制逻辑(“CL”)1372和1382。因此,CL 1372、1382包括集成存储器控制 器单元并包括I/O控制逻辑。图14示出了不仅存储器1332,1334耦合到 CL 1372,1382,而且I/O设备1414也耦合到控制逻辑1372,1382。传统 I/O设备1415被耦合至芯片组1390。

现在请参看图15,所示是根据本发明的实施例的SoC 1500的框图。 图11中的类似的元素带有相同的参考编号。另外,虚线框是更先进的SoC 的可选特征。在图15中,互连单元1502耦合到:应用处理器1510,该应 用处理器包括一个或多个核202A-N的集合以及共享高速缓存单元1106; 系统代理单元1110;总线控制器单元1116;集成存储器控制器单元1114; 一组或一个或多个协处理器1520,其可包括集成图形逻辑、图像处理器、 音频处理器和视频处理器;静态随机存取存储器(SRAM)单元1530;直接存 储器存取(DMA)单元1532;以及用于耦合至一个或多个外部显示器的显示 单元1540。在一个实施例中,协处理器1520包括专用处理器,诸如例如网 络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处 理器等等。

本文公开的机制的各实施例可以被实现在硬件、软件、固件或这些实 现方法的组合中。本发明的实施例可实现为在可编程系统上执行的计算机 程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失 性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出 设备。

可以将诸如图13中所示出的代码1330之类的程序代码应用于输入指 令,以执行此处所描述的功能并生成输出信息。可以按已知方式将输出信 息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸 如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器 之类的处理器的任何系统。

程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便 与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。 事实上,本文中描述的机制不限于任何特定编程语言的范围。在任一情形 下,该语言可以是编译语言或解释语言。

至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表 征性指令来实现,该指令表示处理器中的各种逻辑,该指令在被机器读取 时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这样 的表示可以存储在有形的机器可读介质中,并提供给各种客户或生产设施, 以加载到实际制造逻辑或处理器的制造机器中。

这样的机器可读存储介质可以包括但不限于通过机器或设备制造或形 成的物品的非瞬态的有形安排,其包括存储介质,诸如:硬盘;任何其它 类型的盘,包括软盘、光盘、紧致盘只读存储器(CD-ROM)、紧致盘可重写 (CD-RW)以及磁光盘;半导体器件,例如只读存储器(ROM)、诸如动态随 机存取存储器(DRAM)和静态随机存取存储器(SRAM)之类的随机存取存储 器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只 读存储器(EEPROM);相变存储器(PCM);磁卡或光卡;或适于存储电子 指令的任何其它类型的介质。

因此,本发明的各实施例还包括非瞬态的有形机器可读介质,该介质 包含指令或包含设计数据,诸如硬件描述语言(HDL),它定义本文中描述的 结构、电路、装置、处理器和/或系统特征。这样的实施例还可以被称为程 序产品。

仿真(包括二进制变换、代码变形等)

在某些情况下,可以使用指令转换器来将指令从源指令集转换为目标 指令集。例如,指令转换器可以转换(例如,使用静态二进制转换、包括 动态编译的动态二进制转换)、变形、模仿,或以别的方式将指令转换为 要由核处理的一个或多个其他指令。指令转换器可以以软件、硬件、固件, 或其组合来实现。指令转换器可以在处理器上、在处理器外、或者部分在 处理器上且部分在处理器外。

图16是根据本发明的各实施例的对照使用软件指令转换器将源指令 集中的二进制指令转换成目标指令集中的二进制指令的框图。在所示的实 施例中,指令转换器是软件指令转换器,但作为替代,该指令转换器可以 用软件、固件、硬件或其各种组合来实现。图16示出了可以使用x86编译 器1602来编译高级语言1604的程序以生成x86二进制代码1606,该x86 二进制代码1616可以由带有至少一个x86指令集核1416的处理器来原生 地(natively)执行。具有至少一个x86指令集核的处理器1616表示任何处 理器,这些处理器能通过兼容地执行或以其他方式处理以下内容来执行与 具有至少一个x86指令集核的英特尔处理器基本相同的功能:1)英特尔x86 指令集核的指令集的本质部分,或2)目标为在具有至少一个x86指令集核 的英特尔处理器上运行的应用或其他程序的目标代码版本,以便取得与具 有至少一个x86指令集核的英特尔处理器基本相同的结果。x86编译器1604 表示能够用于生成x86二进制代码1606(例如,目标代码)的编译器,该 二进制代码1606可通过或不通过附加的链接处理在具有至少一个x86指令 集核的处理器1616上执行。类似地,图16示出了可以使用替代指令集编 译器1602来编译高级语言1608的程序以生成替代指令集二进制代码1610, 该替代指令集二进制代码1614可以由没有至少一个x86指令集核1414的 处理器(例如,带有执行位于CA的Sunnyvale的MIPS Technologies的MIPS 指令集和/或执行位于CA的Sunnyvale的ARM Holdings的ARM指令集的 核的处理器)来原生地执行。指令转换器1612被用来将x86二进制代码1606 转换成可以由不具有x86指令集核的处理器1614原生执行的代码。该转换 后的代码不大可能与替代性指令集二进制代码1610相同,因为能够这样做 的指令转换器难以制造;然而,转换后的代码将完成一般操作并由来自替 代指令集的指令构成。因此,指令转换器1612通过仿真、模拟或任何其他 过程来表示允许不具有x86指令集处理器或核的处理器或其他电子设备执 行x86二进制代码1606的软件、固件、硬件或其组合。

在说明书和权利要求书中,可能使用了术语“逻辑”。如此处所使用的, 术语“逻辑”可以包括硬件、固件、软件,或其组合。逻辑的示例包括集成 电路、专用集成电路、模拟电路、数字电路、编程逻辑器件、包括指令的 存储器设备等等。在某些实施例中,逻辑可以潜在地包括晶体管和/或栅极 以及其他电路组件。

在说明书和权利要求书中,可能使用了术语“耦合的”和“连接的”及其 衍生词。应当理解,这些术语并不旨在作为彼此的同义词。相反,在特定 实施例中,可以使用“连接”来表示两个或更多元件彼此处于直接的物理和/ 或电接触的状态。耦合的摂可表示两个或更多个元件直接物理或电接触。 然而,“耦合的”也可表示两个或更多个元件并未彼此直接接触,但是仍然 彼此协作、彼此相互作用。

术语“和/或”可能已被使用。如本文中所使用的,术语“和/或”意指一个 或其他或两者(例如,A和/或B意指A或B或者A和B两者)。

在上面的描述中,出于说明目的,阐述了众多具体细节以便提供对本 发明的各实施例的全面理解。然而,对本领域技术人员将显而易见的是, 没有这些具体细节中的某些也可实施一个或多个其他实施例。所描述的具 体实施例不是为了限制本发明而是为了说明。本发明的范围不是由上面所 提供的具体示例确定,而是仅由下面的权利要求确定。所有与附图中所示 出的以及说明书中所描述的那些等效的关系都包含在本发明的各实施例 内。在其他情况下,以框图形式,而不是详细地示出已知的电路、结构、 设备,和操作以便不至于使对描述的理解变得模糊。

在合适的情况下,在不同的图形之中参考编号可以重复使用,以表示 可以可任选地基本上相同并具有类似的特征的组件。在其他情况下,参考 编号的结尾部分在诸附图当中被重复以指示可选地具有类似特性或相同特 征的对应或类似的要素,除非以其他方式来指定或显而易见。在某些情况 下,在示出并描述多个组件的情况下,它们可以被包括到单一组件中。在 在示出并描述单一组件的其他情况下,它可以被分离成两个或更多组件。 在附图中,箭头表示耦合,双向箭头表示双向耦合。

已描述了各种操作和方法。已经以流程图方式以相对基础的方式对一 些方法进行了描述,但这些操作可选择地被添加至这些方法和/或从这些方 法中移去。另外,尽管流程图示出根据各示例实施例的操作的特定顺序, 但可以理解,该特定特定顺序是示例性的。替换实施例可以可任选地以不 同方式执行这些操作、组合某些操作、交错某些操作等。可以对方法作出 许多修改。

还应该理解,在本说明书中,对,例如,“一个实施例”、“实施例”、“一 个或多个实施例”,或“不同的实施例”的引用,表示特定特征可以被包括在 本发明的实施中。类似地,应该理解,在描述中,各种特点有时分组在单 一实施例、图形或其描述中,以便简化说明,并帮助理解本发明的各个方 面。然而,该公开方法不应被解释成反映本发明需要比每项权利要求中所 明确记载的更多特征的意图。相反,如所附权利要求反映的,发明性方面 可以在于少于单一公开的实施例的所有特征。因此,所附权利要求因此被 明确纳入该说明书中,每一项权利要求独自作为本发明单独的实施例。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号