CN105027137B - 用于针对增强型安全检查的页走查扩展的装置和方法 - Google Patents

用于针对增强型安全检查的页走查扩展的装置和方法 Download PDF

Info

Publication number
CN105027137B
CN105027137B CN201380062322.2A CN201380062322A CN105027137B CN 105027137 B CN105027137 B CN 105027137B CN 201380062322 A CN201380062322 A CN 201380062322A CN 105027137 B CN105027137 B CN 105027137B
Authority
CN
China
Prior art keywords
page
protection table
processor
list item
memory
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.)
Active
Application number
CN201380062322.2A
Other languages
English (en)
Other versions
CN105027137A (zh
Inventor
G·希尔德什姆
I·安奈蒂
H·谢夫
S·赖金
G·盖尔宗
U·R·萨瓦高恩卡
C·V·罗扎斯
F·X·麦克金
M·A·戈德史密斯
P·德韦恩
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 CN105027137A publication Critical patent/CN105027137A/zh
Application granted granted Critical
Publication of CN105027137B publication Critical patent/CN105027137B/zh
Active 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/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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

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)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种用于通过处理器管理保护表的装置和方法。例如,根据本发明的一个实施例的处理器包括:用于管理保护表的保护表管理逻辑,该保护表具有用于存储器内的每个受保护页或每组受保护页的表项;其中该保护表管理逻辑防止用户应用程序代码和操作系统程序代码对该保护表的直接访问但是许可由该处理器直接访问。

Description

