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

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

Info

Publication number
CN104823173A
CN104823173A CN201380062341.5A CN201380062341A CN104823173A CN 104823173 A CN104823173 A CN 104823173A CN 201380062341 A CN201380062341 A CN 201380062341A CN 104823173 A CN104823173 A CN 104823173A
Authority
CN
China
Prior art keywords
access
access type
logic
intention
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380062341.5A
Other languages
English (en)
Other versions
CN104823173B (zh
Inventor
G·希尔德什姆
S·赖金
I·安奈蒂
G·盖尔宗
H·谢夫
A·贝伦宗
G·S·斯特隆靳
I·索拉尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN104823173A publication Critical patent/CN104823173A/zh
Application granted granted Critical
Publication of CN104823173B publication Critical patent/CN104823173B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

对预留给处理器逻辑使用的存储器的访问类型保护
背景
领域
各实施例涉及处理器领域。具体而言,各实施例涉及用于限制对存储器的某些部分的访问的的处理器的领域。
背景信息
某些处理器具有预留物理存储器的一部分供处理器的固件,或其他管芯上的处理器逻辑使用,但不供在处理器中执行的软件使用的机制。作为示例,物理存储器的该部分可以由处理器的固件、基本输入/输出系统(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 andaccess 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两者)。
在上面的描述中,出于说明目的,阐述了众多具体细节以便提供对本发明的各实施例的全面理解。然而,对本领域技术人员将显而易见的是,没有这些具体细节中的某些也可实施一个或多个其他实施例。所描述的具体实施例不是为了限制本发明而是为了说明。本发明的范围不是由上面所提供的具体示例确定,而是仅由下面的权利要求确定。所有与附图中所示出的以及说明书中所描述的那些等效的关系都包含在本发明的各实施例内。在其他情况下,以框图形式,而不是详细地示出已知的电路、结构、设备,和操作以便不至于使对描述的理解变得模糊。
在合适的情况下,在不同的图形之中参考编号可以重复使用,以表示可以可任选地基本上相同并具有类似的特征的组件。在其他情况下,参考编号的结尾部分在诸附图当中被重复以指示可选地具有类似特性或相同特征的对应或类似的要素,除非以其他方式来指定或显而易见。在某些情况下,在示出并描述多个组件的情况下,它们可以被包括到单一组件中。在在示出并描述单一组件的其他情况下,它可以被分离成两个或更多组件。在附图中,箭头表示耦合,双向箭头表示双向耦合。
已描述了各种操作和方法。已经以流程图方式以相对基础的方式对一些方法进行了描述,但这些操作可选择地被添加至这些方法和/或从这些方法中移去。另外,尽管流程图示出根据各示例实施例的操作的特定顺序,但可以理解,该特定特定顺序是示例性的。替换实施例可以可任选地以不同方式执行这些操作、组合某些操作、交错某些操作等。可以对方法作出许多修改。
还应该理解,在本说明书中,对,例如,“一个实施例”、“实施例”、“一个或多个实施例”,或“不同的实施例”的引用,表示特定特征可以被包括在本发明的实施中。类似地,应该理解,在描述中,各种特点有时分组在单一实施例、图形或其描述中,以便简化说明,并帮助理解本发明的各个方面。然而,该公开方法不应被解释成反映本发明需要比每项权利要求中所明确记载的更多特征的意图。相反,如所附权利要求反映的,发明性方面可以在于少于单一公开的实施例的所有特征。因此,所附权利要求因此被明确纳入该说明书中,每一项权利要求独自作为本发明单独的实施例。

Claims (25)

1.一种处理器,包括:
操作模式检查逻辑,所述操作模式检查逻辑用于,基于用于指示意图的访问是否是由管芯上的处理器逻辑作出的操作模式,来判定是否允许对操作模式以及访问类型保护的存储器的意图的访问;
访问类型检查逻辑,所述访问类型检查逻辑用于,基于对所述操作模式及访问类型保护的存储器的所述意图的访问的访问类型,来判定是否允许对所述操作模式及访问类型保护的存储器的所述意图的访问;以及
保护逻辑,其与所述操作模式检查逻辑耦合并与所述访问类型检查逻辑耦合,所述保护逻辑用于如果所述操作模式检查逻辑和所述访问类型检查逻辑中的至少一个判定不允许所述意图的访问,则拒绝对所述操作模式及访问类型保护的存储器的所述意图的访问。
2.如权利要求1所述的处理器,进一步包括至少一个寄存器,所述至少一个寄存器用于指示对于所述操作模式及访问类型保护的存储器的一组一个或多个允许的访问类型,并且其中所述访问类型检查逻辑用于通过将所述意图的访问的访问类型与由所述至少一个寄存器指示的所述一组一个或多个允许的访问类型进行比较,来判定是否允许所述意图的访问。
3.如权利要求2所述的处理器,其特征在于,所述至少一个寄存器用于显式地指定一组访问类型。
4.如权利要求2所述的处理器,其特征在于,一组访问类型对所述至少一个寄存器是隐式的。
5.如权利要求1所述的处理器,进一步包括转换后备缓冲器(TLB),所述转换后备缓冲器具有访问类型检查和保护逻辑,所述访问类型检查和保护逻辑用于检查并防止对所述操作模式及访问类型保护的存储器的通过所述TLB的采用物理地址的意图的访问。
6.如权利要求5所述的处理器,其特征在于,所述TLB的所述访问类型检查和保护逻辑用于,如果采用所述物理地址的所述意图的访问的访问类型不在要由所述TLB的对应条目所指示的一组一个或多个允许的访问类型当中,则阻止对所述操作模式及访问类型保护的存储器的采用所述物理地址的所述意图的访问。
7.如权利要求6所述的处理器,其特征在于,所述条目的分页属性比特用于指示所述一组一个或多个允许的访问类型,并且其中,其他条目中的对应的位置处的对应的分页属性比特用于虚拟到物理地址转换,并用于通过操作系统和虚拟机监视器中的一个或多个进行的虚拟地址保护。
8.如权利要求6所述的处理器,其特征在于,所述条目中的用于指示所述一组一个或多个允许的访问类型的比特不同于所述条目中的用于虚拟到物理地址转换的分页属性比特。
9.如权利要求1所述的处理器,其特征在于,所述操作模式检查逻辑用于,如果所述操作模式指示所述意图的访问是由所述管芯上的处理器逻辑作出的,则判定允许所述意图的访问,如果所述操作模式指示所述意图的访问是由执行软件作出的,则判定不允许所述意图的访问。
10.如权利要求1所述的处理器,进一步包括逻辑,其用于通过判定所述物理地址是否在多个其他操作模式保护的存储器内,并求出所述物理地址是否在所述其他操作模式保护的存储器内的逻辑组合,来判定所述意图的访问的物理地址在所述操作模式及访问类型保护的存储器内的逻辑。
11.如权利要求1所述的处理器,其特征在于,所述访问类型是读取、写入,以及执行中的一项。
12.一种方法,包括:
判定对操作模式及访问类型保护的存储器的意图的访问的操作模式是允许的,因为所述意图的访问是由管芯上的处理器逻辑作出的;
判定对所述操作模式及访问类型保护的存储器的所述意图的访问的访问类型不被允许;以及
基于所述意图的访问的访问类型不被允许的所述判定,拒绝由所述管芯上的处理器逻辑对所述操作模式及访问类型保护的存储器的所述意图的访问。
13.如权利要求12所述的方法,其特征在于,判定所述访问类型不被允许包括:
将所述意图的访问的访问类型与由对应于所述操作模式及访问类型保护的存储器的至少一个寄存器指示的一个或多个允许的访问类型的全部进行比较;以及
判定所述意图的访问的访问类型不同于由所述至少一个寄存器指示的全部所述允许的访问类型。
14.如权利要求13所述的方法,其特征在于,所述至少一个寄存器显式地指定一组访问类型。
15.如权利要求13所述的方法,其特征在于,一组访问类型对所述至少一个寄存器是隐式的。
16.如权利要求12所述的方法,其特征在于,判定所述访问类型不被允许包括:判定所述意图的访问的访问类型不匹配于在转换后备缓冲器(TLB)的对应于所述意图的访问的条目中指示的一组一个或多个允许的访问类型。
17.如权利要求16所述的方法,其特征在于,所述条目的分页属性比特指示所述一个或多个允许的访问类型,并且其中其他条目中的对应的分页属性比特用于虚拟到物理地址转换,并用于通过操作系统和虚拟机监视器中的一个或多个进行的虚拟地址保护。
18.如权利要求16所述的方法,其特征在于,所述条目中的指示所述一个或多个允许的访问类型的比特不同于所述条目中的用于虚拟到物理地址转换的分页属性比特。
19.如权利要求12所述的方法,其特征在于,如果所述意图的访问是由执行软件作出的,则所述意图的访问的所述操作模式将不被允许。
20.如权利要求12所述的方法,进一步包括,通过以下动作来判定所述意图的访问的物理地址在所述操作模式及访问类型保护的存储器内:
判定所述物理地址是否在多个其他操作模式保护的存储器内;以及
求出所述物理地址是否在所述其他操作模式保护的存储器内的所述判定的逻辑组合。
21.如权利要求12所述的方法,其特征在于,判定包括判定读取、写入、以及执行访问类型中的至少一项不被允许。
22.一种系统,包括:
具有操作模式及访问类型保护的存储器区域的动态随机存取存储器(DRAM);以及
与所述DRAM耦合的处理器,所述处理器包括:
操作模式检查逻辑,所述操作模式检查逻辑用于,基于用于指示意图的访问是否是由所述处理器的管芯上的逻辑作出的,来判定是否允许对所述操作模式以及访问类型受保护的存储器区域的意图的访问,其中所述管芯上的逻辑选自于硬件、固件,以及其组合,其中所述操作模式检查逻辑用于,如果所述意图的访问来自于在所述处理器上正在执行的软件,则所述操作模式检查逻辑判定不允许所述意图的访问;
访问类型检查逻辑,所述访问类型检查逻辑用于,基于对所述操作模式及访问类型保护的存储器区域的所述意图的访问的访问类型,判定是否允许对所述操作模式及访问类型保护的存储器区域的所述意图的访问,其中所述访问类型是从读取、写入,以及执行中选择的;以及
保护逻辑,其与所述操作模式检查逻辑耦合,并与所述访问类型检查逻辑耦合,所述保护逻辑用于,如果所述操作模式检查逻辑和所述访问类型检查逻辑中的至少一个判定不允许所述意图的访问,则拒绝对所述操作模式及访问类型保护的存储器区域的所述意图的访问。
23.如权利要求22所述的系统,进一步包括至少一个寄存器,用于指示对于所述操作模式及访问类型保护的存储器区域的一组一个或多个允许的访问类型。
24.如权利要求22所述的系统,进一步包括转换后备缓冲器(TLB),所述转换后备缓冲器具有访问类型检查和保护逻辑,所述访问类型检查和保护逻辑用于检查并防止对所述操作模式及访问类型保护的存储器的通过所述TLB的采用物理地址的意图的访问。
25.如权利要求1所述的处理器,其特征在于,所述操作模式检查逻辑用于,如果所述操作模式指示所述意图的访问是由所述管芯上的逻辑作出的,则将判定允许对所述操作模式以及访问类型保护的存储器的所述意图的访问,并且其中所述操作模式检查逻辑用于,如果所述意图的访问的访问类型匹配于对应于所述操作模式以及访问类型保护的存储器的一个或多个允许的访问类型,则判定允许对所述操作模式以及访问类型保护的存储器的所述意图的访问。
CN201380062341.5A 2012-12-28 2013-06-13 对预留给处理器逻辑使用的存储器的访问类型保护 Expired - Fee Related CN104823173B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/729,439 2012-12-28
US13/729,439 US9720843B2 (en) 2012-12-28 2012-12-28 Access type protection of memory reserved for use by processor logic
PCT/US2013/045691 WO2014105122A1 (en) 2012-12-28 2013-06-13 Access type protection of memory reserved for use by processor logic

Publications (2)

Publication Number Publication Date
CN104823173A true CN104823173A (zh) 2015-08-05
CN104823173B CN104823173B (zh) 2018-03-30

Family

ID=51018655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380062341.5A Expired - Fee Related CN104823173B (zh) 2012-12-28 2013-06-13 对预留给处理器逻辑使用的存储器的访问类型保护

Country Status (3)

Country Link
US (1) US9720843B2 (zh)
CN (1) CN104823173B (zh)
WO (1) WO2014105122A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108027779A (zh) * 2015-09-25 2018-05-11 英特尔公司 允许受保护的容器存储器与输入/输出设备之间的安全通信的处理器、方法、系统和指令
CN108205502A (zh) * 2016-12-19 2018-06-26 英特尔公司 轻量可信任务
CN108351830A (zh) * 2015-12-21 2018-07-31 英特尔公司 用于存储器损坏检测的硬件装置和方法
CN110647475A (zh) * 2018-06-26 2020-01-03 三星电子株式会社 存储装置和包括存储装置的存储系统
CN111052114A (zh) * 2017-06-07 2020-04-21 惠普发展公司,有限责任合伙企业 入侵检测系统
CN111198827A (zh) * 2018-11-16 2020-05-26 展讯通信(上海)有限公司 页表预取方法及装置
CN111602124A (zh) * 2018-01-16 2020-08-28 超威半导体公司 用于可配置计算基板的近存储器硬化计算块

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720843B2 (en) 2012-12-28 2017-08-01 Intel Corporation Access type protection of memory reserved for use by processor logic
US11544214B2 (en) * 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register
US9710622B2 (en) * 2015-02-23 2017-07-18 Intel Corporation Instructions and logic to fork processes of secure enclaves and establish child enclaves in a secure enclave page cache
US10114958B2 (en) * 2015-06-16 2018-10-30 Microsoft Technology Licensing, Llc Protected regions
US9740438B2 (en) * 2015-08-20 2017-08-22 Sap Se Allocating memory on multiple types of main memory technologies from software application layer
US10452566B2 (en) * 2015-10-02 2019-10-22 Nvidia Corporation Storing secure state information in translation lookaside buffer cache lines
US10558582B2 (en) 2015-10-02 2020-02-11 Intel Corporation Technologies for execute only transactional memory
DE102015223335A1 (de) * 2015-11-25 2017-06-01 Robert Bosch Gmbh Verfahren zum Betreiben eines Mikrocontrollers
US10044710B2 (en) 2016-02-22 2018-08-07 Bpip Limited Liability Company Device and method for validating a user using an intelligent voice print
US10824572B2 (en) * 2016-09-09 2020-11-03 Cylance Inc. Memory space protection
US20180081830A1 (en) * 2016-09-20 2018-03-22 Advanced Micro Devices, Inc. Hardware supervision of page tables
US10379768B2 (en) * 2016-09-30 2019-08-13 Intel Corporation Selective memory mode authorization enforcement
US10430225B1 (en) * 2017-09-29 2019-10-01 Amazon Technologies, Inc. Traffic management on an interconnect
US10809924B2 (en) * 2018-04-12 2020-10-20 Webroot Inc. Executable memory protection
GB2574270B (en) * 2018-06-01 2020-09-09 Advanced Risc Mach Ltd Speculation-restricted memory region type
GB2591490B (en) 2020-01-30 2022-03-02 Advanced Risc Mach Ltd An apparatus and method for controlling access to a set of memory mapped control registers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113141A1 (en) * 2007-10-31 2009-04-30 Agere Systems Inc. Memory protection system and method
US20100223447A1 (en) * 2009-02-27 2010-09-02 Serebrin Benjamin C Translate and Verify Instruction for a Processor
CN102257483A (zh) * 2008-12-18 2011-11-23 桑迪士克公司 管理对存储器件中的地址范围的访问

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513337A (en) 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
US6452856B1 (en) * 1999-02-26 2002-09-17 Micron Technology, Inc. DRAM technology compatible processor/memory chips
US6934817B2 (en) 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US20070083916A1 (en) * 2005-10-07 2007-04-12 William Coyle System for authentication of electronic devices
US8051263B2 (en) 2007-05-04 2011-11-01 Atmel Corporation Configurable memory protection
US9141776B2 (en) 2008-04-30 2015-09-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for secure hardware analysis
US9377960B2 (en) * 2009-07-29 2016-06-28 Hgst Technologies Santa Ana, Inc. System and method of using stripes for recovering data in a flash storage system
GB2482700A (en) 2010-08-11 2012-02-15 Advanced Risc Mach Ltd Memory access control
US9720843B2 (en) 2012-12-28 2017-08-01 Intel Corporation Access type protection of memory reserved for use by processor logic

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113141A1 (en) * 2007-10-31 2009-04-30 Agere Systems Inc. Memory protection system and method
CN102257483A (zh) * 2008-12-18 2011-11-23 桑迪士克公司 管理对存储器件中的地址范围的访问
US20100223447A1 (en) * 2009-02-27 2010-09-02 Serebrin Benjamin C Translate and Verify Instruction for a Processor

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108027779A (zh) * 2015-09-25 2018-05-11 英特尔公司 允许受保护的容器存储器与输入/输出设备之间的安全通信的处理器、方法、系统和指令
US11531475B2 (en) 2015-09-25 2022-12-20 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
CN108351830B (zh) * 2015-12-21 2023-10-27 英特尔公司 用于存储器损坏检测的硬件装置和方法
CN108351830A (zh) * 2015-12-21 2018-07-31 英特尔公司 用于存储器损坏检测的硬件装置和方法
US11645135B2 (en) 2015-12-21 2023-05-09 Intel Corporation Hardware apparatuses and methods for memory corruption detection
CN108205502A (zh) * 2016-12-19 2018-06-26 英特尔公司 轻量可信任务
CN108205502B (zh) * 2016-12-19 2023-11-07 英特尔公司 轻量可信任务
CN111052114A (zh) * 2017-06-07 2020-04-21 惠普发展公司,有限责任合伙企业 入侵检测系统
CN111052114B (zh) * 2017-06-07 2024-01-09 惠普发展公司,有限责任合伙企业 入侵检测系统
CN111602124A (zh) * 2018-01-16 2020-08-28 超威半导体公司 用于可配置计算基板的近存储器硬化计算块
CN110647475A (zh) * 2018-06-26 2020-01-03 三星电子株式会社 存储装置和包括存储装置的存储系统
CN110647475B (zh) * 2018-06-26 2023-07-21 三星电子株式会社 存储装置和包括存储装置的存储系统
CN111198827A (zh) * 2018-11-16 2020-05-26 展讯通信(上海)有限公司 页表预取方法及装置

Also Published As

Publication number Publication date
WO2014105122A1 (en) 2014-07-03
CN104823173B (zh) 2018-03-30
US20140189261A1 (en) 2014-07-03
US9720843B2 (en) 2017-08-01

Similar Documents

Publication Publication Date Title
CN104823173A (zh) 对预留给处理器逻辑使用的存储器的访问类型保护
US11782849B2 (en) Processors, methods, systems, and instructions to support live migration of protected containers
CN109690552B (zh) 用于加载受保护容器页的处理器、方法、系统和指令
EP3414696B1 (en) An apparatus and method for generating signed bounded pointers
CN105320611A (zh) 用于细粒存储器保护的方法和设备
EP3414700B1 (en) An apparatus and method for controlling use of bounded pointers
TW202111587A (zh) 用於容許安全通訊之積體電路、方法及製造物件
KR20210047975A (ko) 보호 영역에서의 메모리 초기화
CN104969199A (zh) 实施黑名单分页结构指示值的处理器、方法,以及系统
CN105027137A (zh) 用于针对增强型安全检查的页走查扩展的装置和方法

Legal Events

Date Code Title Description
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180330

Termination date: 20210613

CF01 Termination of patent right due to non-payment of annual fee