CN102117247A - 用于一系列页面的高速缓存刷新和一系列条目的tlb无效的系统、方法和设备 - Google Patents
用于一系列页面的高速缓存刷新和一系列条目的tlb无效的系统、方法和设备 Download PDFInfo
- Publication number
- CN102117247A CN102117247A CN2010106154946A CN201010615494A CN102117247A CN 102117247 A CN102117247 A CN 102117247A CN 2010106154946 A CN2010106154946 A CN 2010106154946A CN 201010615494 A CN201010615494 A CN 201010615494A CN 102117247 A CN102117247 A CN 102117247A
- Authority
- CN
- China
- Prior art keywords
- instruction
- register
- invalid
- subclauses
- tlb
- 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
Links
Images
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
-
- 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
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/683—Invalidation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
描述用于执行多个高速缓存线的刷新和/或多个转换后备缓冲器(TLB)条目的无效的系统、方法和设备。在一种这样的方法中,为了刷新处理器的多个高速缓存线,单个指令包括指示将要刷新处理器的多个高速缓存线的第一字段,并且响应单个指令,刷新处理器的多个高速缓存线。
Description
技术领域
一般来说,本发明的实施例涉及信息处理领域,更具体来说,涉及高速缓存和转换后备(TLB)维护的领域。
背景技术
高速缓冲存储器装置是一种小型快速存储器,它可用于包含来自较大的更慢存储器的最经常访问数据。随机存取存储器(RAM)以较低成本来提供大量存储容量。不幸的是,对RAM的存取相对现代微处理器的处理速度是很慢的。虽然高速缓冲存储器的存储容量可能比较小,但它提供对其中所存储数据的高速访问。
高速缓存按照各种方式来管理,使得它存储在给定时间最可能需要的指令、转换或数据。当高速缓存被访问并且包含所请求数据时,发生高速缓存“命中”。否则,如果高速缓存没有包含所请求数据,则发生高速缓存“未命中”。因此,通常管理高速缓存内容而试图使高速缓存命中-未命中比率为最大。
作为维护(maintenance)实践的一部分,装置和操作系统希望从高速缓存刷新(flush)数据页面以及从TLB刷新条目。
发明内容
本发明提供了一种用于刷新处理器的多个高速缓存线的方法,包括下列步骤:接收单个指令,其中包括指示将要刷新所述处理器的所述多个高速缓存线的第一字段;以及响应所述单个指令,刷新所述处理器的所述多个高速缓存线。
本发明还提供了一种用于使多个转换后备缓冲器(TLB)条目无效的方法,包括下列步骤:接收单个指令,其中包括指示将要无效的多个TLB条目的第一字段;以及响应所述单个指令,使所述多个TLB条目无效。
此外,本发明还提供了一种设备,包括:存储作为高速缓存线的数据的高速缓存;对第一指令进行解码的解码电路,其中所述第一指令包括指示将要刷新所述高速缓存的多个高速缓存线的第一字段;以及刷新由经解码的第一指令所指示的所述多个高速缓存线的运行电路。
附图说明
在附图中作为示例而不是限制来示出本发明的实施例,并且其中,相似的参考标号表示相似的元件,附图包括:
图1描述支持一系列高速缓存线(cache line)的高速缓存刷新和/或一系列TLB条目的无效(invalidation)的处理器核心的一个实施例。
图2示出REP CLFLUSH指令的若干示范实施例。
图3是处理REP CLFLUSH指令的实施例的方法的一个实施例的方块流程图。
图4示出REP CLFLUSH(重复高速缓存线刷新)指令运行的实施例。
图5示出REP INVLPG指令的若干示范实施例。
图6是处理REP INVLPG指令的实施例的方法的一个实施例的方块流程图。
图7示出REP INVLPG指令运行的实施例。
图8是适当计算机系统的一个示例实施例的框图。
图9是适当计算机系统的一个示例实施例的框图。
图10是根据本发明的一个实施例的系统的框图。
图11是根据本发明的一个实施例的系统的框图。
图12是根据本发明的一个实施例的系统的框图。
具体实施方式
一种刷新高速缓存线的技术可与线性或虚拟存储器地址关联。在运行时,该技术从相干域(coherency domain)中的所有高速缓存刷新与操作数关联的高速缓存线。例如,在多处理器环境中,根据处理器状态,从系统的所有微处理器中的所有高速缓存分层级(cache hierarchy level)(即相干域)刷新指定高速缓存线。MESI(修改、独占、共享、无效)协议、写无效协议为每一个高速缓存线提供由两个MESI位来管理的四种状态其中之一。四种状态还标识高速缓存线的四种可能状态。如果处理器处于“独占”或“共享”状态,则刷新相当于使高速缓存线无效。当处理器处于“修改”状态时,另一个示例成立。如果高速缓存控制器实现回写(write-back)策略,并且对于高速缓存命中仅把来自处理器的数据写到其高速缓存,则高速缓存线内容必须传递给主存储器,并且使高速缓存线无效。另外,一些实施例使用MESI和MOESI协议以及GOLS子协议。
示范处理器核心
图1描述支持一系列高速缓存线的高速缓存刷新和/或一系列TLB条目的无效的处理器核心的一个实施例。这个实施例不一定示出包含在处理器核心中的所有方面,以免影响对本发明的实施例的描述的理解。处理器核心101包括取出指令供核心101运行的取单元103。指令可从例如高速缓存、主存储器、硬盘等任何存储装置取出。处理器核心101还包括对取出指令进行解码的解码单元105。下面描述的指令由这个单元来解码。在一个实施例中,解码单元105将取出指令解码成一个或多个μop(微操作)。指令到μop的映射可在微码逻辑121中体现(embody)。
在一些实施例中,处理核心101包括调度单元107。调度单元107执行与存储解码指令(例如从解码单元105所接收)关联的各种操作,直到指令准备分发,例如直到解码指令的所有源值变为可用。在一个实施例中,调度单元105调度和/或向一个或多个运行单元109发出(分发)解码指令供运行。运行单元105可包括浮点功能单元、ALU功能单元、存储器功能单元、分支功能单元等的一个或多个。这些功能单元运行解码指令(例如由解码单元105解码和/或(例如由调度单元107)分发的那些指令)。此外,在一些实施例中,运行单元109无序地运行指令。因此,在那些实施例中,处理器核心101是无序处理器核心。在其它实施例中,运行单元109有序地运行指令。在那些实施例中,处理器核心101是有序处理器核心。
处理器核心101还可包括退出单元(retirement unit)111。退出单元111在提交运行指令之后退出运行指令。在一些实施例中,运行指令的退出引起处理器状态根据指令的运行而被提交、由指令所使用的物理寄存器被解除分配等等。
处理器核心还包括寄存器113。这些寄存器可包括典型的x86寄存器,例如通用(例如EAX、EBC、ECX、EDX)、段(例如CS、DS、ES、FS、GS、SS)、索引和指针(例如ESI、EDI、EBP、EIP、ESP)和指示寄存器(例如EFLAGS)等等。
处理器核心101还可包括高速缓存119。这个高速缓存可包括一个或多个等级。高速缓存逻辑123通过执行各种操作来维护高速缓存119。在一些实施例中,高速缓存逻辑123包括用于执行稍后描述的方法的实施例的一个或多个状态机。
最后,处理器还可包括转换后备缓冲器(TLB)115。TLB 115具有固定数量的槽(slot),它们包含将虚拟地址映射到物理地址的页表条目。
上述单元和逻辑可以是电路和/或软件的任何组合。
重复高速缓存线刷新
由上述处理器核心所运行的高速缓存线刷新(CLFLUSH)指令使包含采用来自所有处理器高速缓存分层级的源操作数(数据和指令)所指定的线性地址的单个高速缓存线无效。在整个高速缓存相干域广播该无效。如果在任何高速缓存分层级,线与存储器不一致(脏),则在无效之前将它写到存储器。源操作数是字节存储器位置(location)。
CLFLUSH指令可在所有特许级使用,并且经受与字节负荷关联的所有许可检查和故障,除了被允许到仅运行段的CLFLUSH之外( The CLFLUSH instruction may be used at all privilege levels and is subject to all permission checkin
图2(b)示出包括操作码和显式计数器值的REP CLFLUSH指令。在一些实施例中,计数器值是立即值,而在其它实施例中,它存储在寄存器中。对于这个指令,隐式引用待刷新的线的起始地址。例如,在一些实施例中,起始地址存储在segment:offset对、如ES:ESI寄存器对中。当然,这只是一个示例,并且可利用任何寄存器,包括但不限于:1)段寄存器CS、DS、ES、FS、SS和GS的任一个;2)通用寄存器EAX(累加器)、EBX(基址寄存器)、ECX(计数寄存器)、EDX(数据寄存器)、ESI(源索引)、EDI(目的地索引)、EBP(基址指针)、ESP(栈指针);以及它们的组合。
图2(c)示出包括操作码和显式起始地址的REP CLFLUSH指令。对于这个指令,隐式引用待刷新的线的数量。例如,在一些实施例中,计数器存储在通用寄存器、如ECX寄存器中。当然,这只是一个示例,并且可利用其它寄存器。
图2(d)示出包括操作码、显式计数器值和显式起始地址的REPCLFLUSH指令。
图3是处理REP CLFLUSH指令的实施例的方法的一个实施例的方块流程图。在各个实施例中,该方法可由通用处理器、专用处理器(例如图形处理器或数字信号处理器)、硬件加速器(例如密码加速器)或者另一种类型的逻辑装置或指令处理设备来执行。
在301,在处理器或者其它指令处理设备接收REP CLFLUSH指令。在一个或多个实施例中,REP CLFLUSH指令指示起始高速缓存线地址和表示要刷新的高速缓存线数量的值。在一些实施例中,显式地随REP CLFLUSH指令包含起始高速缓存线地址和表示要刷新的高速缓存线数量的值中的至少一个。
在303,响应接收到该指令,处理器刷新由REP CLFLUSH指令所指示的高速缓存线。
图4示出REP CLFLUSH(重复高速缓存线刷新)指令运行方法的实施例。在401,加载计数器值和高速缓存线地址。计数器值设置为待刷新的线的数量。高速缓存线地址标记待刷新高速缓存线范围的那个开始。例如,在一些实施例中,ES:ESI加载有起始地址,而ECX加载有计数器值。
在REP CLFLUSH指令包括如上所述的计数器和/或寻址的显式操作数的其它实施例中,在401的加载可以是不同的。例如,如果REPCLFLUSH包括计数器的立即值,则寄存器在REP CLFLUSH指令的解码之前没有加载有那个计数器值。
在403,应用程序或操作系统(OS)通过要求(call for)REP CLFLUSH指令的运行来请求刷新一系列高速缓存线。这个指令至少被取出、解码和运行。
在一些实施例中,在405,调用微码以便将这个指令转换成μop。这个μop存储在微码、如微码121中。在其它实施例中,在405调用状态机以执行这个指令,例如高速缓存逻辑123的状态机111。根据处理器核心实现,指令的运行可由运行单元109或高速缓存逻辑123来执行。
在407,刷新与(在REP CLFLUSH指令的解码之前加载或者结合那个解码引用的)高速缓存线地址关联的高速缓存线。例如,刷新在ES:ESI的高速缓存线。
在409,使计数器值递减(decrement)。在一个实施例中,这个计数器存储在ECX寄存器中,并且使这个寄存器递减。
在411,进行关于计数器值是否为0的确定。如果计数器值不为0,则在413,确定待刷新的下一条线的高速缓存线地址。在一些实施例中,这通过将固定大小(例如64位)加上刚被刷新的高速缓存线的地址的前一个高速缓存线大小来进行。在其它实施例中,从刚被刷新的高速缓存线的地址的前一个高速缓存线大小中减去固定大小(例如64位)。在407,刷新那个高速缓存线。
如果计数器值为0,则已经刷新整个高速缓存线范围,并且可退出指令。
虽然以上描述使计数器值递减,但在其它实施例中,可使计数器增加,并且将它与预设值进行比较,以便确定是否已经刷新正确数量的线。
重复无效页表条目
由上述处理器核心所运行的无效TLB条目(INVLPG,invalidate TLB entry)指令使采用源操作数所指定的转换后备缓冲器(TLB)条目无效。源操作数是存储器地址。处理器核心确定包含那个地址的页面,并且刷新那个页面的TLB条目。
下面描述重复无效TLB条目(REP INVLPG)指令。这个指令使处理器核心101使多个TLB条目无效。图5示出REP INVLPG指令的若干示范实施例。图5(a)示出仅具有一个操作码的REP INVLPG指令。对于这个指令,隐式引用待无效的TLB条目的数量和至少起始地址。例如,在一些实施例中,起始地址存储在segment:offset对、如DS:EDI寄存器对中,并且计数器(条目数量)存储在通用寄存器、如ECX寄存器中。当然,这只是一个示例,并且可利用任何寄存器,包括但不限于:1)段寄存器CS、DS、ES、FS、SS和GS的任一个;2)通用寄存器EAX(累加器)、EBX(基址寄存器)、ECX(计数寄存器)、EDX(数据寄存器)、ESI(源索引)、EDI(目的地索引)、EBP(基址指针)、ESP(栈指针);以及它们的组合。
图5(b)示出包括操作码和显式计数器值的REP INVLPG指令。在一些实施例中,计数器值是立即值,而在其它实施例中,它存储在寄存器中。对于这个指令,隐式引用待无效的条目的起始地址。例如,在一些实施例中,起始地址存储在segment:offset对、如DS:EDI寄存器对中。当然,这只是一个示例,并且可利用其它寄存器。
图5(c)示出包括操作码和显式起始地址的REP INVLPG指令。对于这个指令,隐式引用待无效的条目的数量。例如,在一些实施例中,计数器存储在通用寄存器、如ECX寄存器中。当然,这只是一个示例,并且可利用其它寄存器。
图5(d)示出包括操作码、显式计数器值和显式起始地址的REPINVLPG指令。
图3是处理REP INVLPG指令的实施例的方法的一个实施例的方块流程图。在各个实施例中,该方法可由通用处理器、专用处理器(例如图形处理器或数字信号处理器)、硬件加速器(例如密码加速器)或者另一种类型的逻辑装置或指令处理设备来执行。
在601,在处理器或者其它指令处理设备接收REP INVLPG指令。在一个或多个实施例中,REP INVLPG指令指示起始TLB条目地址和表示要无效的TLB条目数量的值。在一些实施例中,显式地随REPINVLPG指令包含起始TLB条目地址和表示要无效的TLB条目数量的值中的至少一个。
在603,响应接收到该指令,处理器使REP INVLPG指令所指示的TLB条目无效。
图7示出REP INVLPG指令运行的实施例。在701,加载计数器值和TLB条目地址。计数器值设置为待无效的条目的数量。该地址标记待无效的条目范围的开始。例如,在一些实施例中,DS:EDI加载有起始地址,而ECX加载有计数器值。
在REP INVLPG指令包括如上所述的计数器和/或寻址的显式操作数的其它实施例中,在401的加载可以是不同的。例如,如果REPINVLPG包括计数器的立即值,则寄存器在REP INVLPG指令的解码之前没有加载有那个计数器值。
在703,操作系统(OS)通过要求REP INVLPG指令的运行来请求使一系列TLB条目无效。这个指令至少被取出、解码和运行。
在一些实施例中,在705,调用微码以便将这个指令转换成μop。这个μop存储在微码、如微码121中。在其它实施例中,在705调用状态机以执行这个指令,例如TLB的状态机。根据处理器核心实现,指令的运行可由运行单元109或TLB来执行。
在一些实施例中,REP INVLPG指令是特许指令。当处理器正运行于保护模式时,程序或过程的CPL必须为0,以便运行这个指令。在那些实施例中,在707,进行关于处理器的当前特许等级(CPL)是否为0的确定。如果CPL不为0,则在709,发信号通知关于REP INVLPG不合法,并且没有TLB条目被无效。
在711,使与(在REP INVLPG指令的解码之前加载或者结合那个解码引用的)TLB条目地址关联的TLB条目无效。例如,刷新在DS:EDI的高速缓存线。
在711,使计数器值递减。在一个实施例中,这个计数器存储在ECX寄存器中,并且使这个寄存器递减。
在715,进行关于计数器值是否为0的确定。如果计数器值不为0,则在717,确定待无效的TLB条目。在一些实施例中,这通过将固定页面大小(例如4k/2M/1GB)加入刚无效的TLB条目的前一个地址来进行。在其它实施例中,从刚无效的TLB条目的前一个地址中减去固定页面大小(例如4k/2M/1GB)。在711,使那个TLB条目无效。
如果计数器值为0,则已经刷新整个高速缓存线范围,并且可退出指令。
虽然以上描述使计数器值递减,但在其它实施例中,可使计数器增加,并且将它与预设值进行比较,以便确定是否已使正确数量的条目无效。
示范系统
图8是适当计算机系统801的一个示例实施例的框图。计算机系统包括处理器800。处理器包括至少一个运行单元806,它能够运行上述指令802的至少一个。
处理器经由总线(例如前端总线)或者其它互连880耦合到芯片组881。互连可用于经由芯片组在处理器与系统中的其它组件之间传送数据信号。
芯片组包括称作存储控制器集线器(MCH)882的系统逻辑芯片。MCH耦合到前端总线或其它互连880。
存储器886耦合到MCH。在各个实施例中,存储器可包括随机存取存储器(RAM)。DRAM是在部分但并非全部计算机系统中使用的一种类型的RAM的一个示例。如图所示,存储器可用于存储例如一个或多个乘法指令等指令887和数据888。
组件互连885又与MCH耦合。在一个或多个实施例中,组件互连可包括一个或多个外设组件互连express(PCIe)接口。组件互连可允许其它组件通过芯片组耦合到系统的其余部分。这类组件的一个示例是图形芯片或其它图形装置,但这是可选的并且不作要求。
芯片组还包括输入/输出(I/O)控制器集线器(ICH)884。ICH通过集线器接口总线或其它互连883耦合到MCH。在一个或多个实施例中,总线或其它互连883可包括直接媒体接口(DMI)。
数据存储装置889耦合到ICH。在各个实施例中,数据存储装置可包括硬盘驱动、软盘驱动、CD-ROM装置、闪速存储器装置等或者它们的组合。
第二组件互连890又与ICH耦合。在一个或多个实施例中,第二组件互连可包括一个或多个外设组件互连express(PCIe)接口。第二组件互连可允许各种类型的组件通过芯片组耦合到系统的其余部分。
串行扩展端口891又与ICH耦合。在一个或多个实施例中,串行扩展端口可包括一个或多个通用串行总线(USB)端口。串行扩展端口可允许各种其它类型的输入/输出装置通过芯片组耦合到系统的其余部分。
可以可选地与ICH耦合的其它组件的几个说明性示例包括但不限于音频控制器、无线收发器和用户输入装置(例如键盘、鼠标)。
网络控制器又耦合到ICH。网络控制器可允许系统与网络耦合。
在一个或多个实施例中,计算机系统可运行可向Microsoft Corporation(Redmond,Wahington)购买的一个版本的WINDOWSTM操作系统。备选地,可使用例如UNIX、Linux或嵌入式系统等其它操作系统。
这只是适当计算机系统的一个具体示例。例如,在一个或多个备选实施例中,处理器可具有多个核心。作为另一个示例,在一个或多个备选实施例中,MCH 882可在物理上与处理器800片上集成,并且处理器可通过集成MCH与存储器886直接耦合。作为另一个示例,在一个或多个备选实施例中,其它组件可与处理器片上集成,例如以便提供片上系统(SoC)设计。作为又一个示例,在一个或多个备选实施例中,计算机系统可具有多个处理器。
图9是适当计算机系统901的一个示例实施例的框图。第二示例实施例与以上刚描述的第一示例计算机系统具有某些相似性。为了清晰起见,论述将倾向于强调差别,而没有赘述全部相似性。
与上述第一示例实施例相似,计算机系统包括处理器900以及具有I/O控制器集线器(ICH)984的芯片组981。又与第一示例实施例相似,计算机系统包括与芯片组耦合的第一组件互连985、与ICH耦合的第二组件互连990、与ICH耦合的串行扩展端口991、与ICH耦合的网络控制器992以及与ICH耦合的数据存储装置989。
在这个第二实施例中,处理器900是多核处理器。多核处理器包括处理器核心994-1至994-M,其中M可以是等于或大于2(例如2、4、7或更多)的整数。各核心可包括至少一个运行单元,它能够运行本文所公开的指令的至少一个实施例。如图所示,核心1包括高速缓存995(例如L1高速缓存)。其它核心的每个可类似地包括专用高速缓存。处理器核心可在单个集成电路(IC)芯片上实现。
处理器还包括至少一个共享高速缓存996。共享高速缓存可存储由处理器的一个或多个组件、如核心使用的数据(例如指令)。例如,共享高速缓存可本地缓存存储器986中存储的数据,供处理器的组件更快速访问。在一个或多个实施例中,共享高速缓存可包括一个或多个中间级高速缓存,例如第2级(L2)、第3级(L3)、第4级(L4)或者其它高速缓存级、最后一级高速缓存(LLC)和/或它们的组合。
处理器核心和共享高速缓存各与总线或其它互连997耦合。总线或其它互连可耦合核心和共享高速缓存,并且允许通信。
处理器还包括存储控制器集线器(MCH)982。如这个示例实施例中所示,MCH与处理器900集成。例如,MCH可与处理器核心片上集成。处理器通过MCH与存储器986耦合。在一个或多个实施例中,存储器可包括DRAM,但这不作要求。
芯片组包括输入/输出(I/O)集线器993。I/O集线器通过总线(例如QuickPath互连(QPI))或者其它互连980与处理器耦合。第一组件互连985与I/O集线器993耦合。
现在参照图10,所示的是根据本发明的一个实施例的系统10的框图。系统1000可包括一个或多个处理元件1010、1015,它们耦合到图形存储控制器集线器(GMCH)1020。附加处理元件1015的可选性质在图10中用虚线表示。
各处理元件可以是单个核心,或者备选地可包括多个核心。除了处理核心之外,处理元件可选地还可包括其它片上元件,例如集成存储控制器和/或集成I/O控制逻辑。另外,对于至少一个实施例,处理元件的核心可以是多线程的,因为它们可包括每个核心一个以上硬件线程上下文(hardware thread context)。
图10示出GMCH 1020可耦合到存储器1040,它可以是例如动态随机存取存储器(DRAM)。对于至少一个实施例,DRAM可与非易失性高速缓存关联。
GMCH 1020可以是芯片组或者芯片组的一部分。GMCH 1020可与处理器1010、1015进行通信,并且控制处理器1010、1015与存储器1040之间的交互。GMCH 1020还可充当处理器1010、1015与系统1000的其它元件之间的加速总线接口。对于至少一个实施例,GMCH1020经由多点总线、如前端总线(FSB)1095与处理器1010、1015进行通信。
此外,GMCH 1020耦合到显示器1040(例如平板显示器)。GMCH1020可包括集成图形加速器。GMCH 1020还耦合到输入/输出(I/O)控制器集线器(ICH)1050,它可用于将各种外设装置耦合到系统1000。例如在图10的实施例中所示的是外部图形装置1060,它可以是连同另一个外设装置1070一起耦合到ICH 1050的分立图形装置。
备选地,附加或不同的处理元件也可存在于系统1000中。例如,附加处理元件1015可包括与处理器1010相同的附加处理器、与处理器1010异构或不对称的附加处理器、加速器(例如图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列或者任何其它处理元件。在包括架构、微架构、热、功耗特性等的优点的衡量标准范围方面,在物理资源1010、1015之间存在各种差别。这些差别可实际上(effectively)显现为处理元件1010、1015之间的不对称性和异构性(heterogeneity)。对于至少一个实施例,各种处理元件1010、1015可驻存在同一个管芯封装中。
现在参照图11,所示的是根据本发明的一个实施例的系统1100的框图。如图11所示,多处理器系统1100是点对点互连系统,并且包括经由点对点互连1150耦合的第一处理元件1170和第二处理元件1180。如图11所示,处理元件1170和1180的每个可以是多核处理器,其中包括第一和第二处理器核心(即处理器核心1174a和1174b以及处理器核心1184a和1184b)。
备选地,处理元件1170、1180的一个或多个可以是除了处理器之外的元件,例如加速器或现场可编程门阵列。
虽然示为仅具有两个处理元件1170、1180,但是要理解,本发明的范围并不局限于此。在其它实施例中,一个或多个附加处理元件可存在于给定处理器中。
第一处理元件1170还可包括存储控制器集线器(MCH)1172和点对点(P-P)接口1176、1178。类似地,第二处理元件1180可包括MCH1182和P-P接口1186、1188。处理器1170、1180可使用点对点(PtP)接口电路1178、1188经由PtP接口1150来交换数据。如图11所示,MCH 1172、1182将处理器耦合到相应的存储器,即存储器1142和存储器1144,它们可以是与相应处理器本地附连的主存储器的部分。
处理器1170、1180各可使用点对点接口电路1176、1194、1186、1198经由各个PtP接口1152、1154与芯片组1190交换数据。芯片组1190还可经由高性能图形接口1139与高性能图形电路1138交换数据。本发明的实施例可位于具有任何数量的处理核心的任何处理器中或者位于图11的PtP总线代理的每个中。在一个实施例中,任何处理器核心可包括本地高速缓冲存储器(未示出)或者以其它方式与其关联。此外,共享高速缓存(未示出)可包含在两个处理器外部的任一个处理器中但经由p2p互连与处理器连接,使得如果使处理器进入低功率模式,则任一个或两个处理器的本地高速缓存信息可存储在共享高速缓存中。
第一处理元件1170和第二处理元件1180分别可经由P-P互连1176、1186和1184耦合到芯片组1190。如图11所示,芯片组1190包括P-P接口1194和1198。此外,芯片组1190包括将芯片组1190与高性能图形引擎1148耦合的接口1192。在一个实施例中,总线1149可用于将图形引擎1148耦合到芯片组1190。备选地,点对点互连1149可耦合这些组件。
芯片组1190又可经由接口1196耦合到第一总线1116。在一个实施例中,第一总线1116可以是外设组件互连(PCI)总线或者例如PCIExpress总线或另一种第三代I/O互连总线等总线,但是本发明的范围并不局限于此。
如图11所示,各种I/O装置1114可连同总线桥1118一起耦合到第一总线1116,总线桥1118将第一总线1116耦合到第二总线1120。在一个实施例中,第二总线1120可以是低引脚数(LPC)总线。各种装置可耦合到第二总线1120,在一个实施例中,包括例如键盘/鼠标1122、通信装置1126以及可包括代码1130的例如磁盘驱动或其它大容量存储装置的数据存储单元1128。另外,音频I/O 1124可耦合到第二总线1120。注意,其它架构是可能的。例如,代替图11的点对点架构,系统可实现多点总线或其它这种架构。
现在参照图12,所示的是根据本发明的一个实施例的系统1200的框图。图11和图12中的相似元件具有相似参考标号,并且从图12中省略了图11的某些方面,以便避免影响对图12的其它方面的理解。
图12示出处理元件1170、1180可分别包括集成存储器和I/O控制逻辑(“CL”)1172、1182。对于至少一个实施例,CL 1172、1182可包括存储控制器集线器逻辑(MCH),例如以上结合图10和图11所述。另外,CL 1172、1182还可包括I/O控制逻辑。图12不仅示出存储器1142、1144耦合到CL 1172、1182,而且还示出I/O装置1214也耦合到控制逻辑1172、1182。传统I/O装置1215耦合到芯片组1190。
本文所公开的机制的实施例可通过硬件、软件、固件或者这类实现方式的组合来实现。本发明的实施例可实现为在可编程系统上运行的计算机程序,其中可编程系统包括至少一个处理器、数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入装置和至少一个输出装置。
例如图11所示的代码1130等程序代码可应用于输入数据,以便执行本文所述的功能并且生成输出信息。相应地,本发明的实施例还包括机器可读介质,其中包含用于执行本发明的操作实施例的指令,或者包含定义本文所述的结构、电路、设备、处理器和/或系统特征的例如HDL等设计数据。这类实施例又可称作程序产品。
这种机器可读存储介质可以非限制性地包括通过机器或装置所制造或形成的颗粒的有形布置(tangible arrangements of particles),其中包括:例如硬盘等存储介质;任何其它类型的磁盘,包括软盘、光盘、致密光盘只读存储器(CD-ROM)、可重写致密光盘(CD-RW)和磁光盘;半导体器件,例如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SARAM)等随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、闪速存储器、电可擦可编程只读存储器(EEPROM)、磁卡或光卡;或者适合于存储电子指令的任何其它类型的介质。
输出信息可按照已知方式施加到一个或多个输出装置。为了便于本申请,处理系统包括具有例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或者微处理器等处理器的任何系统。
程序可通过高级过程或面向对象的编程语言来实现,以便与处理系统进行通信。根据需要,程序也可通过汇编或机器语言来实现。实际上,本文所述的机制的范围并不局限于任何具体编程语言。在任何情况下,语言可以是编译或解释语言。
至少一个实施例的一个或多个方面可通过表示处理器中的各种逻辑的机器可读介质上存储的代表数据来实现,它在由机器读取时使机器制作执行本文所述技术的逻辑。称作“IP核”的这类表示可存储在有形机器可读介质上,并且提供给各种客户或制造设施,以便加载到实际制作逻辑或处理器的制造机器中。
某些操作可由硬件组件来执行,或者可包含在机器可运行指令中,这些指令可用于使或者至少引起采用指令编程的电路或硬件来执行操作。电路可包括通用或专用处理器或者逻辑电路,这里仅例举几个示例。操作还可以可选地通过硬件和软件的组合来执行。运行单元和/或处理器可包括响应机器指令或者从机器指令所得出的一个或多个控制信号来存储指令指定结果操作数的特定或具体电路或者其它逻辑。
这只是适当系统的一个具体示例。用于膝上型、台式、手持PC、个人数字助理、工程工作站、服务器、网络装置、网络集线器、交换机、嵌入式处理器,数字信号处理器(DSP)、图形装置、视频游戏装置、机顶盒、微控制器,蜂窝电话、便携媒体播放机、手持装置和各种其它电子装置的本领域已知的其它系统设计和配置也是适合的。一般来说,能够结合本文所公开的处理器和/或运行单元的大量系统或电子装置一般是适当的。
在以上描述中,为了便于说明,提出了大量具体细节,以便透彻地了解本发明的实施例。然而,本领域的技术人员清楚地知道,即使没有这些具体细节的一部分,也可以实现一个或多个其它实施例。提供所述的具体实施例不是要限制本发明,而是示出本发明的实施例。本发明的范围不是由以上提供的具体示例来确定,而是仅由以下权利要求书来确定。在其它情况下,众所周知的电路、结构、装置和操作以框图形式示出而没有详细示出,以免影响对本描述的理解。在认为恰当的情况下,附图中重复了参考标号或者参考标号的末尾部分,以指示可以可选地具有相似特性的对应或相似的元件。
Claims (20)
1.一种用于刷新处理器的多个高速缓存线的方法,包括下列步骤:
接收单个指令,其中包括指示将要刷新所述处理器的所述多个高速缓存线的第一字段;以及
响应所述单个指令,刷新所述处理器的所述多个高速缓存线。
2.如权利要求1所述的方法,其中,所述单个指令隐式提供待刷新的所述高速缓存线的起始地址。
3.如权利要求2所述的方法,还包括下列步骤:
对第一寄存器加载待刷新的所述高速缓存线的所述起始地址的至少一部分;以及
对第二寄存器加载表示待刷新的高速缓存线的数量的计数器值。
4.如权利要求3所述的方法,还包括下列步骤:
刷新与待刷新的所述高速缓存线的所述起始地址关联的第一高速缓存线;
使所述第二寄存器中存储的所述计数器值递减;
更新所述第一寄存器,以便包含待刷新的第二高速缓存线的下一个地址的至少一部分;以及
刷新所述第二高速缓存线。
5.如权利要求4所述的方法,其中,更新所述第一寄存器以包含待刷新的第二高速缓存线的第二地址的至少一部分的步骤包括下列步骤:
将某个数加入所述起始地址。
6.如权利要求4所述的方法,其中,更新所述第一寄存器以包含待刷新的第二高速缓存线的第二地址的至少一部分的步骤包括下列步骤:
从所述起始地址中减去某个数。
7.如权利要求1所述的方法,其中,操作系统(OS)请求所述单个指令的运行。
8.一种用于使多个转换后备缓冲器(TLB)条目无效的方法,包括下列步骤:
接收单个指令,其中包括指示将要无效多个TLB条目的第一字段;以及
响应所述单个指令,使所述多个TLB条目无效。
9.如权利要求8所述的方法,其中,所述单个指令隐式提供待无效的第一TLB条目的起始地址。
10.如权利要求9所述的方法,还包括下列步骤:
对第一寄存器加载待无效的所述TLB条目的所述起始地址的至少一部分;以及
对第二寄存器加载表示待无效的TLB条目的数量的计数器值。
11.如权利要求10所述的方法,还包括下列步骤:
使与待无效的所述TLB条目的所述起始地址关联的第一TLB条目无效;
使所述第二寄存器中存储的所述计数器值递减;
更新所述第一寄存器,以便包含待无效的第二TLB条目的第二地址的至少一部分;以及
使所述第二TLB条目无效。
12.如权利要求11所述的方法,其中,更新所述第一寄存器以包含待无效的第二TLB条目的第二地址的至少一部分的步骤包括下列步骤:
将某个数加入所述起始地址。
13.如权利要求11所述的方法,其中,更新所述第一寄存器以包含待无效的第二TLB条目的第二地址的至少一部分的步骤包括下列步骤:
从所述起始地址中减去某个数。
14.如权利要求8所述的方法,其中,操作系统(OS)请求所述单个指令的运行。
15.一种设备,包括:
存储作为高速缓存线的数据的高速缓存;
对第一指令进行解码的解码电路,其中所述第一指令包括指示将要刷新所述高速缓存的多个高速缓存线的第一字段;以及
刷新由经解码的第一指令所指示的所述多个高速缓存线的运行电路。
16.如权利要求15所述的设备,还包括:
存储页表条目的转换后备缓冲器(TLB);以及
其中,对第二指令进行解码的解码电路,其中所述第二指令包括指示将要使多个TLB页表条目无效的第一字段。
17.如权利要求16所述的设备,还包括:
在所述TLB中使所述第二指令所指示的所述多个TLB页表条目无效的运行电路。
18.如权利要求15所述的设备,其中,所述运行电路包括:
表示用于刷新由经解码的第一指令所指示的所述多个高速缓存线的方法的状态机,其中所述状态机存储在高速缓存逻辑中。
19.如权利要求15所述的设备,还包括:
响应所述第一指令的运行而存储表示待刷新的高速缓存线的数量的值的第一寄存器;以及
响应所述第一指令的运行而存储待刷新的所述第一高速缓存线的地址的至少一部分的第二寄存器。
20.如权利要求15所述的设备,还包括:
将所述第一指令转换成将由所述运行电路来执行的多个微操作的微码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/644547 | 2009-12-22 | ||
US12/644,547 | 2009-12-22 | ||
US12/644,547 US8214598B2 (en) | 2009-12-22 | 2009-12-22 | System, method, and apparatus for a cache flush of a range of pages and TLB invalidation of a range of entries |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102117247A true CN102117247A (zh) | 2011-07-06 |
CN102117247B CN102117247B (zh) | 2015-02-25 |
Family
ID=44152761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010615494.6A Expired - Fee Related CN102117247B (zh) | 2009-12-22 | 2010-12-20 | 用于一系列页面的高速缓存刷新和一系列条目的tlb无效的系统、方法和设备 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8214598B2 (zh) |
JP (2) | JP2012530979A (zh) |
KR (1) | KR101467069B1 (zh) |
CN (1) | CN102117247B (zh) |
DE (1) | DE112010004971T5 (zh) |
GB (1) | GB2483013B (zh) |
TW (1) | TWI516930B (zh) |
WO (1) | WO2011087589A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104823172A (zh) * | 2012-12-29 | 2015-08-05 | 英特尔公司 | 实时指令跟踪处理器、方法以及系统 |
CN105144120A (zh) * | 2013-03-28 | 2015-12-09 | 惠普发展公司,有限责任合伙企业 | 基于存储器地址将来自高速缓存行的数据存储到主存储器 |
CN105765660A (zh) * | 2013-10-24 | 2016-07-13 | 高通股份有限公司 | 拆分用于电阻式存储器高速缓存的写操作 |
CN107250993A (zh) * | 2015-02-23 | 2017-10-13 | 英特尔公司 | 向量缓存行写回处理器、方法、系统和指令 |
CN107278298A (zh) * | 2015-03-03 | 2017-10-20 | Arm 有限公司 | 缓存器维护指令 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8924652B2 (en) * | 2009-11-23 | 2014-12-30 | Marvell Israel (M.I.S.L.) Ltd. | Simultaneous eviction and cleaning operations in a cache |
US8473567B2 (en) * | 2010-03-29 | 2013-06-25 | Intel Corporation | Generating a packet including multiple operation codes |
US20130091331A1 (en) * | 2011-10-11 | 2013-04-11 | Iulian Moraru | Methods, apparatus, and articles of manufacture to manage memory |
WO2013085518A1 (en) * | 2011-12-08 | 2013-06-13 | Intel Corporation | A method, apparatus, and system for efficiently handling multiple virtual address mappings during transactional execution |
TWI579695B (zh) * | 2011-12-28 | 2017-04-21 | 瑞昱半導體股份有限公司 | 對處理器的快取進行清除的方法以及該處理器 |
CN103186474B (zh) * | 2011-12-28 | 2016-09-07 | 瑞昱半导体股份有限公司 | 对处理器的高速缓存进行清除的方法以及该处理器 |
US10509725B2 (en) | 2013-03-08 | 2019-12-17 | Oracle International Corporation | Flushing by copying entries in a non-coherent cache to main memory |
US9311239B2 (en) | 2013-03-14 | 2016-04-12 | Intel Corporation | Power efficient level one data cache access with pre-validated tags |
US10223026B2 (en) * | 2013-09-30 | 2019-03-05 | Vmware, Inc. | Consistent and efficient mirroring of nonvolatile memory state in virtualized environments where dirty bit of page table entries in non-volatile memory are not cleared until pages in non-volatile memory are remotely mirrored |
WO2015047482A1 (en) * | 2013-09-30 | 2015-04-02 | Vmware, Inc. | Consistent and efficient mirroring of nonvolatile memory state in virtualized environments |
US9886391B2 (en) | 2014-03-20 | 2018-02-06 | International Business Machines Corporation | Selective purging of PCI I/O address translation buffer |
US9697137B2 (en) * | 2014-11-14 | 2017-07-04 | Cavium, Inc. | Filtering translation lookaside buffer invalidations |
US9684606B2 (en) * | 2014-11-14 | 2017-06-20 | Cavium, Inc. | Translation lookaside buffer invalidation suppression |
US10248610B2 (en) | 2015-06-23 | 2019-04-02 | Mellanox Technologies, Ltd. | Enforcing transaction order in peer-to-peer interactions |
US10303647B2 (en) | 2015-07-15 | 2019-05-28 | Mellanox Technologies, Ltd. | Access control in peer-to-peer transactions over a peripheral component bus |
US10776272B2 (en) * | 2016-03-02 | 2020-09-15 | Mellanox Technologies, Ltd. | Control of persistent memory via a computer bus |
KR101842764B1 (ko) * | 2016-03-18 | 2018-03-28 | 연세대학교 산학협력단 | 하드웨어 가속기와 호스트 시스템 사이의 데이터 일관성 유지 장치 및 방법 |
US10552153B2 (en) * | 2017-03-31 | 2020-02-04 | Intel Corporation | Efficient range-based memory writeback to improve host to device communication for optimal power and performance |
US11327909B1 (en) | 2020-10-26 | 2022-05-10 | Mellanox Technologies, Ltd. | System for improving input / output performance |
US11609700B2 (en) | 2021-08-11 | 2023-03-21 | Mellanox Technologies, Ltd. | Pacing in a storage sub-system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4885680A (en) * | 1986-07-25 | 1989-12-05 | International Business Machines Corporation | Method and apparatus for efficiently handling temporarily cacheable data |
US20040059872A1 (en) * | 2002-09-23 | 2004-03-25 | International Business Machines Corporation | Method and system for improving input/output performance by proactively flushing and locking an entire page out of caches of a multiprocessor system |
US6978357B1 (en) * | 1998-07-24 | 2005-12-20 | Intel Corporation | Method and apparatus for performing cache segment flush and cache segment invalidation operations |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06139149A (ja) * | 1992-10-29 | 1994-05-20 | Mitsubishi Electric Corp | 多重仮想空間制御装置 |
JP3493369B2 (ja) * | 1994-12-13 | 2004-02-03 | 株式会社ルネサステクノロジ | コンピュータ |
JPH09231133A (ja) * | 1996-02-21 | 1997-09-05 | Nec Corp | キャッシュメモリ装置 |
US6351864B1 (en) * | 1999-06-28 | 2002-03-05 | David M. Karafa | Institutional bedding with integral pillow and mattress |
US6868472B1 (en) * | 1999-10-01 | 2005-03-15 | Fujitsu Limited | Method of Controlling and addressing a cache memory which acts as a random address memory to increase an access speed to a main memory |
JP2001134490A (ja) * | 1999-11-01 | 2001-05-18 | Fujitsu Ltd | キャッシュメモリの制御方法及びその方法を実現する計算機 |
US6546462B1 (en) * | 1999-12-30 | 2003-04-08 | Intel Corporation | CLFLUSH micro-architectural implementation method and system |
US6859862B1 (en) * | 2000-04-07 | 2005-02-22 | Nintendo Co., Ltd. | Method and apparatus for software management of on-chip cache |
US7284100B2 (en) * | 2003-05-12 | 2007-10-16 | International Business Machines Corporation | Invalidating storage, clearing buffer entries, and an instruction therefor |
US7536506B2 (en) * | 2004-06-21 | 2009-05-19 | Dot Hill Systems Corporation | RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage |
US20060143397A1 (en) * | 2004-12-29 | 2006-06-29 | O'bleness R F | Dirty line hint array for cache flushing |
CN101151600B (zh) * | 2005-04-08 | 2012-02-22 | 松下电器产业株式会社 | 高速缓冲存储器系统及其控制方法 |
US7472227B2 (en) * | 2005-08-11 | 2008-12-30 | International Business Machines Corporation | Invalidating multiple address cache entries |
US8538012B2 (en) * | 2007-03-14 | 2013-09-17 | Intel Corporation | Performing AES encryption or decryption in multiple modes with a single instruction |
JP2008305246A (ja) * | 2007-06-08 | 2008-12-18 | Freescale Semiconductor Inc | 情報処理装置、キャッシュフラッシュ制御方法及び情報処理制御装置 |
US8112174B2 (en) * | 2008-02-25 | 2012-02-07 | International Business Machines Corporation | Processor, method and computer program product for fast selective invalidation of translation lookaside buffer |
-
2009
- 2009-12-22 US US12/644,547 patent/US8214598B2/en not_active Expired - Fee Related
-
2010
- 2010-11-12 TW TW099139019A patent/TWI516930B/zh not_active IP Right Cessation
- 2010-11-29 GB GB1119730.8A patent/GB2483013B/en not_active Expired - Fee Related
- 2010-11-29 DE DE112010004971T patent/DE112010004971T5/de not_active Withdrawn
- 2010-11-29 JP JP2012516395A patent/JP2012530979A/ja active Pending
- 2010-11-29 WO PCT/US2010/058236 patent/WO2011087589A2/en active Application Filing
- 2010-11-29 KR KR1020127016220A patent/KR101467069B1/ko active IP Right Grant
- 2010-12-20 CN CN201010615494.6A patent/CN102117247B/zh not_active Expired - Fee Related
-
2015
- 2015-01-05 JP JP2015000202A patent/JP2015084250A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4885680A (en) * | 1986-07-25 | 1989-12-05 | International Business Machines Corporation | Method and apparatus for efficiently handling temporarily cacheable data |
US6978357B1 (en) * | 1998-07-24 | 2005-12-20 | Intel Corporation | Method and apparatus for performing cache segment flush and cache segment invalidation operations |
US20040059872A1 (en) * | 2002-09-23 | 2004-03-25 | International Business Machines Corporation | Method and system for improving input/output performance by proactively flushing and locking an entire page out of caches of a multiprocessor system |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104823172A (zh) * | 2012-12-29 | 2015-08-05 | 英特尔公司 | 实时指令跟踪处理器、方法以及系统 |
US9696997B2 (en) | 2012-12-29 | 2017-07-04 | Intel Corporation | Real time instruction trace processors, methods, and systems |
CN104823172B (zh) * | 2012-12-29 | 2018-01-23 | 英特尔公司 | 实时指令跟踪处理器、方法以及系统 |
CN105144120A (zh) * | 2013-03-28 | 2015-12-09 | 惠普发展公司,有限责任合伙企业 | 基于存储器地址将来自高速缓存行的数据存储到主存储器 |
CN105765660A (zh) * | 2013-10-24 | 2016-07-13 | 高通股份有限公司 | 拆分用于电阻式存储器高速缓存的写操作 |
CN105765660B (zh) * | 2013-10-24 | 2019-03-12 | 高通股份有限公司 | 拆分用于电阻式存储器高速缓存的写操作的方法和装置 |
CN107250993A (zh) * | 2015-02-23 | 2017-10-13 | 英特尔公司 | 向量缓存行写回处理器、方法、系统和指令 |
CN107278298A (zh) * | 2015-03-03 | 2017-10-20 | Arm 有限公司 | 缓存器维护指令 |
US11144458B2 (en) | 2015-03-03 | 2021-10-12 | Arm Limited | Apparatus and method for performing cache maintenance over a virtual page |
CN107278298B (zh) * | 2015-03-03 | 2021-10-22 | Arm 有限公司 | 缓存器维护指令 |
Also Published As
Publication number | Publication date |
---|---|
WO2011087589A2 (en) | 2011-07-21 |
KR20120096031A (ko) | 2012-08-29 |
GB201119730D0 (en) | 2011-12-28 |
KR101467069B1 (ko) | 2014-12-01 |
TWI516930B (zh) | 2016-01-11 |
CN102117247B (zh) | 2015-02-25 |
JP2012530979A (ja) | 2012-12-06 |
WO2011087589A3 (en) | 2011-10-27 |
GB2483013B (en) | 2018-03-21 |
US8214598B2 (en) | 2012-07-03 |
GB2483013A (en) | 2012-02-22 |
US20110153952A1 (en) | 2011-06-23 |
JP2015084250A (ja) | 2015-04-30 |
TW201131358A (en) | 2011-09-16 |
DE112010004971T5 (de) | 2013-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102117247B (zh) | 用于一系列页面的高速缓存刷新和一系列条目的tlb无效的系统、方法和设备 | |
US10802987B2 (en) | Computer processor employing cache memory storing backless cache lines | |
CN105320611B (zh) | 用于细粒存储器保护的方法和设备 | |
KR100230643B1 (ko) | 고성능 프로세서의 브랜치 예상 동작 방법 및 장치 | |
US9720846B2 (en) | Memory swap for direct memory access by a device assigned to a guest operating system | |
US10346306B2 (en) | Processor and method for memory performance monitoring utilizing a monitor flag and first and second allocators for allocating virtual memory regions | |
KR100230105B1 (ko) | 간략화된 명령 세트 프로세서의 성능 개선 방법 및 그 프로세서 시스템 | |
KR100218572B1 (ko) | 고성능 프로세서의 번역버퍼에 대해 세분성 힌트를 이용하는 프로세서 동작 방법 및 장치 | |
KR101014395B1 (ko) | 프로세서 전력 감소를 위한 마이크로 tlb 및 마이크로태그 | |
US7941631B2 (en) | Providing metadata in a translation lookaside buffer (TLB) | |
US20160019166A1 (en) | Synchronizing a translation lookaside buffer with an extended paging table | |
KR100586057B1 (ko) | 프리디코드 정보를 저장하기 위해 ecc/패리티 비트들의 이용 | |
KR20040041550A (ko) | 타입 비트들을 이용한, 레벨 2 캐시에서의 ecc 및프리디코드 비트들의 저장 추적 | |
US9471494B2 (en) | Method and apparatus for cache line write back operation | |
US9891936B2 (en) | Method and apparatus for page-level monitoring | |
CN102498477A (zh) | Tlb预取 | |
KR20050085148A (ko) | 서로 다른 캐시 라인 사이즈를 갖는 제 1 레벨 캐시 및 제2 레벨 캐시를 포함하는 마이크로프로세서 | |
KR20030010727A (ko) | 변환 색인 버퍼 플러시 필터 | |
US20130346683A1 (en) | Cache Sector Dirty Bits | |
US20130262780A1 (en) | Apparatus and Method for Fast Cache Shutdown | |
EP2889757B1 (en) | A load instruction for code conversion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150225 Termination date: 20191220 |