用于针对增强型安全检查的页走查扩展的装置和方法
背景
发明领域
本发明总体上涉及计算机处理器的领域。更具体地,本发明涉及一种用于扩展页走查以便允许增强型安全检查的装置和方法。
相关技术描述
存储器寻址方案经常使用被称为分页(paging)的技术来实现虚拟存储器。当使用分页时,虚拟地址空间(即,或者由处理器的执行单元或者由执行单元集合处理器的分段单元生成的地址空间)被划分为固定尺寸的被称为页的块,每个块可被映射到在系统上可用的物理地址中的任何物理地址(即,与硬件存储器地址相对应的地址)。在典型的计算机系统中,存储器管理单元根据分页算法确定并维护用于使用一个或多个页表的从虚拟到物理地址的当前映射。
在从处理器的执行单元接收到虚拟地址(有时还被称为线性地址(LA))时,典型的存储器管理单元初始地使用页表将LA转换为其相应的物理地址。由于页表通常存储在主存储器中,访问页表是非常耗时的。为了加快分页转换,某些计算机系统在转换后备缓冲器或TLB(通常位于处理器上的更快的存储器)中存储最近使用的转换。在生成要求转换的LA时,存储器管理单元在访问页表之前首先在TLB中搜索该转换。如果该转换存储在TLB中,认为TLB“命中(hit)”已经发生并且TLB提供该转换。然而,如果该转换未存储在TLB中,认为TLB“未命中(miss)”已经发生并且页表走查器(walker)被调用来访问页表并提供该转换。
附图简要描述
可从以下详细描述结合以下附图获得本发明的更好的理解,在附图中:
图1A是框图,示出根据本发明的各实施例的示例性有序流水线以及示例性寄存器重命名的无序发布/执行流水线两者的框图;
图1B是框图,示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核;
图2是根据本发明的各实施例的具有集成存储器控制器和图形器件的单核处理器和多核处理器的框图;
图3示出根据本发明的一个实施例的系统的框图;
图4示出根据本发明的一个实施例的第二系统的框图;
图5示出根据本发明的一个实施例的第三系统的框图;
图6示出根据本发明的实施例的片上系统(SoC)的框图;
图7示出框图,该框图根据本发明的各实施例的对比使用软件指令变换器将源指令集中的二进制指令变换成目标指令集中的二进制指令;
图8是框图,示出根据本发明的各实施例的通用向量友好指令格式及其指令模板;
图9根据本发明的各实施例的示例性特定向量友好指令格式的框图;以及
图10示出根据本发明的一个实施例由PMH执行的示例性扩展页走查。
详细描述
在以下描述中,为了解释的目的,列出了许多特定细节以便提供以下描述的本发明的各实施例的透彻理解。然而,本领域普通技术人员将认识到本发明的各实施例可在没有这些特定细节中的一些的情况下实践。在其他情况下,以框图的形式示出公知的结构和设备,以便避免混淆本发明的各实施例的基础原理。
示例性处理器架构和数据类型
图1A是示出根据本发明的各实施例的示例性有序流水线和示例性的寄存器重命名的无序发布/执行流水线的框图。图1B是示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。图1A-B中的实线框示出了有序流水线和有序核,而可选增加的虚线框示出了寄存器重命名的、无序发布/执行流水线和核。给定有序方面是无序方面的子集的情况下,将描述无序方面。
在图1A中,处理器流水线100包括取出级102、长度解码级104、解码级106、分配级108、重命名级110、调度(也称为分派或发布)级112、寄存器读取/存储器读取级114、执行级116、写回/存储器写入级118、异常处理级122和提交级124。
图1B示出了包括耦合到执行引擎单元150的前端单元130的处理器核190,且执行引擎单元和前端单元两者都耦合到存储器单元170。核190可以是精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或替代核类型。作为又一选项,核190可以是专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图形处理器单元(GPGPU)核、或图形核等等。
前端单元130包括耦合到指令高速缓存单元134的分支预测单元132,该指令高速缓存单元134耦合到指令转换后备缓冲器(TLB)136,该指令转换后备缓冲器136耦合到指令取出单元138,指令取出单元138耦合到解码单元140。解码单元140(或解码器)可解码指令,并生成从原始指令解码出的、或以其他方式反映原始指令的、或从原始指令导出的一个或多个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元140可使用各种不同的机制来实现。合适的机制的示例包括但不限于查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。一个实施例中,核190包括(例如,在解码单元140中或以其它方式在前端单元130内的)用于存储某些宏指令的微代码的微代码ROM或其他介质。解码单元140耦合到执行引擎单元150中的重命名/分配单元152。
执行引擎单元150包括重命名/分配器单元152,该重命名/分配器单元152耦合至引退单元154和一个或多个调度器单元156的集合。调度器单元156表示任何数目的不同调度器,包括预留站、中央指令窗等。这些调度器单元156耦合到物理寄存器组单元158。每个物理寄存器组单元158表示一个或多个物理寄存器组,其中不同的物理寄存器组存储一种或多种不同的数据类型,诸如标量整数、标量浮点、紧凑整数、紧凑浮点、向量整数、向量浮点、状态(例如,作为要执行的下一指令的地址的指令指针)等。在一个实施例中,物理寄存器组单元158包括向量寄存器单元、写掩码寄存器单元和标量寄存器单元。这些寄存器单元可以提供架构向量寄存器、向量掩码寄存器、和通用寄存器。物理寄存器组单元158与引退单元154重叠以示出可以用来实现寄存器重命名和无序执行的各种方式(例如,使用重新排序缓冲器和引退寄存器组;使用将来的文件、历史缓冲器和引退寄存器组;使用寄存器映射和寄存器池等等)。引退单元154和物理寄存器组单元158耦合到执行群集160。执行群集160包括一个或多个执行单元162的集合和一个或多个存储器访问单元164的集合。执行单元162可以对各种类型的数据(例如,标量浮点、紧凑整数、紧凑浮点、向量整型、向量浮点)执行各种操作(例如,移位、加法、减法、乘法)。尽管一些实施例可以包括专用于特定功能或功能集合的多个执行单元,但其他实施例可包括全部执行所有功能的仅一个执行单元或多个执行单元。调度器单元156、物理寄存器组单元158和执行群集160被示为可能有多个,因为某些实施例为某些类型的数据/操作创建分开的流水线(例如,标量整型流水线、标量浮点/紧凑整型/紧凑浮点/向量整型/向量浮点流水线,和/或各自具有其自己的调度器单元、物理寄存器组单元和/或执行群集的存储器访问流水线——以及在分开的存储器访问流水线的情况下,实现其中仅该流水线的执行群集具有存储器访问单元164的某些实施例)。还应当理解,在使用分开的流水线的情况下,这些流水线中的一个或多个可以为无序发布/执行,并且其余流水线可以为有序发布/执行。
存储器访问单元164的集合耦合到存储器单元170,该存储器单元170包括耦合到数据高速缓存单元174的数据TLB单元172,其中数据高速缓存单元174耦合到二级(L2)高速缓存单元176。在一个示例性实施例中,存储器访问单元164可以包括加载单元、存储地址单元和存储数据单元,这些单元中的每一个单元耦合到存储器单元170中的数据TLB单元172。指令高速缓存单元134还耦合到存储器单元170中的二级(L2)高速缓存单元176。L2高速缓存单元176耦合到一个或多个其他级的高速缓存,并最终耦合到主存储器。
作为示例,示例性寄存器重命名的、无序发布/执行核架构可以如下实现流水线100:1)指令取出138执行取出和长度解码级102和104;2)解码单元140执行解码级106;3)重命名/分配器单元152执行分配级108和重命名级110;4)调度器单元156执行调度级112;5)物理寄存器组单元158和存储器单元170执行寄存器读取/存储器读取级114;执行群集160执行执行级116;6)存储器单元170和物理寄存器组单元158执行写回/存储器写入级118;7)各单元可牵涉到异常处理级122;以及8)引退单元154和物理寄存器组单元158执行提交级124。
核190可支持一个或多个指令集(例如,x86指令集(具有与较新版本一起添加的一些扩展);加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集;加利福尼州桑尼维尔市的ARM控股的ARM指令集(具有诸如NEON等可选附加扩展)),其中包括本文中描述的各指令。在一个实施例中,核190包括用于支持紧凑数据指令集扩展(例如,AVX1、AVX2和/或先前描述的一些形式的通用向量友好指令格式(U=0和/或U=1))的逻辑,从而允许很多多媒体应用使用的操作能够使用紧凑数据来执行。
应当理解,核可支持多线程化(执行两个或更多个并行的操作或线程的集合),并且可以按各种方式来完成该多线程化,此各种方式包括时分多线程化、同步多线程化(其中单个物理核为物理核正在同步多线程化的各线程中的每一个线程提供逻辑核)、或其组合(例如,时分取出和解码以及此后诸如用超线程化技术来同步多线程化)。
尽管在无序执行的上下文中描述了寄存器重命名,但应当理解,可以在有序架构中使用寄存器重命名。尽管所示出的处理器的实施例还包括分开的指令和数据高速缓存单元134/174以及共享L2高速缓存单元176,但替代实施例可以具有用于指令和数据两者的单个内部高速缓存,诸如例如一级(L1)内部高速缓存或多个级别的内部高速缓存。在一些实施例中,该系统可包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组合。或者,所有高速缓存都可以在核和/或处理器的外部。
图2是根据本发明的各实施例可能具有一个以上核、可能具有集成存储器控制器、以及可能具有集成图形器件的处理器200的框图。图2中的实线框示出具有单个核202A、系统代理200、一个或多个总线控制器单元210的集合的处理器200,而虚线框的可选附加示出具有多个核202A-N、系统代理单元210中的一个或多个集成存储器控制器单元214的集合以及专用逻辑208的替代处理器200。
因此,处理器200的不同实现可包括:1)CPU,其中专用逻辑208是集成图形和/或科学(吞吐量)逻辑(其可包括一个或多个核),并且核202A-N是一个或多个通用核(例如,通用的有序核、通用的无序核、这两者的组合);2)协处理器,其中核202A-N是旨在主要用于图形和/或科学(吞吐量)的多个专用核;以及3)协处理器,其中核202A-N是多个通用有序核。因此,处理器200可以是通用处理器、协处理器或专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、高吞吐量多集成内核(MIC)协处理器(包括30或更多个内核)、嵌入式处理器等等。该处理器可以被实现在一个或多个芯片上。处理器200可以是一个或多个衬底的一部分,和/或可以使用诸如例如BiCMOS、CMOS或NMOS等的多个加工技术中的任何一个技术将处理器200实现在一个或多个衬底上。
存储器层次结构包括在各核内的一个或多个级别的高速缓存、一个或多个共享高速缓存单元206的集合、以及耦合至集成存储器控制器单元214的集合的外部存储器(未示出)。该共享高速缓存单元206的集合可以包括一个或多个中间级高速缓存,诸如二级(L2)、三级(L3)、四级(L4)或其他级别的高速缓存、末级高速缓存(LLC)、和/或其组合。尽管在一个实施例中,基于环的互连单元212将集成图形逻辑208、共享高速缓存单元206的集合以及系统代理单元210/集成存储器控制器单元214互连,但替代实施例可使用任何数量的公知技术来将这些单元互连。在一个实施例中,可以维护一个或多个高速缓存单元206和核202A-N之间的一致性(coherency)。
在一些实施例中,核202A-N中的一个或多个核能够多线程化。系统代理210包括协调和操作核202A-N的那些组件。系统代理单元210可包括例如功率控制单元(PCU)和显示单元。PCU可以是或包括用于调整核202A-N和集成图形逻辑208的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
核202A-N在架构指令集方面可以是同构的或异构的;即,这些核202A-N中的两个或更多个核可能能够执行相同的指令集,而其他核可能能够执行该指令集的仅仅子集或不同的指令集。在一个实施例中,核202A-N是异构的并且包括以下描述的“小”核和“大”核。
图3至图6是示例性计算机架构的框图。本领域已知的对膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备的其他系统设计和配置也是合适的。一般地,能够包含本文中所公开的处理器和/或其他执行逻辑的多个系统和电子设备一般都是合适的。
现在参见图3,所示为根据本发明的一个实施例的系统300的框图。系统300可以包括一个或多个处理器310、315,这些处理器耦合到控制器中枢320。在一个实施例中,控制器中枢320包括图形存储器控制器中枢(GMCH)390和输入/输出中枢(IOH)350(其可以在分开的芯片上);GMCH 390包括存储器和图形控制器,存储器340和协处理器345耦合到该存储器和图形控制器;IOH 350将输入/输出(I/O)设备360耦合到GMCH 390。或者,存储器和图形控制器中的一个或两者可以被集成在处理器内(如本文中所描述的),存储器340和协处理器345直接耦合到处理器310以及控制器中枢320,控制器中枢320与IOH 350处于单个芯片中。
附加处理器315的任选性质用虚线表示在图3中。每一处理器310、315可包括本文中描述的处理核中的一个或多个,并且可以是处理器200的某一版本。
存储器340可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或这两者的组合。对于至少一个实施例,控制器中枢320经由诸如前端总线(FSB)之类的多分支总线、诸如快速通道互连(QPI)之类的点对点接口、或者类似的连接395与处理器310、315进行通信。
在一个实施例中,协处理器345是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。在一个实施例中,控制器中枢320可以包括集成图形加速器。
在物理资源310、315之间可以存在包括架构、微架构、热、和功耗特征等的一系列品质度量方面的各种差异。
在一个实施例中,处理器310执行控制一般类型的数据处理操作的指令。协处理器指令可嵌入在这些指令中。
处理器310将这些协处理器指令识别为应当由附连的协处理器345执行的类型。因此,处理器310在协处理器总线或者其他互连上将这些协处理器指令(或者表示协处理器指令的控制信号)发布到协处理器345。协处理器345接受并执行所接收的协处理器指令。
现在参考图4,所示为根据本发明的一实施例的更具体的第一示例性系统400的框图。如图4所示,多处理器系统400是点对点互连系统,并包括经由点对点互连450耦合的第一处理器470和第二处理器480。处理器470和480中的每一个都可以是处理器200的某一版本。在本发明的一个实施例中,处理器470和480分别是处理器310和315,而协处理器438是协处理器345。在另一实施例中,处理器470和480分别是处理器310和协处理器345。
处理器470和480被示为分别包括集成存储器控制器(IMC)单元472和482。处理器470还包括作为其总线控制器单元的一部分的点对点(P-P)接口476和478;类似地,第二处理器480包括点对点接口486和488。处理器470、480可以使用点对点(P-P)电路478、488经由P-P接口450来交换信息。如图4所示,IMC 472和482将各处理器耦合至相应的存储器,即存储器432和存储器434,这些存储器可以是本地附连至相应的处理器的主存储器的部分。
处理器470、480可各自经由使用点对点接口电路476、494、486、498的各个P-P接口452、454与芯片组498交换信息。芯片组490可以可选地经由高性能接口439与协处理器438交换信息。在一个实施例中,协处理器438是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等等。
共享高速缓存(未示出)可以被包括在任一处理器之内,或被包括在两个处理器外部但仍经由P-P互连与这些处理器连接,从而如果将某处理器置于低功率模式时,可将任一处理器或两个处理器的本地高速缓存信息存储在该共享高速缓存中。
芯片组490可经由接口496耦合至第一总线416。在一个实施例中,第一总线416可以是外围组件互连(PCI)总线,或诸如PCI Express总线或其他第三代I/O互连总线之类的总线,但本发明的范围并不受此限制。
如图4所示,各种I/O设备414可以连同总线桥418耦合到第一总线416,总线桥418将第一总线416耦合至第二总线420。在一个实施例中,诸如协处理器、高吞吐量MIC处理器、GPGPU的处理器、加速器(诸如例如图形加速器或数字信号处理器(DSP)单元)、现场可编程门阵列或任何其他处理器的一个或多个附加处理器415耦合到第一总线416。在一个实施例中,第二总线420可以是低引脚计数(LPC)总线。在一个实施例中,各种设备可耦合到第二总线420,包括例如键盘和/或鼠标422、
通信设备427和存储单元428,诸如硬盘驱动器或可包括指令/代码和数据430的其他大容量存储设备。此外,音频I/O 424可以被耦合至第二总线420。注意,其他架构是可能的。例如,代替图4的点对点架构,系统可以实现多分支总线或其他这类架构。
现在参考图5,所示为根据本发明的各实施例的更具体的第二示例性系统500的框图。图4和图5中的相同部件用相同附图标记表示,并从图5中省去了图4中的某些方面,以避免使图5的其他方面变得模糊。
图5示出处理器470、480可分别包括集成存储器和I/O控制逻辑(“CL”)472和482。因此,CL 472、482包括集成存储器控制器单元并包括I/O控制逻辑。图5展示不仅存储器432、434耦合到CL 472、482,而且I/O设备514也耦合到控制逻辑472、482。传统I/O设备515被耦合至芯片组490。
现在参考图6,所示为根据本发明的一实施例的SoC 600的框图。在图2中相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图6中,互连单元602被耦合至:应用处理器610,该应用处理器包括一个或多个核202A-N的集合以及共享高速缓存单元206;系统代理单元210;总线控制器单元216;集成存储器控制器单元214;一组或一个或多个协处理器620,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元630;直接存储器存取(DMA)单元632;以及用于耦合至一个或多个外部显示器的显示单元640。在一个实施例中,协处理器620包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
本文公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本发明的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码(诸如图4中示出的代码430)应用于输入指令,以执行本文描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性指令来实现,指令表示处理器中的各种逻辑,指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的机器可读介质上,并被提供给多个客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
这种机器可读存储介质可包括但不限于通过机器或设备制造或形成的制品的非瞬态有形安排,包括存储介质,诸如硬盘、任意其他类型的盘,包括软盘、光盘、光盘只读存储(CD-ROM)、光盘可重写(CD-RW)、以及磁光盘、半导体器件,诸如只读存储器(ROM)、随机存取存储器(RAM),诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、可擦可编程只读存储器(EPROM)、闪存、电可擦可编程只读存储器(EEPROM)、相变存储器(PCM)、磁或光卡、或任意其他类型的适合用于存储电子指令的介质。
因此,本发明的各实施例还包括非瞬态的有形机器可读介质,该介质包含指令或包含设计数据,诸如硬件描述语言(HDL),它定义本文中描述的结构、电路、装置、处理器和/或系统特征。这些实施例也被称为程序产品。
在一些情况下,指令转换器可用来将指令从源指令集转换至目标指令集。例如,指令转换器可以变换(例如使用静态二进制变换、包括动态编译的动态二进制变换)、变形、仿真或以其他方式将指令转换成将由核来处理的一个或多个其他指令。指令转换器可以用软件、硬件、固件、或其组合实现。指令转换器可以在处理器上、在处理器外、或者部分在处理器上且部分在处理器外。
图7是根据本发明的各实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。在所示的实施例中,指令转换器是软件指令转换器,但作为替代,该指令转换器可以用软件、固件、硬件或其各种组合来实现。图7示出可以使用x86编译器704来编译利用高级语言702的程序,以生成可以由具有至少一个x86指令集核的处理器706原生执行的x86二进制代码706。具有至少一个x86指令集核的处理器716表示任何处理器,这些处理器能通过兼容地执行或以其他方式处理以下内容来执行与具有至少一个x86指令集核的英特尔处理器基本相同的功能:1)英特尔x86指令集核的指令集的本质部分,或2)目标为在具有至少一个x86指令集核的英特尔处理器上运行的应用或其他程序的目标代码版本,以便取得与具有至少一个x86指令集核的英特尔处理器基本相同的结果。x86编译器704表示用于生成x86二进制代码706(例如,目标代码)的编译器,该二进制代码706可通过或不通过附加的链接处理在具有至少一个x86指令集核的处理器716上执行。类似地,图7示出可以使用替代的指令集编译器708来编译利用高级语言702的程序,以生成可以由不具有至少一个x86指令集核的处理器714(例如具有执行加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集、和/或执行加利福尼亚州桑尼维尔市的ARM控股公司的ARM指令集的核的处理器)原生执行的替代指令集二进制代码710。指令转换器712被用来将x86二进制代码706转换成可以由不具有x86指令集核的处理器714原生执行的代码。该转换后的代码不大可能与替代性指令集二进制代码710相同,因为能够这样做的指令转换器难以制造;然而,转换后的代码将完成一般操作并由来自替代指令集的指令构成。因此,指令转换器712通过仿真、模拟或任何其他过程来表示允许不具有x86指令集处理器或核的处理器或其他电子设备执行x86二进制代码706的软件、固件、硬件或其组合。
用于针对增强型安全检查的页走查扩展的装置和方法
在此描述的本发明的实施例允许处理器(诸如中央处理单元(CPU))以页级别的粒度在常规OS提供的属性的顶部添加许可(permission)、属性(attribute)和校验(check),以便更精确地控制存储器页。在一个实施例中,这些许可、属性和校验由物理地址空间内的处理器管理并且被设置为4k页粒度。然而,应当注意,本发明的基本原理不限于任何具体页尺寸。
在一个实施例中,处理器自身管理物理地址空间内的属性和许可。除了设置许可之外,本发明的一个实施例提供高效机制,用于一旦尝试在页上执行操作(例如,读或写操作)就检查这些许可。然后,当处理器标识到违反时,处理器可采取动作。
在过去,范围(range)寄存器由处理器用于配置存储器范围。然而,范围寄存器是非常昂贵的资源并且在每页基础上设置许可和属性是效率低下的。
图8示出示例性处理器或核810,该处理器或核包括用执行指令的执行单元804、用于访问主存储器810(例如,随机存取存储器)的存储器管理单元(MMU)820,以及用于存储数据和地址以供执行单元804和MMU820使用的寄存器组801。如图8所示,本发明的一个实施例包括存储器内的表,在此被称为微架构保护表811(以下“保护表”),其包括用于每个受保护的页的表项(entry)。处理器内的保护表管理逻辑(PTM)830可执行在此描述的与保护表有关的各种操作,诸如响应于访问/修改页的尝试而检查许可、将表数据存储在一个或多个专用寄存器803中以及可能地修改保护表数据(例如,改变许可/属性)。
图9示出使用基值和偏移值访问的具有一个具体表项901的示例性保护表811。在一个实施例中,在硬件寄存器802中定义保护表基址并且表项的偏移是页物理地址(PA)的函数。该函数可包括标识PA的有待用于该偏移的某些位;然而,可采用PA的任何函数。如所示,表项901包含用于与其相关联的页的属性和/或许可信息。在一个实施例中,保护表811可仅由处理器810本身访问,或者更确切地,由处理器内的保护表管理逻辑(PTM)830访问,该逻辑可将从保护表811检索的数据存储在一个或多个专用寄存器803中。PTM 830还可响应于访问/修改页的尝试而检查该数据以便确定许可以及如果必要的话采取适当的行动。PTM 830还可潜在地修改该数据(例如,改变许可/属性)并且然后将结果存储回存储表811。
MMU 820也可包括用于高速缓存虚拟到物理地址转换的转换后备缓冲器(TLB)822以及用于响应于TLB未命中(即,当所需要的地址转换未存储在TLB 822中时)而从存储器810中的页表812访问地址转换的页未命中处理器821。例如,在一个实施例中,页未命中处理程序(PMH)821管理以下描述的用于访问页表811的页走查操作。
现在将描述示例性操作集合以便示出处理器/核810在存在页访问时可如何检查许可和属性。本发明的此实施例采用具有最小性能影响和最小附加硬件要求(即,这些技术的功率、面积和定时影响是可忽略不计的)的技术。确切地,在一个实施例中,现有的PMH821页走查有限状态机(FSM)被用于访问保护表811以及检查所访问的页的许可和属性。
PMH 821初始地保持是否应当访问表的指示。如果应当访问,则PMH 821执行架构页走查,如果需要的话包括中间EPT走查,直至走查完成并且与保护表项相关联的(平台)物理地址(PA)可供使用。在一个实施例中,如果要求保护表访问,PMH 821执行对表中的页表项的附加微架构填充加载。如所提及的,填充加载的地址是与偏移组合的表基(同时偏移是以上提及的PA的函数)。
在一个实施例中,从保护表811返回的数据被锁存在专用寄存器803中,以便防止PA或任何微架构属性的超控(overriding)。MMU 820可根据保护表项的内容计算访问是否合法。如果访问不合法,处理器可采取指定的行动。
在一个实施例中,TLB 822可将保护表项的某些属性/许可保持在新的专用位中。例如,如果表项包含写许可属性位(“W”),该位将被高速缓存在TLB 822中。结果是,如果页表项具有“W”=0(不允许写),对该页的加载将合法,但是命中TLB 822的稍后存储将不合法,并且CPU会将其标识为这样。
图10示出根据本发明的一个实施例由PMH 821执行的示例性扩展页走查(例如,由PMH的有限状态机执行)。该流程图示出“模式L”页走查,不带有中间EPT走查和小页(4K)的地址转换。可以为使用EPT走查并且使用更大页尺寸为其他页走查模式实现相同的基本原理(本领域技术人员可很好地理解)。当实现时,每种状态导致由附加转移箭头所连接的各种子状态。然而,未提供这些附加细节以避免混淆本发明的基本原理。
所示实现方式可使用通过四级分层分页结构将64位虚拟地址映射为物理地址的英特尔64分页模式(尽管虚拟或物理地址空间中所支持的位的实际数量可以是取决于实现方式的)。这种具体实现方式包括PML4页向量和页目录指针(PDP)页向量以便追踪在英特尔64分页结构中使用的附加页表。例如,PML4页中的每个表项可引用PDP页并且PDP页中的每个表项可引用具有页目录项(PDE)的页目录,其进而可引用页表项(PTE)。
因此,转向图10,在1001,进行页映射4级(PML4)填充(stuffed)加载操作。如本领域技术人员将理解的,“填充加载”用于访问页表并且与常规的数据加载不同。例如,它们不在保留站(RS)和重排序缓冲器(ROB)中分配,也不由RS和ROB分派和排序。以此方式,PMH821执行页表走查,而不引发与同RS和ROB所处理的常规加载相关联的指令解码、分派和执行相关联的任何延时,并且不阻塞或延迟执行流水线。
使用PML4填充加载的结果,在1002,执行页目录指针(PDP)填充加载操作以便标识和加载页目录。在1003,执行页目录项(PDE)填充加载操作以便标识并加载页表。在1004,执行页表项(PDE)填充加载操作以便从页表标识并加载PTE。在前述阶段中的每个阶段,PMH821使用线性地址的不同部分来计算对应的页信息。此外,在每个阶段,可将所检索的页信息高速缓存在专用高速缓存中以便在未来使用。而且,尽管针对小页(例如,4k页)进行了描述,可通过将大页分割为更小的页来为大页实现相同的基本原理。
在1005,确定是否需要对于保护表的访问。这可基于控制寄存器的内容或者具体地址位于指定的保护范围内的判定而确定。如果需要表访问,则根据从PTE检索的物理地址对保护表执行微架构填充加载。如所提及的,填充加载可致使将保护表数据加载到仅处理器810可访问的专用寄存器803中。最终,在1007,使用保护表数据来执行许可检查并且许可检查防止违反指定许可的操作被执行。例如,如果保护数据规定不可执行对具体页的写操作,并且进程尝试写该页,则处理器810将防止该写操作发生。可检查各种其他类型的许可同时仍符合本发明的基本原理。
不管是否需要表访问,在1008,发生重新分派(re-dispatch)并且进程返回空闲状态。在一个实施例中,如果需要表访问,则重新分派与1007处的许可检查操作同时发生。
本发明的各实施例可包括已经在以上描述的各种步骤。这些步骤可体现在可用于致使通用或专用处理器执行这些步骤的机器可执行指令中。可替代地,可由包含用于执行这些步骤的硬件逻辑的特定硬件组件或由编程计算机组件和定制硬件组件的任何组合来执行这些步骤。
如在此所描述的,指令可指硬件的特定配置(诸如被配置成用于执行特定操作或具有预定功能的专用集成电路(ASIC))或存储在体现在非瞬态计算机可读介质中的存储器内的软件指令。因此,可使用在一个或多个电子设备(例如,终端站、网络元件等等)上存储并执行的代码和数据实现在图示中示出的技术。这种电子设备使用计算机机器可读介质(诸如非瞬态计算机机器可读存储介质(例如,磁盘;光盘;随机存取存储器;只读存储器;闪存设备;相变存储器)和瞬态计算机机器可读通信介质(例如,电、光、声或其他形式的传播信号---诸如载波、红外信号、数字信号等等))存储并通信(通过网络内部地和/或使用其他电子设备)代码和数据。此外,这种电子设备通常包括耦合到一个或多个其他组件(诸如一个或多个存储设备(非瞬态机器可读存储介质)、用户输入/输出设备(例如,键盘、触摸屏和/或显示器)以及网络连接)的一个或多个处理器的集合。该处理器集合和其他组件的耦合通常通过一个或多个总线或网桥(也称为总线控制器)。携带网络流量的存储设备和信号分别表示一个或多个机器可读存储介质和机器可读通信介质。因此,给定电子设备的存储设备通常存储用于在该电子设备的该一个或多个处理器的集合上执行的代码和/或数据。当然,可使用软件、固件和/或硬件的不同组合实现本发明的实施例的一个或多个部分。贯穿本详细描述,为了解释的目的,列出了许多特定细节以便提供本发明的透彻理解。然而,对本领域普通技术人员将明显的是可在没有这些特定细节中的一些细节的情况下实践本发明。在某些情况下,未专门详细地描述公知的结构和功能以便避免模糊本发明的主题。相应地,应当仅在以下权利要求书的意义上判定本发明的范围和精神。

