[go: up one dir, main page]

CN107592927A - 管理扇区高速缓存 - Google Patents

管理扇区高速缓存 Download PDF

Info

Publication number
CN107592927A
CN107592927A CN201680024415.XA CN201680024415A CN107592927A CN 107592927 A CN107592927 A CN 107592927A CN 201680024415 A CN201680024415 A CN 201680024415A CN 107592927 A CN107592927 A CN 107592927A
Authority
CN
China
Prior art keywords
cache
hint
logic
memory
controller
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
CN201680024415.XA
Other languages
English (en)
Other versions
CN107592927B (zh
Inventor
A·V·阿南塔拉曼
Z·格林菲尔德
I·戴曼德
A·V·诺里
P·拉马钱德兰
N·米斯加夫
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 CN107592927A publication Critical patent/CN107592927A/zh
Application granted granted Critical
Publication of CN107592927B publication Critical patent/CN107592927B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0891Addressing 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake

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)
  • Debugging And Monitoring (AREA)

Abstract

描述了管理存储器操作的装置、系统和方法。在一个示例中,控制器包括逻辑,所述逻辑用于:接收要对高速缓存存储器中的第一数据元素进行操作的第一事务,在易失性存储器中执行针对第一数据元素的查找操作,并且响应于失败的查找操作,生成高速缓存擦除提示,将高速缓存擦除提示转发到高速缓存擦除引擎,并且至少部分基于高速缓存擦除提示来识别要擦除的一个或多个高速缓存行。其他示例也被公开并被要求保护。

Description

