CN104969178B - 用于实现便笺式存储器的装置和方法 - Google Patents
用于实现便笺式存储器的装置和方法 Download PDFInfo
- Publication number
- CN104969178B CN104969178B CN201380062175.9A CN201380062175A CN104969178B CN 104969178 B CN104969178 B CN 104969178B CN 201380062175 A CN201380062175 A CN 201380062175A CN 104969178 B CN104969178 B CN 104969178B
- Authority
- CN
- China
- Prior art keywords
- priority
- page
- processor
- cache
- scratch
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种用于使用优先级提示在高速缓存内实现便笺式存储器的装置和方法。例如,根据一个实施例的方法包括:为使用高速缓存的部分实现的便笺式存储器提供优先级提示;基于该优先级提示确定页替换优先级;将该页替换优先级存储在与页相关联的页表项(PTE)中;以及使用该页替换优先级确定是否从该高速缓存逐出与该便笺式存储器相关联的一个或多个高速缓存行。
Description
背景
发明领域
本发明总体上涉及计算机处理器的领域。更确切地,本发明涉及一种用于实现便笺式存储器的装置和方法。
相关技术描述
便笺式存储器(scratchpad memory)是由应用程序手动控制的本地高速存储器。通过精确地控制去往和来自暂存器的数据移动,应用程序可最大化性能、利用率和能效。例如,IBM的Cell和NVIDIA的最近的CPU提供这种机制。
然而,由于高硬件成本和架构状态的大幅增加,有时通常通过调整高速缓存行替换策略(例如,诸如最少近期使用(LRU)策略)在基于高速缓存的存储器层次体系的顶部模拟便笺式存储器。例如,处理器将提供用户级指令以便直接调整高速缓存行的替换优先级,从而使得应用可有效地“钉住(pin)”高速缓存内的存储器区域。
然而,允许用户级代码直接修改高速缓存替换优先级暴露出公平性和安全性问题。例如,恶意代码可侵略性地将其高速缓存行标记为伪钉住的,从而导致共享高速缓存空间的不公平利用。此外,由于高速缓存替换优先级不是由操作系统维护的,优先级调整可能逃过(survive)上下文切换边界并且不适当地为不适当软件上下文赋予权限(即,被切换出的进程可仍暂居具有伪钉住行的高速缓存空间的大部分/全部)。
附图简要描述
可从以下详细描述结合以下附图获得本发明的更好的理解,在附图中:
图1A是框图,示出根据本发明的各实施例的示例性有序流水线以及示例性寄存器重命名的无序发布/执行流水线两者的框图;
图1B是示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图;
图2是根据本发明的各实施例的具有集成存储器控制器和图形器件的单核处理器和多核处理器的框图;
图3示出根据本发明的一个实施例的系统的框图;
图4示出根据本发明的一个实施例的第二系统的框图;
图5示出根据本发明的一个实施例的第三系统的框图;
图6示出根据本发明的实施例的片上系统(SoC)的框图;
图7示出框图,该框图根据本发明的各实施例的对比使用软件指令变换器将源指令集中的二进制指令变换成目标指令集中的二进制指令;
图8示出在高速缓存架构内实现的现有技术的便笺式存储器;
图9示出在本发明的一个实施例中采用的系统架构;
图10示出根据本发明的一个实施例的包括替换优先级字段的页表项;
图11示出根据本发明的一个实施例的方法。
详细描述
在以下描述中,为了解释的目的,列出了许多特定细节以便提供以下描述的本发明的各实施例的透彻理解。然而,本领域普通技术人员将认识到本发明的各实施例可在没有这些特定细节中的一些的情况下实践。在其他情况下,以框图的形式示出公知的结构和设备,以便避免混淆本发明的各实施例的基础原理。
示例性处理器架构和数据类型
图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耦合到GMCH390。或者,存储器和图形控制器中的一个或两者可以被集成在处理器内(如本文中所描述的),存储器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以及诸如可包括指令/代码和数据430的盘驱动器或其他大容量存储设备的存储单元428。此外,音频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)、诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)之类的随机存取存储器(RAM)、可擦除可编程只读存储器(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的软件、固件、硬件或其组合。
用于实现便笺式存储器的装置和方法
如图8所示,有时通常通过调整高速缓存行替换逻辑804所采用的高速缓存行替换策略(例如,诸如最少近期使用(LRU)策略)在基于高速缓存的存储器层次体系802的顶部模仿便笺式存储器803。例如,处理器/核810将提供用户级指令以便直接调整高速缓存行的替换优先级,从而使得用户应用800可有效地“钉住(pin)”高速缓存内的存储器区域。
然而,允许用户级代码直接修改高速缓存替换优先级暴露出公平性和安全性问题。例如,恶意代码可侵略性地将其高速缓存行标记为伪钉住的,从而导致共享高速缓存空间的不公平利用。此外,由于高速缓存替换优先级不是由操作系统维护的,优先级调整可能逃过上下文切换边界并且不适当地为不适当软件上下文赋予权限(即,被切换出的进程可能仍占据带有被伪钉住的行的高速缓存空间的大部分/全部)。
本发明的一个实施例采用软件/硬件协同设计方法来解决前述问题。具体地,操作系统用于实施公平的资源共享和访问控制,并且硬件用于加速。如图9所示,本发明的一个实施例包括用户应用编程接口(API)901、操作系统(OS)902和处理器/核微架构913内的组件。
在本实施例中,API 901暴露于用户应用900,从而使得用户可在页粒度(例如,每页一个提示)上给出替换优先级提示(hint)904。以下示出了用于提供替换优先级提示的示例C类型伪代码:
如伪代码中所指示的,为了在高速缓存的顶部实现便笺式存储器,用户可指定提示REPL_PRIORITY_HINT_SCRATCHPAD以便为暂存器实现指示优先级。还示出了与逐出策略、最少近期使用(LRU)和最多近期使用(MRU)有关的提示。因此,在此描述的用于便笺式存储器的相同优先级提示策略可用于在其他实现方式中指定优先级(例如,LRU=低优先级,MRU=高优先级等等)。
内在地,API 900将引起系统调用以便将优先级提示信息904传送到OS 902。可替代地,替换提示可用存储器分配请求来提供,其方式类似于应用请求大页的现有机制,并且应用必须准备好处理拒绝请求(例如,如果应用到达暂存器页的数量限制)。
为了确定实际的每页的替换优先级,OS 902的一个实施例包括替换优先级逻辑903,该逻辑将通过用户API 901传送的提示904与可从处理器/核微架构913确定的其他度量914(诸如硬件性能计数器和监控方案)进行组合。这种度量允许替换优先级逻辑903跟踪共享高速缓存使用以及调整每页的优先级以便允许公平的共享。在此意义上,通过用户API901提供的优先级信息904不是严格约束的。而是,其与其他可供使用的信息914结合使用以便得出(arrive at)每页907的替换优先级。
一旦已经确定实际替换优先级,OS 902的一个实施例将该信息记录为页表项(PTE)907中的单独的字段。图10示出对用于x86实现方式的PTE1000的示例修改。然而,应当注意,本发明的基本原理不限于x86架构。
如图9所示,在一个实施例中,存储在页表项中的替换优先级信息将被通过现有TLB重填(refill)机制加载到TLB 916中。所传送的优先级信息然后可由高速缓存行替换逻辑910用于以确定高速缓存集合911内的替换候选,包括高速缓存912的便笺式暂存部分(scratchpad portion)。在一个实施例中,然后与已经由高速缓存行替换策略910所维护的每行状态一起记录每页优先级信息。因此,当确定高速缓存行牺牲项(victim)时,高速缓存行替换逻辑910将每页和每高速缓存行优先级两者考虑在内并且相应地选择牺牲项。
图11中示出根据本发明的一个实施例的方法。在1101,提供一个或多个页的优先级提示(例如,经由如以上所描述的用户API)。在1102,优先级提示与其他度量(例如,硬件计数器、该页的高速缓存未命中率等等)组合以便得出该页的替换优先级。替换优先级然后被存储在用于页表中的那一页的PTE中。在1103,高速缓存行替换逻辑使用每页和每行优先级(或者其他每行变量)两者来标识牺牲项(即,有待被替换的高速缓存行)。在1104,使用标准高速缓存管理技术从高速缓存中移除所标识的牺牲项。
考虑了两个特定的实现方式,以下被标识为实现方式1和实现方式2。
实现方式1
1.无论何时高速缓存行被引入高速缓存911,从TLB 916检索该高速缓存行的相应的优先级信息。如果特定高速缓存级别不具有TLB(例如,L2高速缓存),优先级信息可通过高速缓存行请求消息从上级(例如,L1高速缓存)传播到下级。
2.然后与由替换策略所维护的每行状态一起记录所检索的每页优先级信息。
3.当需要确定要替换的牺牲项时,高速缓存行替换逻辑910所实现的替换算法将每页和每行优先级两者考虑在内并且相应地选择牺牲项。
4.为了防止在被切换出的进程中为高速缓存行维护高优先级,操作系统可在上下文切换时可任选地重置高速缓存内的优先级状态。当先前运行的上下文返回时,以上所描述的项目[1-3]将补充每页优先级信息。在替代的实施例中,当操作系统将进程切换出时,其系统地(systematically)将所有行从该进程所拥有的高优先级页清除掉(flush);当其将进程切换入时,其从所有高优先级页预取所有行。
实现方式2
1.对于具有TLB的高速缓存级别,无论何时需要替换高速缓存行,高速缓存访问TLB以便为给定集合中的每个高速缓存行检索相应的每页优先级信息。
2.替换逻辑确定有待逐出的高速缓存行。
3.操作系统可通过使用已经存在的TLB击落机制防止不正确的优先级赋予。如本领域技术人员将理解的,TLB击落将一组TLB查找转换清除掉。
本发明的各实施例可包括已经在以上描述的各种步骤。这些步骤可体现在可用于致使通用或专用处理器执行这些步骤的机器可执行指令中。可替代地,可由包含用于执行这些步骤的硬件逻辑的特定硬件组件或由编程计算机组件和定制硬件组件的任何组合来执行这些步骤。
如在此所描述的,指令可指硬件的特定配置(诸如被配置成用于执行特定操作或具有预定功能的专用集成电路(ASIC))或存储在体现在非瞬态计算机可读介质中的存储器内的软件指令。因此,可使用在一个或多个电子设备(例如,终端站、网络元件等等)上存储并执行的代码和数据实现在图示中示出的技术。这种电子设备使用计算机机器可读介质(诸如非瞬态计算机机器可读存储介质(例如,磁盘;光盘;随机存取存储器;只读存储器;闪存设备;相变存储器)和瞬态计算机机器可读通信介质(例如,电、光、声或其他形式的传播信号---诸如载波、红外信号、数字信号等等))存储并通信(通过网络内部地和/或使用其他电子设备)代码和数据。此外,这种电子设备通常包括耦合到一个或多个其他组件(诸如一个或多个存储设备(非瞬态机器可读存储介质)、用户输入/输出设备(例如,键盘、触摸屏和/或显示器)以及网络连接)的一个或多个处理器的集合。该处理器集合和其他组件的耦合通常通过一个或多个总线或网桥(也称为总线控制器)。携带网络流量的存储设备和信号分别表示一个或多个机器可读存储介质和机器可读通信介质。因此,给定电子设备的存储设备通常存储用于在该电子设备的该一个或多个处理器的集合上执行的代码和/或数据。当然,可使用软件、固件和/或硬件的不同组合实现本发明的实施例的一个或多个部分。贯穿本详细描述,为了解释的目的,列出了许多特定细节以便提供本发明的透彻理解。然而,对本领域普通技术人员将明显的是可在没有这些特定细节中的一些细节的情况下实践本发明。在某些情况下,未专门详细地描述公知的结构和功能以便避免模糊本发明的主题。相应地,应当仅在以下权利要求书的意义上判定本发明的范围和精神。
Claims (23)
1.一种用于实现便笺式存储器的方法,包括:
为使用高速缓存的部分实现的便笺式存储器提供优先级提示;
基于所述优先级提示确定页替换优先级;
将所述页替换优先级存储在与页相关联的页表项PTE中;以及
使用所述页替换优先级确定是否从所述高速缓存逐出与所述便笺式存储器相关联的一个或多个高速缓存行。
2.如权利要求1所述的方法,其中,使用所述页替换优先级包括将所述页替换优先级与每行状态信息进行组合以便确定是否逐出与所述便笺式存储器相关联的高速缓存行。
3.如权利要求2所述的方法,其中,所述每行状态信息包括每个高速缓存已被多么频繁地使用或多么近期地使用的指示。
4.如权利要求2所述的方法,其中,所述每行状态信息包括所述高速缓存行是最多近期使用MRU还是最少近期使用LRU高速缓存行的指示。
5.如权利要求1所述的方法,进一步包括:
将所述页替换优先级从所述PTE加载到转换后备缓冲器TLB;以及
从所述TLB读取所述页替换优先级。
6.如权利要求1所述的方法,其中,确定页替换优先级进一步包括将所述优先级提示与同页相关联的一个或多个使用度量进行组合以便得出页替换优先级。
7.如权利要求1所述的方法,其中,所述优先级提示是由使用所述便笺式存储器的用户应用生成的。
8.如权利要求1所述的方法,其中,所述优先级提示是使用将所述优先级提示提供给操作系统OS的系统调用生成的。
9.如权利要求1所述的方法,其中,所述优先级提示是用对操作系统OS的存储器分配请求而提供的。
10.如权利要求8所述的方法,其中,所述OS在存储器中维护存储所述PTE的页表。
11.一种处理器,包括:
便笺式存储器,其将使用高速缓存的部分来实现;
高速缓存行替换逻辑,其使用与所述便笺式存储器相关联的页替换优先级确定是否从所述高速缓存逐出与所述便笺式存储器相关联的一个或多个高速缓存行,所述页替换优先级是基于优先级提示确定的。
12.如权利要求11所述的处理器,其中,使用所述页替换优先级包括将所述页替换优先级与每行状态信息进行组合以便确定是否逐出与所述便笺式存储器相关联的高速缓存行。
13.如权利要求12所述的处理器,其中,所述每行状态信息包括每个高速缓存已被多么频繁地使用或多么近期地使用的指示。
14.如权利要求12所述的处理器,其中,所述每行状态信息包括所述高速缓存行是最多近期使用MRU还是最少近期使用LRU高速缓存行的指示。
15.如权利要求11所述的处理器,进一步包括:
转换后备缓冲器TLB,用于存储所述页替换逻辑;
所述高速缓存行替换逻辑,用于从所述TLB读所述页替换优先级。
16.如权利要求11所述的处理器,进一步包括用于通过将所述优先级提示与同页相关联的一个或多个使用度量进行组合以便得出页替换优先级来确定所述页替换优先级的程序代码。
17.如权利要求11所述的处理器,其中,所述优先级提示是由使用所述便笺式存储器的用户应用生成的。
18.如权利要求11所述的处理器,其中,所述优先级提示是使用将所述优先级提示提供给操作系统OS的系统调用生成的。
19.如权利要求11所述的处理器,其中,所述优先级提示是用对操作系统OS的存储器分配请求而提供的。
20.如权利要求18所述的处理器,其中,所述页替换优先级被存储在页表项PTE中,所述OS在存储器中维护存储所述PTE的页表。
21.一种用于实现便笺式存储器的系统,包括:
便笺式存储器,其将使用高速缓存的部分来实现;
应用编程接口API,其用于向所述便笺式存储器提供优先级提示;
操作系统OS,其用于基于所述优先级提示确定页替换优先级,以及用于将所述页替换优先级存储在与页相关联的页表项PTE中;以及
高速缓存行替换逻辑,其使用所述页替换优先级确定是否从所述高速缓存逐出与所述便笺式存储器相关联的一个或多个高速缓存行。
22.一种具有指令的计算机可读存储介质,所述指令在被执行时使机器执行如权利要求1-10的任一项所述的方法。
23.一种计算机系统,包括用于执行如权利要求1-10的任一项所述的方法的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/730,507 US9158702B2 (en) | 2012-12-28 | 2012-12-28 | Apparatus and method for implementing a scratchpad memory using priority hint |
US13/730,507 | 2012-12-28 | ||
PCT/US2013/047374 WO2014105163A1 (en) | 2012-12-28 | 2013-06-24 | Apparatus and method for implementing a scratchpad memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104969178A CN104969178A (zh) | 2015-10-07 |
CN104969178B true CN104969178B (zh) | 2018-10-12 |
Family
ID=51018642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380062175.9A Expired - Fee Related CN104969178B (zh) | 2012-12-28 | 2013-06-24 | 用于实现便笺式存储器的装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9158702B2 (zh) |
CN (1) | CN104969178B (zh) |
WO (1) | WO2014105163A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI518585B (zh) | 2015-05-18 | 2016-01-21 | 國立成功大學 | 具有草稿式記憶體的電子裝置與草稿式記憶體的管理方法 |
US10268586B2 (en) * | 2015-12-08 | 2019-04-23 | Via Alliance Semiconductor Co., Ltd. | Processor with programmable prefetcher operable to generate at least one prefetch address based on load requests |
US10482021B2 (en) * | 2016-06-24 | 2019-11-19 | Qualcomm Incorporated | Priority-based storage and access of compressed memory lines in memory in a processor-based system |
TWI621021B (zh) * | 2017-08-25 | 2018-04-11 | 慧榮科技股份有限公司 | 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 |
CN108089998A (zh) * | 2017-12-13 | 2018-05-29 | 郑州云海信息技术有限公司 | 一种Linux分页替换方法及系统 |
US10545874B2 (en) * | 2018-02-20 | 2020-01-28 | Sap Se | Reclamation of cache resources |
US20200401412A1 (en) * | 2019-06-24 | 2020-12-24 | Intel Corporation | Hardware support for dual-memory atomic operations |
US11755498B2 (en) * | 2020-04-06 | 2023-09-12 | Qualcomm Incorporated | Emulating scratchpad functionality using caches in processor-based devices |
CN113608698B (zh) * | 2021-08-05 | 2024-02-23 | 上海理工大学 | 一种基于DRAM牺牲Cache的异构内存页迁移系统及方法 |
CN113904997B (zh) * | 2021-10-21 | 2024-02-23 | 烽火通信科技股份有限公司 | 交换芯片接收端多优先级业务缓存和调度的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7373451B2 (en) * | 2003-12-08 | 2008-05-13 | The Board Of Trustees Of The Leland Stanford Junior University | Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers |
CN101256480A (zh) * | 2007-02-28 | 2008-09-03 | 欧蜀平 | 一种能够标记存储器中某些位置的处理器 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5055999A (en) | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
US6490654B2 (en) | 1998-07-31 | 2002-12-03 | Hewlett-Packard Company | Method and apparatus for replacing cache lines in a cache memory |
JP3495266B2 (ja) | 1998-11-13 | 2004-02-09 | Necエレクトロニクス株式会社 | キャッシュロック装置及びキャッシュロック方法 |
US6662173B1 (en) | 1998-12-31 | 2003-12-09 | Intel Corporation | Access control of a resource shared between components |
US6393525B1 (en) | 1999-05-18 | 2002-05-21 | Intel Corporation | Least recently used replacement method with protection |
US6748492B1 (en) | 2000-08-07 | 2004-06-08 | Broadcom Corporation | Deterministic setting of replacement policy in a cache through way selection |
US20020116582A1 (en) * | 2000-12-18 | 2002-08-22 | Copeland George P. | Batching of invalidations and new values in a web cache with dynamic content |
US7080210B2 (en) | 2002-02-12 | 2006-07-18 | Ip-First, Llc | Microprocessor apparatus and method for exclusive prefetch of a cache line from memory |
US6996678B1 (en) | 2002-07-31 | 2006-02-07 | Cisco Technology, Inc. | Method and apparatus for randomized cache entry replacement |
US7032076B2 (en) | 2002-09-16 | 2006-04-18 | Intel Corporation | Prefetching data in a computer system |
US6901483B2 (en) | 2002-10-24 | 2005-05-31 | International Business Machines Corporation | Prioritizing and locking removed and subsequently reloaded cache lines |
US7177985B1 (en) | 2003-05-30 | 2007-02-13 | Mips Technologies, Inc. | Microprocessor with improved data stream prefetching |
US7010649B2 (en) | 2003-10-14 | 2006-03-07 | International Business Machines Corporation | Performance of a cache by including a tag that stores an indication of a previously requested address by the processor not stored in the cache |
US7562179B2 (en) | 2004-07-30 | 2009-07-14 | Intel Corporation | Maintaining processor resources during architectural events |
US8127088B2 (en) * | 2005-01-27 | 2012-02-28 | Hewlett-Packard Development Company, L.P. | Intelligent cache management |
US7366887B2 (en) | 2005-07-11 | 2008-04-29 | Lenovo (Singapore) Pte. Ltd. | System and method for loading programs from HDD independent of operating system |
US8225297B2 (en) | 2005-12-07 | 2012-07-17 | Microsoft Corporation | Cache metadata identifiers for isolation and sharing |
US7757045B2 (en) | 2006-03-13 | 2010-07-13 | Intel Corporation | Synchronizing recency information in an inclusive cache hierarchy |
US7788206B2 (en) * | 2007-04-30 | 2010-08-31 | Lsi Corporation | State machine compression using multi-character state transition instructions |
TW200849087A (en) | 2007-06-01 | 2008-12-16 | Holtek Semiconductor Inc | Method of accelerating the excution of repeatative commands and its micro controller |
US7991956B2 (en) | 2007-06-27 | 2011-08-02 | Intel Corporation | Providing application-level information for use in cache management |
JP4864840B2 (ja) | 2007-08-31 | 2012-02-01 | 株式会社東芝 | マイクロプロセッサ |
US7958314B2 (en) * | 2007-12-18 | 2011-06-07 | International Business Machines Corporation | Target computer processor unit (CPU) determination during cache injection using input/output I/O) hub/chipset resources |
US8108614B2 (en) | 2007-12-31 | 2012-01-31 | Eric Sprangle | Mechanism for effectively caching streaming and non-streaming data patterns |
US8464000B2 (en) | 2008-02-29 | 2013-06-11 | Qualcomm Incorporated | Systems and methods for cache line replacements |
US8635603B2 (en) | 2008-10-21 | 2014-01-21 | International Business Machines Corporation | Handling debugger breakpoints in a shared instruction system |
US8131931B1 (en) | 2008-10-22 | 2012-03-06 | Nvidia Corporation | Configurable cache occupancy policy |
US9086973B2 (en) | 2009-06-09 | 2015-07-21 | Hyperion Core, Inc. | System and method for a cache in a multi-core processor |
US8990506B2 (en) | 2009-12-16 | 2015-03-24 | Intel Corporation | Replacing cache lines in a cache memory based at least in part on cache coherency state information |
US9189403B2 (en) | 2009-12-30 | 2015-11-17 | International Business Machines Corporation | Selective cache-to-cache lateral castouts |
US8380703B2 (en) * | 2010-07-26 | 2013-02-19 | International Business Machines Corporation | Feedback loop between a query optimizer and a cache manager |
US8943340B2 (en) | 2011-10-31 | 2015-01-27 | Intel Corporation | Controlling a turbo mode frequency of a processor |
US9189423B2 (en) | 2011-12-06 | 2015-11-17 | Advanced Micro Devices, Inc. | Method and apparatus for controlling cache refills |
US9176885B2 (en) * | 2012-01-23 | 2015-11-03 | International Business Machines Corporation | Combined cache inject and lock operation |
US10019381B2 (en) | 2012-05-01 | 2018-07-10 | Nvidia Corporation | Cache control to reduce transaction roll back |
-
2012
- 2012-12-28 US US13/730,507 patent/US9158702B2/en not_active Expired - Fee Related
-
2013
- 2013-06-24 CN CN201380062175.9A patent/CN104969178B/zh not_active Expired - Fee Related
- 2013-06-24 WO PCT/US2013/047374 patent/WO2014105163A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7373451B2 (en) * | 2003-12-08 | 2008-05-13 | The Board Of Trustees Of The Leland Stanford Junior University | Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers |
CN101256480A (zh) * | 2007-02-28 | 2008-09-03 | 欧蜀平 | 一种能够标记存储器中某些位置的处理器 |
Also Published As
Publication number | Publication date |
---|---|
WO2014105163A1 (en) | 2014-07-03 |
CN104969178A (zh) | 2015-10-07 |
US20140189247A1 (en) | 2014-07-03 |
US9158702B2 (en) | 2015-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104969178B (zh) | 用于实现便笺式存储器的装置和方法 | |
US10635593B2 (en) | Create page locality in cache controller cache allocation | |
CN104204990B (zh) | 在使用共享虚拟存储器的处理器中加速操作的装置和方法 | |
CN104603795B (zh) | 实现用户级线程的即时上下文切换的指令和微架构 | |
CN105453041B (zh) | 用于高速缓存占据确定和指令调度的方法和装置 | |
US9727475B2 (en) | Method and apparatus for distributed snoop filtering | |
US10776270B2 (en) | Memory-efficient last level cache architecture | |
CN104937568B (zh) | 用于多页尺寸转换后备缓冲器(tlb)的装置和方法 | |
CN104823172B (zh) | 实时指令跟踪处理器、方法以及系统 | |
CN106716434A (zh) | 具有独立的用户域与管理程序域的存储器保护密钥架构 | |
CN105027137B (zh) | 用于针对增强型安全检查的页走查扩展的装置和方法 | |
CN104969182A (zh) | 高动态范围软件-透明异构计算元件处理器、方法及系统 | |
CN108351834A (zh) | 用于针对核到核数据传送优化指令减少性能逆转的低开销硬件预测器 | |
CN107209723A (zh) | 用于虚拟化的细粒度地址重新映射 | |
US20170024213A1 (en) | Method and apparatus for implementing dynamic portbinding within a reservation station | |
US20180285268A1 (en) | Method and apparatus for reducing write congestion in non-volatile memory based last level caches | |
US10664199B2 (en) | Application driven hardware cache management | |
US11531562B2 (en) | Systems, methods, and apparatuses for resource monitoring | |
CN109661656A (zh) | 用于利用条件所有权请求的智能存储操作的方法和装置 | |
CN108228241A (zh) | 用于在处理器中进行动态概况分析的系统、装置和方法 | |
Ausavarungnirun | Techniques for shared resource management in systems with throughput processors | |
US20190286567A1 (en) | System, Apparatus And Method For Adaptively Buffering Write Data In A Cache Memory | |
US20220197797A1 (en) | Dynamic inclusive last level cache |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181012 Termination date: 20190624 |
|
CF01 | Termination of patent right due to non-payment of annual fee |