Claims (34)

1.一种处理器,包括:
用于管理保护表的保护表管理逻辑,所述保护表具有用于存储器内的每个受保护页或每组受保护页的表项;
其中所述保护表管理逻辑防止用户应用程序代码和操作系统程序代码对所述保护表的直接访问但是许可由所述处理器直接访问,其中由所述处理器进行的所述直接访问包括将数据从所述保护表加载到仅能由所述处理器访问的专用寄存器中。
2.如权利要求1所述的处理器,进一步包括:
基址寄存器,其用于存储所述保护表的基址。
3.如权利要求2所述的处理器,其中,通过将所述基址与偏移相组合来标识保护表表项,其中所述偏移是所述保护表表项与其相关联的受保护页的物理地址PA的函数。
4.如权利要求1所述的处理器,进一步包括:
页未命中处理程序PMH,其用于管理用于从所述存储器访问所述保护表的页走查操作。
5.如权利要求4所述的处理器,进一步包括:
转换后备缓冲器TLB,其用于在已经从所述存储器访问保护表表项之后存储所述表项的至少一部分。
6.如权利要求5所述的处理器,其中,所述TLB进一步存储与所述保护表表项相关联的虚拟到物理地址映射。
7.如权利要求1所述的处理器,其中,由所述保护表管理逻辑作出的许可指示不能以特定方式访问特定受保护的页,其中所述保护表管理逻辑在读取所述许可时防止进程以所述特定方式访问所述特定受保护的页。
8.如权利要求7所述的处理器,其中,所述特定方式包括所述特定受保护的页被写、所述特定受保护的页被读、所述特定受保护的页被执行、或者所述特定受保护的页的属性被超控。
9.如权利要求1所述的处理器,进一步包括:
专用页表数据寄存器,其用于存储由所述保护表管理逻辑所管理的页表数据。
10.一种用于计算机的方法,包括:
将保护表存储在存储器中,所述保护表具有用于所述存储器的每个受保护页或每组受保护页的表项;
防止用户应用程序代码或操作系统程序代码对所述保护表的直接访问;以及
允许处理器对所述保护表的直接访问,其中由所述处理器进行的所述直接访问包括将数据从所述保护表加载到仅能由所述处理器访问的专用寄存器中。
11.如权利要求10所述的方法,进一步包括:
将所述保护表的基址存储在基址寄存器中。
12.如权利要求11所述的方法,其中,通过将所述基址与偏移相组合来标识保护表表项,其中,所述偏移是所述保护表表项与其相关联的受保护页的物理地址PA的函数。
13.如权利要求10所述的方法,进一步包括:
使用页未命中处理程序PMH来管理用于从所述存储器访问所述保护表的页走查操作。
14.如权利要求13所述的方法,进一步包括:
在已经从所述存储器访问保护表表项之后将所述表项的至少一部分存储在转换后备缓冲器TLB中。
15.如权利要求14所述的方法,其中,所述TLB进一步存储与所述保护表表项相关联的虚拟到物理地址映射。
16.如权利要求10所述的方法,其中,由保护表管理逻辑作出的许可指示不能以特定方式访问特定受保护的页,其中,所述保护表管理逻辑在读取所述许可时防止进程以所述特定方式访问所述特定受保护的页。
17.如权利要求16所述的方法,其中,所述特定方式包括所述特定受保护的页被写、所述特定受保护的页被读、所述特定受保护的页被执行、或者所述特定受保护的页的属性被超控。
18.如权利要求10所述的方法,进一步包括:
将由所述处理器所管理的页表数据存储在专用页表数据寄存器中。
19.一种用于计算机的系统,包括:
用于存储保护表的存储器,所述保护表具有用于所述存储器内的每个受保护页或每组受保护页的表项;
处理器,包括:
保护表管理逻辑,其用于管理所述保护表;
其中所述保护表管理逻辑防止用户应用程序代码和操作系统程序代码对所述保护表的直接访问但是许可由所述处理器直接访问,其中由所述处理器进行的所述直接访问包括将数据从所述保护表加载到仅能由所述处理器访问的专用寄存器中。
20.如权利要求19所述的系统,进一步包括:
基址寄存器,其用于存储所述保护表的基址。
21.如权利要求20所述的系统,其中,通过将所述基址与偏移相组合来标识保护表表项,其中所述偏移是所述保护表表项与其相关联的受保护页的物理地址PA的函数。
22.如权利要求19所述的系统,进一步包括:
页未命中处理程序PMH,其用于管理用于从所述存储器访问所述保护表的页走查操作。
23.如权利要求22所述的系统,进一步包括:
转换后备缓冲器TLB,其用于在已经从所述存储器访问保护表表项之后存储所述表项的至少一部分。
24.如权利要求23所述的系统,其中,所述TLB进一步存储与所述保护表表项相关联的虚拟到物理地址映射。
25.一种机器可读介质,包括存储在所述机器可读介质上的多条指令,所述多条指令当被执行时使计算设备执行如权利要求10-18中任一项所述的方法。
26.一种用于计算机的设备,包括:
用于将保护表存储在存储器中的装置,所述保护表具有用于所述存储器的每个受保护页或每组受保护页的表项;
用于防止用户应用程序代码或操作系统程序代码对所述保护表的直接访问的装置;以及
用于允许处理器对所述保护表的直接访问的装置,其中由所述处理器进行的所述直接访问包括将数据从所述保护表加载到仅能由所述处理器访问的专用寄存器中。
27.如权利要求26所述的设备,进一步包括:
用于将所述保护表的基址存储在基址寄存器中的装置。
28.如权利要求27所述的设备,其中,通过将所述基址与偏移相组合来标识保护表表项,其中,所述偏移是所述保护表表项与其相关联的受保护页的物理地址PA的函数。
29.如权利要求26所述的设备,进一步包括:
用于使用页未命中处理程序PMH来管理用于从所述存储器访问所述保护表的页走查操作的装置。
30.如权利要求29所述的设备,进一步包括:
用于在已经从所述存储器访问保护表表项之后将所述表项的至少一部分存储在转换后备缓冲器TLB中的装置。
31.如权利要求30所述的设备,其中,所述TLB进一步存储与所述保护表表项相关联的虚拟到物理地址映射。
32.如权利要求26所述的设备,其中,由保护表管理逻辑作出的许可指示不能以特定方式访问特定受保护的页,其中,所述保护表管理逻辑在读取所述许可时防止进程以所述特定方式访问所述特定受保护的页。
33.如权利要求32所述的设备,其中,所述特定方式包括所述特定受保护的页被写、所述特定受保护的页被读、所述特定受保护的页被执行、或者所述特定受保护的页的属性被超控。
34.如权利要求26所述的设备,进一步包括:
用于将由所述处理器所管理的页表数据存储在专用页表数据寄存器中的装置。
CN201380062322.2A 2012-12-28 2013-06-24 用于针对增强型安全检查的页走查扩展的装置和方法 Active CN105027137B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/730,563 US9183161B2 (en) 2012-12-28 2012-12-28 Apparatus and method for page walk extension for enhanced security checks
US13/730,563 2012-12-28
PCT/US2013/047423 WO2014105167A1 (en) 2012-12-28 2013-06-24 Apparatus and method for page walk extension for enhanced security checks