管理扇区高速缓存
技术领域
本公开大体上涉及电子领域。更具体地,一些示例大体上涉及用于管理电子设备中的扇区高速缓存(sectored cache)的技术。
背景技术
电子设备将数据存储在非易失性存储器中以使得当电子设备的电源被关闭或以其它方式掉电时数据保持完整,这会是有用的。用于将数字信息存储在非易失性存储器单元阵列中的非易失性存储器设备可以被包括在非易失性双列直插存储器模块(NVDIMM)中。存储在非易失性存储器(例如,NAND/NOR闪存)中的数字信息在掉电或系统故障期间存留。当电子设备的电力恢复之后,电子设备可以从NVDIMM访问存储的数字数据。
在电子设备中执行的逻辑可以修改存储在非易失性存储器中的数据。例如,在电子设备的处理器上执行的逻辑可以更新存储在非易失性存储器中的数据元素。在这样的实例中,逻辑取回存储在非易失性存储器中的数据元素的副本,并将数据元素的副本存储在易失性存储器(例如高速缓存存储器)中。一些高速缓存存储器可以被构造为“扇区”高速缓存,其中多个高速缓存行被成组以形成由单个标签标识的“超级行”,使得该超级行内的所有高速缓存行都被该单个标签标识。
在处理器上执行的逻辑可以更新高速缓存存储器中的数据。在对存储在高速缓存存储器中的数据元素的副本的任何更改完成之后,逻辑可以将更新的数据元素返回或写回到非易失性存储器中。此外,在一些实例中,例如,在进入低功率状态之前,逻辑可以将存储在高速缓存存储器中的数据擦除(即转储清除)到非易失性存储器。因此,管理扇区高速缓存的技术可以用于例如用于电子设备的存储器系统中。
附图说明
参考附图提供具体实施方式。在不同图中使用相同的附图标记表示相似或相同的项目。
图1是根据本文讨论的各种示例来实现管理扇区高速缓存的装置的组件的示意性框图图示。
图2是根据本文讨论的各种示例的可适用于实现管理扇区高速缓存的处理环境的示意性框图。
图3是根据本文讨论的各种示例的扇区高速缓存的示意图。
图4是示出根据本文讨论的各种示例来管理扇区高速缓存的方法中的操作的流程图。
图5A-5C是示出根据本文讨论的各种示例来管理扇区高速缓存的方法中的操作的图。
图6-10是根据本文讨论的各种示例的可适于管理扇区高速缓存的电子设备的框图图示。
具体实施方式
在下面的描述中,阐述了许多具体细节以提供对各种示例的透彻理解。然而,可以在没有具体细节的情况下实践各种示例。在其他实例中,没有详细描述公知的方法、程序、组件和电路,以免模糊特定示例。此外,可以使用诸如集成半导体电路(“硬件”),组织成一个或多个程序的计算机可读指令(“软件”)或硬件和软件的某些组合等各种手段来执行示例的各个方面。为了本公开的目的,对“逻辑”的引用应意味着硬件、软件或其某种组合。
这里描述了在电子设备的处理系统中管理扇区高速缓存的技术。本文描述的一些示例可以用于包含集成高速缓存存储器的多核处理器设备中。更具体地,本文所描述的一些示例可以用于电子设备中,该电子设备响应于电力故障或电力中断而将处理器高速缓存转储清除到非易失性存储器中。
简而言之,在扇区高速缓存存储器中,多个高速缓存行(通常为64字节)被成组(grouped)以形成由单个标签标识的通常所谓的“超级行”。
在扇区高速缓存中实现回写操作呈现某些问题。在扇区回写高速缓存中,如果完整的超级行被选为替换(即,受害者)候选者,则该完整的超级行必须被逐出(evict)。由于受害者超级行内的多个高速缓存行可能是脏的(即尚未写入主存储器),所以单个对超级行的逐出可能导致一连串的脏高速缓存行被写回主存储器。在极端情况下,受害者超级行中的每一单个高速缓存行可能必须写回主存储器,引起对存储器带宽的需求突然急剧增加,这导致存储器延迟。此外,处理器和高速缓存之间的高带宽数据路径与到主存储器的相对较低带宽的数据路径之间的延迟差异可能导致从高速缓存的逐出的速率慢,这继而可能因为逐出不及时而导致填充数据被丢弃。丢弃填充数据引起对这些地址的后续访问成为未命中(原本应该是命中的)。
扇区高速缓存的另一个问题是当包括高速缓存的电子设备移至低功率状态时,对高速缓存进行转储清除所需的时间量。这种大的转储清除时间惩罚,可能会对进行到低功率状态的快速过渡带来困难。为了进入较低功率状态(其中高速缓存内容不能被保留),在能够关闭电源之前,高速缓存中的脏数据必须被转储清除到主存储器。在一些示例中,高速缓存存储器中多达80%可能是脏的。因此,在一些示例中,128MB高速缓存中多达约100MB可能在范围广泛的工作负荷中变脏。将100MB的数据转储清除到主存储器可能花费若干毫秒,这可能导致在到低功耗状态的过渡中的显著延时。
本文描述了管理扇区高速缓存以解决这些和其他问题的技术。在第一方面,未命中检测与受害者选择被分离。在第二方面,可以实现前瞻的机会擦除机制以增加找到干净的受害者超级行的可能性。以下将参照图1-5描述用于实现管理扇区高速缓存的附加结构特征和操作。
图1是根据本文讨论的各种示例来管理扇区高速缓存的装置的组件的示意性框图图示。参考图1,在一些示例中,处理器100可以包括一个或多个处理器110,其耦合到控制单元120和本地存储器130。控制单元120包括存储器控制器122和存储器接口124。
存储器接口124通过通信总线160耦合到一个或多个远程存储器设备140。存储器设备140可以包括控制器142和一个或多个存储器存储体(memory bank)150。在各种示例中,至少一些存储器存储体150可以使用非易失性存储器实现,例如,铁电随机存取存储器(FeTRAM),基于纳米线的非易失性存储器,包含忆阻器技术的存储器,静态随机存取存储器(SRAM),三维(3D)交叉点存储器,诸如相变存储器(PCM),自旋转移转矩存储器(STT-RAM)或NAND存储器。在一些示例中,存储器设备140可以包括耦合到存储器通道144(存储器通道144提供去向控制器142的通信链路)的一个或多个非易失性双列直插存储器模块(NVDIMM)。存储器设备140中的存储器存储体150的特定配置不是关键的。
图2是可以适于根据本文讨论的各种示例来管理扇区高速缓存的处理环境的示意性框图。参考图2,处理器环境200可以包括耦合到电源260和非易失性存储器250的至少一个处理器210。能量储存设备262(诸如一个或多个电容器)储存由电源260提供的电力的一部分。如上所述,在电力故障(诸如其中电源260不再在适当的电压范围内输出电力以向功率处理器环境200供电的状态)的情况下,在至少有限量的停滞时间(holdup time)内,储存在能量储存资源262中的能量继续向处理器210提供适当的电力。
处理器210可以包括一个或多个处理器单元220-1、220-2,其在这里可以共同地通过附图标记220来引用。处理器210还可以包括具有缓冲器232和控制器240的存储器控制器230。每个处理器单元220可以包括核心222、高速缓存存储器224和高速缓存控制器226,高速缓存控制器226继而可以包括定义了擦除管理器228和擦除引擎229的逻辑。
处理器核心222执行用于实现一个或多个处理线程的逻辑指令。核心222可以独立地或协同地工作以定义多核处理环境。高速缓存224可以被实现为在易失性存储器中定义的多级快速访问高速缓存,通常在与核心222相同的管芯上。
图3是根据本文讨论的各种示例的扇区高速缓存的示意图。参考图3,扇区高速缓存可以包括两个或更多个路线(way),在图3中被示为WAY 0,WAY 1,直到WAY N。每个路线中的每个高速缓存超级行可以包括多个高速缓存行,在图3中被示为CL0,CL1,CL2,CL3。每个高速缓存超级行由单个标签标识。高速缓存224可以被配置为级别1(L1)或级别2(L2)高速缓存,或在类似存储器系统中使用的任何其他级别的高速缓存。此外,高速缓存224可以被配置为指令高速缓存、数据高速缓存、或用于存储指令和数据的统一高速缓存。
在一些实施例中,高速缓存可以与处理器集成,如图2所示。在操作中,核心222被配置为与高速缓存224通信地址和数据。高速缓存控制器226被配置为从核心222接收地址信息。高速缓存控制器226还被配置为从非易失性存储器250和/或核心222接收数据。高速缓存控制器222被配置为使用地址信息来选择在其中取回或存储对应的数据字节的高速缓存存储行。例如,高速缓存控制器226可以被配置为访问多个标签,所述多个标签跟踪哪些条目存在于高速缓存224中。
高速缓存控制器226可以被配置为将每个集合(set)划分成一个或多个扇区,其中每个扇区包括两个或更多个路线,并且维护指示这些扇区的相对使用状态的一个或多个使用状态指示符。例如,最近最少使用(LRU)使用状态指针可以指向集合中的LRU扇区。或者,可以使用状态位和/或计数器来跟踪集合中每个扇区的相对使用状态。
在一些示例中,控制器226实现高速缓存管理操作以促进对于诸如高速缓存224的扇区高速缓存的高效的擦除技术。将参照图4和图5描述由控制器226实现的高速缓存管理操作。在一些示例中,图4和图5所示的操作可以由高速缓存控制器,更具体地由擦除管理器228和/或由擦除引擎229实现。
首先参考图4,在操作410,高速缓存事务被接收在高速缓存控制器226中。作为示例,高速缓存事务可以是高速缓存读取操作。在操作415,高速缓存控制器226在高速缓存224中执行查找操作以定位在高速缓存事务中标识的数据。
在操作420,高速缓存控制器226确定在操作410中接收到的针对高速缓存事务的查找操作是否结果是(result in)高速缓存未命中(即,当高速缓存224不包含在事务请求中所请求的数据时)。如果在操作420确定在操作415中的查找的结果是高速缓存未命中,则控制转到操作425,并且高速缓存控制器226生成高速缓存擦除提示。在一些示例中,擦除管理器228可以选择脏的一个或多个高速缓存路线,并将这些路线作为高速缓存擦除提示发送到高速缓存擦除引擎。在操作430,高速缓存擦除引擎229为与高速缓存擦除提示相关联的超级行生成高速缓存行回写,以便将该超级行中的数据写回到非易失性存储器250中。然后,控制转到操作435,其中擦除管理器228将在操作430中转储清除的超级行的一个或多个标签识别为干净的。
相比之下,如果在操作420,针对高速缓存事务的查找的结果不是高速缓存未命中(即,如果事务的结果是高速缓存命中),则控制转到操作440,并且高速缓存控制器226确定是否有主动擦除特征已启用。如果在操作440处未启用主动擦除特征,则控制转到操作450,并且高速缓存事务的结果被发送到用于主存储器250的存储器控制器230。在操作455,高速缓存控制器226接收来自用于主存储器250的存储器控制器230的完成信号,并且在操作460,高速缓存控制器226向操作410中接收的高速缓存事务的发起者返回完成信号。
相比之下,如果在操作440启用主动擦除特征,则控制转到操作445,并且高速缓存控制器226确定是否满足生成擦除提示的一个或多个条件。在一些示例中,控制器可以响应于一个或多个条件前瞻地实现高速缓存擦除操作。条件可以对应于事件(例如,高速缓存命中,或经过了指定时间段)或者可以对应于高速缓存控制器226的操作条件(例如,如果高速缓存控制器226的操作容量(operating capacity)低于阈值)。下面将参照图5B和5C描述各种条件。
如果在操作445满足一个或多个条件,则控制转到操作425-435,如上所述。相比之下,如果在操作445一个或多个擦除提示条件不满足,则如上所述,控制转到操作450-460。
图5A-5C是示出根据本文讨论的各种示例来管理扇区高速缓存的方法中的操作的定时的图。图5A示出了在高速缓存未命中场景的上下文中高速缓存控制器226的操作。参考图5A,在操作510,高速缓存管理器228在第一时间点检测到高速缓存未命中(即,失败的查找操作),并且响应于失败的查找操作,控制器发送高速缓存擦除提示到高速缓存擦除引擎229。在一些示例中,高速缓存提示可以标识要擦除的一个或多个超级行。在操作515,高速缓存擦除引擎229为被识别用于擦除的超级行中的每个高速缓存行生成高速缓存回写操作。可能需要多次回写操作来清理超级行。
在操作520处,超级行中的最后一个脏高速缓存行被擦除,导致干净的高速缓存超级行。在操作525,高速缓存控制器226接收来自存储器控制器230的填充数据,并且选择干净的受害者超级行以便进行替换。因此,在高速缓存未命中的情况下,本文描述的操作延迟了受害者选择(victim selection)的操作,直到从存储器控制器230返回填充数据之后,从而提供清理时间窗口(在此期间擦除管理器228和擦除引擎229可以协作以清理高速缓存中的一个或多个超级行)。
图5B示出了在高速缓存命中场景的情况下,高速缓存控制器226的操作。参考图5B,在操作530,高速缓存管理器228在第一时间点检测高速缓存命中(即,成功的查找操作),并且响应于成功的查找操作,擦除管理器228生成擦除提示以发送到擦除引擎229。在一个示例中,仅当集合中的脏路线数达到或超过阈值数(其可以是固定的或可编程的)时,擦除管理器228才生成擦除提示。擦除管理器228可以使用一种或多种技术来选择高速缓存提示。例如,擦除管理器228可以在接收到高速缓存未命中的集合中选择最近最少使用(LRU)的路线作为高速缓存提示。或者,擦除管理器可以选择集合中最近最少使用(LRU)的所有经修改的路线作为高速缓存提示。擦除管理器228将高速缓存擦除提示发送到高速缓存擦除引擎229。在一些示例中,高速缓存提示可以标识要擦除的一个或多个超级行。
在操作535,高速缓存擦除引擎229为被标识用于擦除的超级行中的每个高速缓存行生成高速缓存回写操作。可能需要多次回写操作来清除超级行。在操作540,擦除超级行中的最后一个脏缓冲行,导致干净的高速缓存超级行。
图5C示出了在自由漫游或事件驱动的擦除操作的情况下,高速缓存控制器226的操作。参考图5C,在操作550,高速缓存管理器228评估高速缓存脏的程度,以确定是否发送擦除提示以发送到擦除引擎229。在一个示例中,只有当一个集合中的脏路线的数量达到或超过阈值数量(其可以是固定的或可编程的)时,擦除管理器228才生成擦除提示。擦除管理器228可以使用一种或多种技术来选择高速缓存提示。例如,擦除管理器228可以在接收到高速缓存未命中的集合中选择最近最少使用(LRU)的路线作为高速缓存提示。或者,擦除管理器可以选择集合中最近最少使用(LRU)的所有经修改的路线作为高速缓存提示。擦除管理器228将高速缓存擦除提示发送到高速缓存擦除引擎229。在一些示例中,高速缓存提示可以标识要擦除的一个或多个超级行。
在操作555,高速缓存擦除引擎229为被标识用于擦除的超级行中的每个高速缓存行生成高速缓存回写操作。可能需要多次回写操作来清理超级行。在操作560,高速缓存擦除引擎擦除高速缓存224中的一个或多个超级行。在操作565,擦除超级行中的最后一个脏高速缓存行,导致干净的高速缓存超级行。
在一些示例中,对自由漫游或事件驱动的擦除操作进行限制会是有用的。无约束擦除操作会由于执行过多的写入而消耗大量的电力,并且会由于在存储器系统中消耗过多的带宽而降低性能。因此,在一些示例中,可以使用各种技术来对擦除操作进行“节流(throttle)”。在第一种技术中,高速缓存脏的程度可以用作触发机制。例如,可以使用简单的计数器机制来跟踪高速缓存中的脏行的数量。每当高速缓存的状态从干净(I/E)变为脏(M)时,计数器可以增量,并且每当高速缓存行从脏(M)更改为干净(E/I)时,计数器将减量。仅当脏行数量超过某个可编程阈值时,才从事擦除操作。在第二种技术中,仅当有足够的备用存储器带宽可用时才从事擦除操作。这样可以确保擦除操作不会因为擦除请求而超额认购存储器带宽。
因此,图4-5所描绘的操作使得诸如高速缓存控制器226的处理单元能够管理扇区高速缓存。
如上所述,在一些示例中,电子设备可以被实现为计算机系统。图6示出了根据示例的计算系统600的框图。计算系统600可以包括经由互连网络(或总线)604通信的一个或多个中央处理单元(CPU)602或处理器。处理器602可以包括通用处理器、网络处理器(其处理通过计算机网络603传送的数据)或其他类型的处理器(包括精简指令集计算机(RISC)处理器或复合指令集计算机(CISC))。此外,处理器602可以具有单核或多核设计。具有多核设计的处理器602可以在同一集成电路(IC)管芯上集成不同类型的处理器核心。此外,具有多核设计的处理器602可以被实现为对称或不对称的多处理器。在一个示例中,一个或多个处理器602可以与图1的处理器102相同或相似。例如,处理器602中的一个或多个可以包括参考图1-3讨论的控制单元120。此外,参考图3-5讨论的操作可以由系统600的一个或多个组件执行。
芯片组606还可以与互连网络604进行通信。芯片组606可以包括存储器控制集线器(MCH)608。MCH 608可以包括与存储器612(其可以与图1的存储器130相同或相似)进行通信的存储器控制器610。存储器612可以存储可由CPU 602或包括在计算系统600中的任何其他设备来执行的指令序列的数据。在一个示例中,存储器612可以包括一个或多个易失性存储(或存储器)设备,诸如随机存取存储器(RAM),动态RAM(DRAM),同步DRAM(SDRAM),静态RAM(SRAM)或其他类型的存储设备。还可以使用非易失性存储器,例如硬盘。附加设备可以经由互连网络604进行通信,例如多个CPU和/或多个系统存储器。
MCH 608还可以包括与显示设备616通信的图形接口614。在一个示例中,图形接口614可以经由加速图形端口(AGP)与显示设备616通信。在示例中,显示器616(例如平板显示器)可以通过例如信号转换器(其将存储在诸如视频存储器或系统存储器的存储设备中的图像的数字表示转换为由显示器616解释和显示的显示信号)与图形接口614进行通信。由显示设备生成的显示信号可以在由显示器616解释并随后显示在显示器616之前通过各种控制设备。
集线器接口618可以允许MCH 608和输入/输出控制集线器(ICH)620进行通信。ICH620可以提供与计算系统600通信的I/O设备的接口。ICH620可以通过外围桥接器(或控制器)624与总线622通信,例如外围组件互连(PCI)桥接器,通用串行总线(USB)控制器或其他类型的外围桥接器或控制器。桥接器624可以提供在CPU 602和外围设备之间的数据路径。可以使用其他类型的拓扑。此外,多个总线可以与ICH 620通信,例如通过多个桥接器或控制器。此外,与ICH 620通信的其它外围设备可以在各种示例中包括集成驱动电子设备(IDE)或小型计算机系统接口(SCSI)硬盘驱动器,USB端口,键盘,鼠标,并行端口,串行端口,软盘驱动器,数字输出支持(例如数字视频接口(DVI))或其他设备。
总线622可以与音频设备626、一个或多个磁盘驱动器628和网络接口设备630(其与计算机网络603通信)进行通信。其他设备可以经由总线622进行通信。在一些示例中,各种组件(诸如网络接口设备630)可以与MCH 608进行通信。此外,处理器602和本文讨论的一个或多个其他组件可以组合以形成单个芯片(例如,以提供片上系统(SOC))。此外,在其他示例中,图形加速器616可以包括在MCH 608内。
此外,计算系统600可以包括易失性和/或非易失性存储器(或存储)。例如,非易失性存储器可以包括以下中的一个或多个:只读存储器(ROM),可编程ROM(PROM),可擦除PROM(EPROM),电EPROM(EEPROM),磁盘驱动器(例如,628),软盘,光盘ROM(CD-ROM),数字通用盘(DVD),闪速存储器,磁光盘或能够存储电子数据(例如,包括指令)的其他类型的非易失性机器可读介质。
图7示出了根据示例的计算系统700的框图。系统700可以包括一个或多个处理器702-1至702-N(这里通常称为“多个处理器702”或“处理器702”)。处理器702可以经由互连网络或总线704进行通信。每个处理器可以包括各种组件,为了清楚起见,其中一些仅参考处理器702-1进行讨论。因此,其余处理器702-2至702-N中的每一个可以包括与参考处理器702-1所讨论的相同或相似的组件。
在一个示例中,处理器702-1可以包括一个或多个处理器核心706-1至706-M(这里称为“多个核心706”或更一般地称为“核心706”)、共享高速缓存708、路由器710和/或处理器控制逻辑或单元720。处理器核心706可以实现在单个集成电路(IC)芯片上。此外,芯片可以包括一个或多个共享和/或私有高速缓存(例如高速缓存708)、总线或互连(诸如总线或互连网络712)、存储器控制器或其他组件。
在一个示例中,路由器710可以用于在处理器702-1和/或系统700的各种组件之间通信。此外,处理器702-1可以包括多于一个的路由器710。此外,多个路由器710可以处于通信中,以使得能够在处理器702-1内部或外部的各种组件之间进行数据路由。
共享高速缓存708可以存储由处理器702-1的一个或多个组件(例如核心706)利用的数据(例如,包括指令)。例如,共享高速缓存708可以本地地高速缓存存储在存储器714中的数据,以便由处理器702的组件更快地访问。在一个示例中,高速缓存708可以包括中级高速缓存(诸如级别2(L2),级别3(L3),级别4(L4),或其他级别的高速缓存),最后一级高速缓存(LLC),和/或其组合。此外,处理器702-1的各种组件可以通过总线(例如总线712)和/或存储器控制器或集线器直接与共享高速缓存708进行通信。如图7所示,在一些示例中,核心706中的一个或多个可以包括级别1(L1)高速缓存716-1(这里通常称为“L1高速缓存716”)。在一个示例中,控制单元720可以包括执行上文参考图2中的存储器控制器122描述的操作的逻辑。
图8示出了根据示例的处理器核心706和计算系统的其他组件的部分的框图。在一个示例中,图8所示的箭头示出了通过核心706的指令的流向。一个或多个处理器核心(例如处理器核心706)可以实现在单个集成电路芯片(或管芯)上,例如参考图7所讨论的。此外,芯片可以包括一个或多个共享和/或私有高速缓存(例如,图7的高速缓存708)、互连(例如,图7的互连704和/或112)、控制单元、存储器控制器或其他组件。
如图8所示,处理器核心706可以包括提取单元802,以提取用于核心706执行的指令(包括具有条件分支的指令)。指令可以从诸如存储器714的任何存储设备中提取。核心706还可以包括解码单元804,以对所提取的指令进行解码。例如,解码单元804可以将提取的指令解码为多个uop(微操作)。
另外,核心706可以包括调度单元806。调度单元806可以执行与对解码的指令(例如,从解码单元804接收的)进行存储相关联的各种操作,直到指令准备好被分派,例如直到解码的指令的所有源值变得可用。在一个示例中,调度单元806可以将解码的指令调度和/或发布(或分派)到执行单元808以供执行。执行单元808可以在分派的指令被解码(例如由解码单元804)且分派(例如,通过调度单元806)之后执行分派的指令。在一个示例中,执行单元808可以包括多于一个的执行单元。执行单元808还可以执行诸如加法、减法、乘法和/或除法之类的各种算术运算,并且可以包括一个或多个算术逻辑单元(ALU)。在一个示例中,协处理器(未示出)可以与执行单元808一起执行各种算术运算。
此外,执行单元808可以无序地执行指令。因此,在一个示例中,处理器核心706可以是无序处理器核心。核心706还可以包括引退单元810。引退单元810可以在执行指令提交之后引退执行指令。在一个示例中,执行指令的引退可能导致从指令的执行而提交处理器状态(processor state being committed from the execution of the instructions),指令所使用的物理寄存器被解除分配,等等。
核心706还可以包括总线单元714,以使得经由一个或多个总线(例如,总线804和/或812)能够实现处理器核心706的组件与其他组件(例如参考图8所讨论的组件)之间的通信。核心706还可以包括一个或多个寄存器816以存储由核心706的各种组件访问的数据(诸如与功耗状态设定有关的值)。
此外,即使图7示出了要经由互连812耦合到核心706的控制单元720,在各种示例中,控制单元720可以位于其他地方,诸如核心706内部,经由总线704耦合到核心,等等。
在一些示例中,本文所讨论的一个或多个组件可以体现为片上系统(SOC)设备。图9示出了根据示例的SOC封装的框图。如图9所示,SOC902包括一个或多个中央处理单元(CPU)核心920、一个或多个图形处理器单元(GPU)核心930、输入/输出(I/O)接口940和存储器控制器942。SOC封装902的各种组件可以耦合到互连或总线,诸如本文参考其它附图所讨论的。此外,SOC封装902可以包括更多或更少的组件,例如参考其他图所讨论的组件。此外,SOC封装902的每个组件可以包括一个或多个其他组件,例如,参考本文其它附图所讨论的。在一个示例中,SOC封装902(及其组件)被提供在例如封装在单个半导体器件中的一个或多个集成电路(IC)管芯上。
如图9所示,SOC封装902经由存储器控制器942耦合到存储器960(其可以与本文参考其他附图讨论的存储器相似或相同)。在一个示例中,存储器960(或其一部分)可以集成在SOC封装902上。
I/O接口940可以例如经由诸如本文参照其他图所讨论的互连和/或总线耦合到一个或多个I/O设备970。I/O设备970可以包括键盘、鼠标、触摸板、显示器、图像/视频捕捉设备(例如相机或摄像机/录像机)、触摸屏、扬声器等等中的一个或多个。
图10示出根据示例以点对点(PtP)配置布置的计算系统1000。具体地,图10示出了其中处理器、存储器和输入/输出设备通过多个点对点接口互连的系统。参考图2讨论的操作可以由系统1000的一个或多个组件执行。
如图10所示,系统1000可以包括若干个处理器,为了清楚,仅示出了两个处理器1002和1004。处理器1002和1004每个都可以包括本地存储器控制器集线器(MCH)1006和1008,以实现与存储器1010和1012的通信。在一些示例中,MCH 1006和1008可以包括图1的存储器控制器120和/或逻辑125。
在一个示例中,处理器1002和1004可以是参考图7讨论的处理器702之一。处理器1002和1004可以分别使用PtP接口电路1016和1018经由点对点(PtP)接口1014来交换数据。此外,处理器1002和1004均可通过使用点对点接口电路1026,1028,1030和1032的各个PtP接口1022和1024与芯片组1020交换数据。芯片组1020可以进一步使用PtP接口电路1037经由例如高性能图形接口1036与高性能图形电路1034交换数据。
如图10所示,图1的核心106和/或高速缓存108中的一个或多个可以位于处理器902和904内。然而,其他示例可以存在于图9的系统900内的其他电路、逻辑单元或设备中。此外,其他示例可以分布在图9所示的若干个电路、逻辑单元或设备中。
芯片组920可以使用PtP接口电路941与总线940通信。总线940可以具有与其通信的一个或多个设备,例如总线桥942和I/O设备943。通过总线944,总线桥943可以与其他设备诸如键盘/鼠标945、通信设备946(诸如调制解调器、网络接口设备或可以与计算机网络803通信的其他通信设备)、音频I/O设备和/或数据存储设备948进行通信。数据存储设备948(其可以是硬盘驱动器或基于NAND闪存的固态驱动器)可以存储可由处理器902和/或904执行的代码949。
以下涉及进一步的示例。
示例1是一种电子设备,包括:至少一个处理器,高速缓存存储器,其通信地耦合到至少一个处理器,控制器,所述控制器通信地耦合到高速缓存存储器并且包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:接收要对高速缓存存储器中的第一数据元素进行操作的第一事务,在易失性存储器中执行针对第一数据元素的查找操作,并且响应于失败的查找操作而生成高速缓存擦除提示,将高速缓存擦除提示转发到高速缓存擦除引擎,并且至少部分地基于高速缓存擦除提示来识别要擦除的一个或多个高速缓存行。
在示例2中,示例1的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:擦除高速缓存存储器中与一个或多个标签相关联的部分。
在示例3中,示例1-2中任一个的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:指定所述高速缓存存储器的所述部分作为替换操作的潜在受害者。
在实施例4中,示例1-3中任一项的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:实现替换操作以覆写潜在受害者中的数据的至少一部分。
在示例5中,示例1-4中任一个的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:确定主动高速缓存擦除能力是否被激活,以及,响应于确定主动高速缓存擦除能力被激活:生成高速缓存擦除提示,将高速缓存擦除提示转发到高速缓存擦除引擎,以及至少部分地基于高速缓存擦除提示来识别要擦除的一个或多个高速缓存行。
在示例6中,示例1-5中任一个的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:定位最近最少使用(LRU)高速缓存块并将LRU高速缓存块分配为高速缓存提示。
在示例7中,示例1-6中任一个的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:定位与高速缓存命中相关联的高速缓存块,并将高速缓存块分配为高速缓存提示。
实施例8是控制器,其通信地耦合到高速缓存存储器,并且包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:接收要对高速缓存存储器中的第一数据元素进行操作的第一事务,在易失性存储器中执行针对第一数据元素的查找操作,以及响应于失败的查找操作:生成高速缓存擦除提示,将高速缓存擦除提示转发到高速缓存擦除引擎,并至少部分地基于高速缓存擦除提示来识别要擦除的一个或多个高速缓存行。
在示例9中,示例8的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:擦除所述高速缓存存储器中与一个或多个标签相关联的部分。
在示例10中,示例8-9中任一项的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:指定所述高速缓存存储器的所述部分作为替换操作的潜在受害者。
在示例11中,示例8-10中任一项的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:实现替换操作以覆写潜在受害者中的数据的至少一部分。
在示例12中,示例8-11中任一项的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:确定主动高速缓存擦除能力是否被激活,并且响应于确定主动高速缓存擦除能力被激活:生成高速缓存擦除提示,将高速缓存擦除提示转发到高速缓存擦除引擎,并至少部分地基于高速缓存擦除提示来识别要擦除的一个或多个缓冲行。
在示例13中,示例8-12中任一个的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:定位最近最少使用(LRU)高速缓存块,以及将LRU高速缓存块分配为高速缓存提示。
在示例14中,示例8-13中任一个的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:定位与高速缓存命中相关联的高速缓存块,并将高速缓存块分配为高速缓存提示。
示例15是一种电子设备,包括:至少一个处理器,高速缓存存储器,所述高速缓存存储器通信地耦合到所述至少一个处理器,控制器,所述控制器通信地耦合到高速缓存存储器并且包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:生成高速缓存擦除提示,将高速缓存擦除提示转发到高速缓存擦除引擎,并至少部分基于高速缓存擦除提示来识别要擦除的一个或多个高速缓存行。
在示例16中,示例15的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:擦除所述高速缓存存储器中与一个或多个标签相关联的部分。
在示例17中,示例15-16中任一项的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:监视高速缓存存储器中的脏高速缓存行的数量,以及仅当脏高速缓存行的数量超过阈值时才生成高速缓存擦除提示。
在示例18中,示例15-17中任一项的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:实现替换操作以覆写潜在受害者中的数据的至少一部分。
示例18是控制器,通信地耦合到高速缓存存储器并且包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:生成高速缓存擦除提示,将高速缓存擦除提示转发到高速缓存擦除引擎,以及至少部分地基于高速缓存转储清除提示来识别要擦除的一个或多个高速缓存行。
在示例19中,示例18的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:擦除所述高速缓存存储器中与一个或多个标签相关联的部分。
在示例20中,示例18-19中任一项的主题可以可选地包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:监视高速缓存存储器中的脏高速缓存行的数量,并且仅当脏高速缓存行的数量超过阈值时才生成高速缓存擦除提示。
在各种示例中,本文例如参考图1-10讨论的操作,可以被实现为可以作为计算机程序产品提供的硬件(例如,电路)、软件、固件、微代码或其组合,例如包括其上存储有用于对计算机进行编程以执行本文所讨论的过程的指令(或软件程序)的有形(例如非暂时性)机器可读或计算机可读介质。此外,术语“逻辑”可以包括例如软件、硬件或软件和硬件的组合。机器可读介质可以包括诸如本文讨论的那些的存储设备。
说明书中对“一个示例”或“示例”的参考意味着结合该示例描述的特定特征、结构或特性可以包括在至少一个实现方式中。说明书中各处的短语“在一个示例中”的出现可以或者可以不全部是指相同的示例。
此外,在说明书和权利要求书中,可以使用术语“耦合”和“连接”以及它们的衍生词。在一些示例中,“连接”可以用于指示两个或更多个元件彼此直接物理或电接触。“耦合”可能意味着两个或更多个元件处于直接物理或电接触。然而,“耦合”也可能意味着两个或更多个元件可能彼此不直接接触,但是仍然可以彼此协作或相互作用。
因此,尽管已经以结构特征和/或方法动作特有的语言描述了示例,但是应当理解,所要求保护的主题可以不限于所描述的特定特征或动作。相反,具体特征和动作被公开为实现所要求保护的主题的示例形式。

Claims (20)

1.一种电子设备,包括:
至少一个处理器;
高速缓存存储器,通信地耦合到所述至少一个处理器;
控制器,通信地耦合到所述高速缓存存储器,并且包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
接收要对所述高速缓存存储器中的第一数据元素进行操作的第一事务;
在易失性存储器中执行针对所述第一数据元素的查找操作;以及
响应于失败的查找操作:
生成高速缓存擦除提示;
将所述高速缓存擦除提示转发到高速缓存擦除引擎;以及
至少部分地基于所述高速缓存擦除提示来识别要擦除的一个或多个高速缓存行。
2.根据权利要求1所述的电子设备,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
擦除所述高速缓存存储器中与一个或多个标签相关联的部分。
3.根据权利要求2所述的电子设备,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
指定所述高速缓存存储器的所述部分作为替换操作的潜在受害者。
4.根据权利要求3所述的电子设备,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
实现替换操作以覆写所述潜在受害者中的数据的至少一部分。
5.根据权利要求1所述的电子设备,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
确定主动高速缓存擦除能力是否被激活,以及;
响应于确定所述主动高速缓存擦除能力被激活:
生成高速缓存擦除提示;
将所述高速缓存擦除提示转发到高速缓存擦除引擎;以及
至少部分地基于所述高速缓存擦除提示来识别要擦除的一个或多个高速缓存行。
6.根据权利要求5所述的电子设备,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
定位最近最少使用(LRU)高速缓存块;以及
将所述LRU高速缓存块分配为高速缓存提示。
7.根据权利要求5所述的电子设备,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
定位与高速缓存命中相关联的高速缓存块;以及
将高速缓存块分配为高速缓存提示。
8.一种控制器,其通信地耦合到高速缓存存储器,并且包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
接收要对所述高速缓存存储器中的第一数据元素进行操作的第一事务;
在易失性存储器中执行针对所述第一数据元素的查找操作;以及
响应于失败的查找操作:
生成高速缓存擦除提示;
将所述高速缓存擦除提示转发到高速缓存擦除引擎;以及
至少部分地基于所述高速缓存擦除提示来识别要擦除的一个或多个高速缓存行。
9.根据权利要求8所述的控制器,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
擦除所述高速缓存存储器中与一个或多个标签相关联的部分。
10.根据权利要求9所述的控制器,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
指定所述高速缓存存储器的所述部分作为替换操作的潜在受害者。
11.根据权利要求10所述的控制器,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
实现替换操作以覆写所述潜在受害者中的数据的至少一部分。
12.根据权利要求8所述的控制器,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
确定主动高速缓存擦除能力是否被激活;
响应于确定所述主动高速缓存擦除能力被激活:
生成高速缓存擦除提示;
将所述高速缓存擦除提示转发到高速缓存擦除引擎;以及
至少部分地基于所述高速缓存擦除提示来识别要擦除的一个或多个高速缓存行。
13.根据权利要求12所述的控制器,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
定位最近最少使用(LRU)高速缓存块;以及
将所述LRU高速缓存块分配为高速缓存提示。
14.根据权利要求12所述的控制器,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
定位与高速缓存命中相关联的高速缓存块;以及
将高速缓存块分配为高速缓存提示。
15.一种电子设备,包括:
至少一个处理器;
高速缓存存储器,通信地耦合到所述至少一个处理器;
控制器,通信地耦合到所述高速缓存存储器,并且包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
生成高速缓存擦除提示;
将所述高速缓存擦除提示转发到高速缓存擦除引擎;以及
至少部分地基于所述高速缓存擦除提示来识别要擦除的一个或多个高速缓存行。
16.根据权利要求15所述的电子设备,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
擦除所述高速缓存存储器中与一个或多个标签相关联的部分。
17.根据权利要求15所述的电子设备,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
监视所述高速缓存存储器中的脏高速缓存行的数量;以及
只有当所述脏高速缓存行的数量超过阈值时才生成高速缓存擦除提示。
18.一种控制器,其通信地耦合到高速缓存存储器,并且包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
生成高速缓存擦除提示;
将所述高速缓存擦除提示转发到高速缓存擦除引擎;以及
至少部分地基于所述高速缓存擦除提示来识别要擦除的一个或多个高速缓存行。
19.根据权利要求19所述的控制器,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
擦除所述高速缓存存储器中与一个或多个标签相关联的部分。
20.根据权利要求19所述的控制器,其中,所述控制器还包括至少部分地包含硬件逻辑的逻辑,所述逻辑用于:
监视所述高速缓存存储器中的脏高速缓存行的数量;以及
只有当所述脏高速缓存行的数量超过阈值时才生成高速缓存擦除提示。
CN201680024415.XA 2015-05-26 2016-04-26 管理扇区高速缓存 Active CN107592927B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/721,625 2015-05-26
US14/721,625 US9767041B2 (en) 2015-05-26 2015-05-26 Managing sectored cache
PCT/US2016/029377 WO2016191016A1 (en) 2015-05-26 2016-04-26 Managing sectored cache