Publications (2)

Publication Number Publication Date
CN105027137A CN105027137A (zh) 2015-11-04
CN105027137B true CN105027137B (zh) 2018-08-17

Family

ID=51018664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380062322.2A Active CN105027137B (zh) 2012-12-28 2013-06-24 用于针对增强型安全检查的页走查扩展的装置和方法

Country Status (3)

Country Link
US (1) US9183161B2 (zh)
CN (1) CN105027137B (zh)
WO (1) WO2014105167A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10255196B2 (en) 2015-12-22 2019-04-09 Intel Corporation Method and apparatus for sub-page write protection
US10114768B2 (en) * 2016-08-29 2018-10-30 Intel Corporation Enhance memory access permission based on per-page current privilege level
US10083129B2 (en) 2016-08-29 2018-09-25 Red Hat Israel, Ltd. Code loading hardening by hypervisor page table switching
US10528746B2 (en) * 2016-12-27 2020-01-07 Intel Corporation System, apparatus and method for trusted channel creation using execute-only code
US10866902B2 (en) * 2016-12-28 2020-12-15 Intel Corporation Memory aware reordered source
US10127159B1 (en) 2017-07-13 2018-11-13 International Business Machines Corporation Link consistency in a hierarchical TLB with concurrent table walks
GB2594062B (en) * 2020-04-14 2022-07-27 Advanced Risc Mach Ltd Data integrity check for granule protection data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1309351A (zh) * 2000-02-14 2001-08-22 株式会社东芝 抗干预微处理器
CN1156761C (zh) * 1999-06-30 2004-07-07 英特尔公司 使用基于区域的页表的虚拟存储映射
CN102129410A (zh) * 2005-03-31 2011-07-20 英特尔公司 提供扩展的存储器保护

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272832B2 (en) * 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
WO2004046916A2 (en) * 2002-11-18 2004-06-03 Arm Limited Exception types within a secure processing system
US20060075259A1 (en) * 2004-10-05 2006-04-06 Bajikar Sundeep M Method and system to generate a session key for a trusted channel within a computer system
US7577761B2 (en) 2005-08-31 2009-08-18 International Business Machines Corporation Out of user space I/O directly between a host system and a physical adapter using file based linear block address translation
US7500071B2 (en) 2005-08-31 2009-03-03 International Business Machines Corporation Method for out of user space I/O with server authentication
US7380049B2 (en) 2005-09-06 2008-05-27 Intel Corporation Memory protection within a virtual partition
US8380987B2 (en) * 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US8578483B2 (en) * 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
US8458791B2 (en) * 2010-08-18 2013-06-04 Southwest Research Institute Hardware-implemented hypervisor for root-of-trust monitoring and control of computer system
US20120110348A1 (en) * 2010-11-01 2012-05-03 International Business Machines Corporation Secure Page Tables in Multiprocessor Environments

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1156761C (zh) * 1999-06-30 2004-07-07 英特尔公司 使用基于区域的页表的虚拟存储映射
CN1309351A (zh) * 2000-02-14 2001-08-22 株式会社东芝 抗干预微处理器
CN102129410A (zh) * 2005-03-31 2011-07-20 英特尔公司 提供扩展的存储器保护