Publications (2)

Publication Number Publication Date
CN107592927A true CN107592927A (zh) 2018-01-16
CN107592927B CN107592927B (zh) 2022-03-04

Family

ID=55861310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680024415.XA Active CN107592927B (zh) 2015-05-26 2016-04-26 管理扇区高速缓存

Country Status (3)

Country Link
US (1) US9767041B2 (zh)
CN (1) CN107592927B (zh)
WO (1) WO2016191016A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114020657A (zh) * 2021-11-03 2022-02-08 无锡沐创集成电路设计有限公司 报文查找方法、系统、存储介质及电子设备

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170091099A1 (en) * 2015-09-25 2017-03-30 Zvika Greenfield Memory controller for multi-level system memory having sectored cache
US10915453B2 (en) 2016-12-29 2021-02-09 Intel Corporation Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures
US10241916B2 (en) * 2017-03-31 2019-03-26 Intel Corporation Sparse superline removal
US10452548B2 (en) * 2017-09-28 2019-10-22 Advanced Micro Devices, Inc. Preemptive cache writeback with transaction support
US11500555B2 (en) * 2020-09-04 2022-11-15 Micron Technology, Inc. Volatile memory to non-volatile memory interface for power management
US11455251B2 (en) * 2020-11-11 2022-09-27 Advanced Micro Devices, Inc. Enhanced durability for systems on chip (SOCs)
US20240232095A9 (en) * 2022-10-24 2024-07-11 Micron Technology, Inc. Memory device having cache storing cache data and scrub data

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027945A1 (en) * 2003-07-30 2005-02-03 Desai Kiran R. Methods and apparatus for maintaining cache coherency
CN1652092A (zh) * 2003-12-09 2005-08-10 国际商业机器公司 不同高速缓存级上具有关联集重叠同余组的多级高速缓存
CN101490654A (zh) * 2006-07-21 2009-07-22 微软公司 在虚拟机中避免高速缓存行共享
CN102804151A (zh) * 2009-06-29 2012-11-28 惠普开发有限公司 访问作为缓存一致性域的部分的内存刀片的内存代理
CN103744800A (zh) * 2013-12-30 2014-04-23 龙芯中科技术有限公司 面向重放机制的缓存操作方法及装置
US20140181377A1 (en) * 2010-01-29 2014-06-26 Netapp, Inc. Concurrent content management and wear optimization for a non-volatile solid-state cache
US20140269057A1 (en) * 2013-03-15 2014-09-18 Samsung Electronics Co., Ltd. Non-volatile memory device and programming method
US8848576B2 (en) * 2012-07-26 2014-09-30 Oracle International Corporation Dynamic node configuration in directory-based symmetric multiprocessing systems
US20150019823A1 (en) * 2013-07-15 2015-01-15 Advanced Micro Devices, Inc. Method and apparatus related to cache memory
CN104636182A (zh) * 2013-11-06 2015-05-20 国际商业机器公司 一种操作数据处理系统的方法、数据处理系统和处理器

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9118312D0 (en) 1991-08-24 1991-10-09 Motorola Inc Real time cache implemented by dual purpose on-chip memory
DE4206040A1 (de) 1992-02-27 1993-09-02 Bayer Ag Neue reaktivfarbstoffe
US5375216A (en) * 1992-02-28 1994-12-20 Motorola, Inc. Apparatus and method for optimizing performance of a cache memory in a data processing system
US6134634A (en) * 1996-12-20 2000-10-17 Texas Instruments Incorporated Method and apparatus for preemptive cache write-back
US5895488A (en) * 1997-02-24 1999-04-20 Eccs, Inc. Cache flushing methods and apparatus
US6119205A (en) * 1997-12-22 2000-09-12 Sun Microsystems, Inc. Speculative cache line write backs to avoid hotspots
GB2345987B (en) * 1999-01-19 2003-08-06 Advanced Risc Mach Ltd Memory control within data processing systems
US6633299B1 (en) * 2000-01-10 2003-10-14 Intel Corporation Method and apparatus for implementing smart allocation policies for a small frame buffer cache serving 3D and 2D streams
US7472230B2 (en) * 2001-09-14 2008-12-30 Hewlett-Packard Development Company, L.P. Preemptive write back controller
US6810465B2 (en) * 2001-10-31 2004-10-26 Hewlett-Packard Development Company, L.P. Limiting the number of dirty entries in a computer cache
US8543766B2 (en) * 2011-06-10 2013-09-24 Freescale Semiconductor, Inc. Writing data to system memory in a data processing system in which cache line states are tracked
WO2013095437A1 (en) 2011-12-21 2013-06-27 Intel Corporation System and method for intelligently flushing data from a processor into a memory subsystem
US9081719B2 (en) * 2012-08-17 2015-07-14 Freescale Semiconductor, Inc. Selective memory scrubbing based on data type
US9372803B2 (en) * 2012-12-20 2016-06-21 Advanced Micro Devices, Inc. Method and system for shutting down active core based caches
US9378151B2 (en) 2013-08-05 2016-06-28 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method of hinted cache data removal

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027945A1 (en) * 2003-07-30 2005-02-03 Desai Kiran R. Methods and apparatus for maintaining cache coherency
CN1652092A (zh) * 2003-12-09 2005-08-10 国际商业机器公司 不同高速缓存级上具有关联集重叠同余组的多级高速缓存
CN101490654A (zh) * 2006-07-21 2009-07-22 微软公司 在虚拟机中避免高速缓存行共享
CN102804151A (zh) * 2009-06-29 2012-11-28 惠普开发有限公司 访问作为缓存一致性域的部分的内存刀片的内存代理
US20140181377A1 (en) * 2010-01-29 2014-06-26 Netapp, Inc. Concurrent content management and wear optimization for a non-volatile solid-state cache
US8848576B2 (en) * 2012-07-26 2014-09-30 Oracle International Corporation Dynamic node configuration in directory-based symmetric multiprocessing systems
US20140269057A1 (en) * 2013-03-15 2014-09-18 Samsung Electronics Co., Ltd. Non-volatile memory device and programming method
US20150019823A1 (en) * 2013-07-15 2015-01-15 Advanced Micro Devices, Inc. Method and apparatus related to cache memory
CN104636182A (zh) * 2013-11-06 2015-05-20 国际商业机器公司 一种操作数据处理系统的方法、数据处理系统和处理器
CN103744800A (zh) * 2013-12-30 2014-04-23 龙芯中科技术有限公司 面向重放机制的缓存操作方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈占龙等: "面向多核处理器的共享cache优化研究进展", 《计算机应用研究》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114020657A (zh) * 2021-11-03 2022-02-08 无锡沐创集成电路设计有限公司 报文查找方法、系统、存储介质及电子设备
CN114020657B (zh) * 2021-11-03 2023-03-17 无锡沐创集成电路设计有限公司 报文查找方法、系统、存储介质及电子设备

Also Published As

Publication number Publication date
WO2016191016A1 (en) 2016-12-01
US9767041B2 (en) 2017-09-19
CN107592927B (zh) 2022-03-04
US20160350237A1 (en) 2016-12-01

Similar Documents

Publication Publication Date Title
CN107592927B (zh) 管理扇区高速缓存
US9223710B2 (en) Read-write partitioning of cache memory
US8924651B2 (en) Prefetch optimization in shared resource multi-core systems
CN105339908B (zh) 用于支持持久存储器的方法和装置
CN110869914B (zh) 硬件预取器的基于利用率的节流
US9075730B2 (en) Mechanisms to bound the presence of cache blocks with specific properties in caches
US8407418B2 (en) Information processing apparatus and driver
US8639881B2 (en) Information processing apparatus and driver
US20080059707A1 (en) Selective storage of data in levels of a cache memory
US20140136797A1 (en) Technique to share information among different cache coherency domains
CN110226157A (zh) 用于减少行缓冲冲突的动态存储器重新映射
US9075904B2 (en) Vulnerability estimation for cache memory
CN102804152A (zh) 对存储器层次结构中的闪存的高速缓存一致性支持
US9684595B2 (en) Adaptive hierarchical cache policy in a microprocessor
US8131931B1 (en) Configurable cache occupancy policy
CN104798032B (zh) 用于缩短缓存的清空时间的设备和方法
KR20170129709A (ko) 고체 상태 드라이브에서 가비지 수집 리소스 할당을 적응시키는 메커니즘
US10120806B2 (en) Multi-level system memory with near memory scrubbing based on predicted far memory idle time
CN111344685B (zh) 在断电状态期间保留处理器内核的高速缓存条目
CN104272277A (zh) 用于快速缓存断电的设备和方法
CN111480151A (zh) 将高速缓存线从共用存储器页面冲洗到存储器
US11526449B2 (en) Limited propagation of unnecessary memory updates
US10997064B2 (en) Ordering updates for nonvolatile memory accesses
US11354127B2 (en) Method of managing multi-tier memory displacement using software controlled thresholds
USRE49818E1 (en) Information processing method in a multi-level hierarchical memory system

Legal Events

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