Also Published As

Publication number Publication date
US20140189274A1 (en) 2014-07-03
US9183161B2 (en) 2015-11-10
WO2014105167A1 (en) 2014-07-03
CN105027137A (zh) 2015-11-04

Similar Documents

Publication Publication Date Title
CN105320611B (zh) 用于细粒存储器保护的方法和设备
US10635593B2 (en) Create page locality in cache controller cache allocation
CN105027137B (zh) 用于针对增强型安全检查的页走查扩展的装置和方法
CN106716434B (zh) 具有独立的用户域与管理程序域的存储器保护密钥架构
CN104937568B (zh) 用于多页尺寸转换后备缓冲器(tlb)的装置和方法
CN108351830A (zh) 用于存储器损坏检测的硬件装置和方法
CN108268282A (zh) 用以检查和存储对存储器地址是否在持久存储器中的指示的处理器、方法、系统和指令
US9727475B2 (en) Method and apparatus for distributed snoop filtering
CN109690552A (zh) 用于判定是否将受保护容器页的加密副本加载到受保护容器存储器中的处理器、方法、系统和指令
CN104969178B (zh) 用于实现便笺式存储器的装置和方法
CN104246694B (zh) 聚集页错误信令和处理
CN106708753A (zh) 在使用共享虚拟存储器的处理器中加速操作的装置和方法
CN109564552A (zh) 增强基于每页当前特权等级的存储器访问许可
CN104025027B (zh) 结构访问处理器、方法、系统和指令
CN111752864A (zh) 在一个探查周期中并在可重新配置的子tlb中检查多个页尺寸的tlb的有效位
CN108710582A (zh) 用于基于局部性的指令处理的选择性启用的系统、设备和方法
US10437732B2 (en) Multi-level cache with associativity collision compensation
CN107624182A (zh) 用于选择性的检查针对可转换存储器的页的受保护容器页对常规页类型指示的多页检查提示
CN108292273A (zh) 用于子页写入保护的方法和装置
US20180285268A1 (en) Method and apparatus for reducing write congestion in non-volatile memory based last level caches
CN109661656A (zh) 用于利用条件所有权请求的智能存储操作的方法和装置
US20190171396A1 (en) Application driven hardware cache management
CN109313607A (zh) 用于利用所指示的检查位值来检查位的位检查处理器、方法、系统和指令
WO2018001528A1 (en) Apparatus and methods to manage memory side cache eviction
US20220414022A1 (en) Apparatus, system, and method for secure memory access control

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant