CN116150047A - 用于操作高速缓存存储设备以高速缓存与存储器地址相关联的数据的技术 - Google Patents
用于操作高速缓存存储设备以高速缓存与存储器地址相关联的数据的技术 Download PDFInfo
- Publication number
- CN116150047A CN116150047A CN202211433321.1A CN202211433321A CN116150047A CN 116150047 A CN116150047 A CN 116150047A CN 202211433321 A CN202211433321 A CN 202211433321A CN 116150047 A CN116150047 A CN 116150047A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- storage device
- memory
- access
- 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.)
- Pending
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/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/0866—Addressing 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/0871—Allocation or management of cache space
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating 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/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/0877—Cache access modes
-
- 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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/1028—Power efficiency
-
- 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/60—Details of cache memory
- G06F2212/604—Details relating to cache allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本技术提供了一种用于高速缓存数据的装置和方法。该装置具有:用于高速缓存与存储器地址相关联的数据的高速缓存存储设备;用于接收访问请求的第一接口,其中每个访问请求是访问该访问请求指示的存储器地址处的数据的请求;以及用于耦合到用于控制对存储器的访问的存储器控制器的第二接口。此外,高速缓存控制电路用于根据基于功耗的分配策略来控制将数据分配到该高速缓存存储设备中,该分配策略寻求选择哪个数据被高速缓存在该高速缓存存储设备中,目的是节省与经由该第二接口对该存储器的访问相关联的功率。为该高速缓存控制电路考虑的给定访问请求提供关联高速缓存提示信息,该提示信息为该给定访问请求指示的存储器地址处的给定数据提供一个或多个使用指示,并且该高速缓存控制电路被布置为在应用该基于功耗的分配策略以确定是否在该高速缓存存储设备中高速缓存该给定数据时参考该关联高速缓存提示信息。
Description
背景技术
本发明涉及一种用于操作高速缓存存储设备以高速缓存与存储器地址相关联的数据的技术。
通常,提供高速缓存以寻求改进被布置为对数据执行操作的相关联处理元件对该数据的访问时间,从而改进那些处理元件的性能。虽然某些高速缓存可能直接与特定处理元件相关联,但系统通常还包括可由多个处理元件共享的高速缓存。例如,系统通常采用高速缓存的分层结构,不仅包括与特定处理元件相关联的一级或多级本地高速缓存,而且包括可高速缓存数据以供多个处理元件访问的较低级别高速缓存。
当与多个处理元件共享高速缓存时,为了使其有效地改进这些处理元件的性能,通常要求该高速缓存相对较大。通常情况下,采取措施来寻求确保由高速缓存的使用而带来的任何性能改进在可以访问该高速缓存的所有相关联的处理元件之间共享。如果在不同的处理元件之间静态分配高速缓存资源,这可能难以实现。然而,试图提供高速缓存资源的更细粒度管理以考虑系统内的不同工作负荷情况可显著地增加高速缓存的复杂性,并且可能需要软件来监视当前的系统操作情况,以便检测何时应改变用于分配高速缓存资源的策略,然后通常需要应用程序编程接口(API)来使软件能够相应地重新配置高速缓存资源的分配。
发明内容
在一个示例性布置中,提供了一种装置,该装置包括:高速缓存存储设备,该高速缓存存储设备用于高速缓存与存储器地址相关联的数据;第一接口,该第一接口用于接收访问请求,其中每个访问请求是访问该访问请求指示的存储器地址处的数据的请求;第二接口,该第二接口耦合到用于控制对存储器的访问的存储器控制器;以及高速缓存控制电路,该高速缓存控制电路用于根据基于功耗的分配策略来控制将数据分配到该高速缓存存储设备中,该基于功耗的分配策略寻求选择哪个数据被高速缓存在该高速缓存存储设备中,目的是节省与经由该第二接口对该存储器的访问相关联的功率;其中为该高速缓存控制电路考虑的给定访问请求提供关联高速缓存提示信息,该关联高速缓存提示信息为该给定访问请求指示的存储器地址处的给定数据提供一个或多个使用指示,并且该高速缓存控制电路被布置为在应用该基于功耗的分配策略以确定是否在该高速缓存存储设备中高速缓存该给定数据时参考该关联高速缓存提示信息。
在另一示例性布置中,提供了一种操作高速缓存存储设备以高速缓存与存储器地址相关联的数据的方法,该方法包括:在第一接口处接收访问请求,其中每个访问请求是访问该访问请求指示的存储器地址处的数据的请求;将第二接口耦合到用于控制对存储器的访问的存储器控制器;以及根据基于功耗的分配策略来控制将数据分配到该高速缓存存储设备中,该基于功耗的分配策略寻求选择哪个数据被高速缓存在该高速缓存存储设备中,目的是节省与经由该第二接口对该存储器的访问相关联的功率;其中为给定访问请求提供关联高速缓存提示信息,该关联高速缓存提示信息为该给定访问请求指示的存储器地址处的给定数据提供一个或多个使用指示,并且在应用该基于功耗的分配策略以确定是否在该高速缓存存储设备中高速缓存该给定数据时参考该关联高速缓存提示信息。
在又一示例性布置中,提供了一种非暂态计算机可读介质,该非暂态计算机可读介质用于存储用于制造装置的计算机可读代码,该装置包括:高速缓存存储设备,该高速缓存存储设备用于高速缓存与存储器地址相关联的数据;第一接口,该第一接口用于接收访问请求,其中每个访问请求是访问该访问请求指示的存储器地址处的数据的请求;第二接口,该第二接口耦合到用于控制对存储器的访问的存储器控制器;以及高速缓存控制电路,该高速缓存控制电路用于根据基于功耗的分配策略来控制将数据分配到该高速缓存存储设备中,该基于功耗的分配策略寻求选择哪个数据被高速缓存在该高速缓存存储设备中,目的是节省与经由该第二接口对该存储器的访问相关联的功率;其中为该高速缓存控制电路考虑的给定访问请求提供关联高速缓存提示信息,该关联高速缓存提示信息为该给定访问请求指示的存储器地址处的给定数据提供一个或多个使用指示,并且该高速缓存控制电路被布置为在应用该基于功耗的分配策略以确定是否在该高速缓存存储设备中高速缓存该给定数据时参考该关联高速缓存提示信息。
附图说明
将参考如附图所示的本技术的示例,仅以例示的方式进一步描述本技术,其中:
图1是根据一个示例性具体实施的系统的框图;
图2是示出根据一个示例性具体实施的在末级高速缓存中提供的部件的框图;
图3A示出了根据一个示例性具体实施高速缓存提示信息可以如何与访问请求相关联,而图3B示出了根据一个示例性具体实施使用指示信息可以如何与高速缓存在高速缓存的高速缓存行内的数据相关联地被维护;
图4是示出根据一个示例性具体实施的高速缓存对访问请求的处理的流程图;
图5是示出根据一个示例性具体实施的清理操作的执行的流程图;
图6是示出根据另选的示例性具体实施的在末级高速缓存内提供的部件的框图;并且
图7是示出根据另选的示例性具体实施的系统的框图。
具体实施方式
根据本文所述的技术,改变了在系统内存在至少一个高速缓存的基本前提,因为对于此类高速缓存,其目的本身不是为可以访问该高速缓存的任何特定处理元件提供性能改进,而是寻求使用高速缓存来降低与对存储器的访问相关联的功耗。特别地,系统内很大一部分功耗可能来自于对存储器的访问,无论是向存储器写入数据还是从存储器读取数据。本文所述的技术的目的是寻求减少此类活动的数量和/或影响对存储器的访问顺序,以便寻求减少与此类存储器访问相关联的总体功耗。
为了实现该目的,不是关注哪个处理元件正在寻求使用高速缓存,而是将重点放在如何使用寻求访问的数据,然后使用指示预期使用的信息来影响是否将数据分配到高速缓存中。
更具体地,根据本文所述的技术,提供了一种装置,该装置具有:用于高速缓存与存储器地址相关联的数据的高速缓存存储设备;用于接收访问请求的第一接口,其中每个访问请求是访问该访问请求指示的存储器地址处的数据的请求;以及用于耦合到用于控制对存储器的访问的存储器控制器的第二接口。此外,提供高速缓存控制电路,以根据基于功耗的分配策略来控制将数据分配到该高速缓存存储设备中,该分配策略寻求选择哪个数据被高速缓存在该高速缓存存储设备中,目的是节省与经由该第二接口对该存储器的访问相关联的功率。为了使基于功耗的分配策略能够被应用,可以为高速缓存控制电路考虑的给定访问请求提供关联高速缓存提示信息,该关联高速缓存提示信息为给定访问请求指示的存储器地址处的给定数据提供一个或多个使用指示。然后,高速缓存控制电路可以被布置为在应用基于功耗的分配策略以确定是否在高速缓存存储设备中高速缓存给定数据时,参考关联高速缓存提示信息。
通过这样的方法,当与旨在提高相关联的处理元件的性能的正常分配策略相比时,可以显著地减少与对存储器的访问相关联的功耗。当使用本文所述的技术时,通过使用高速缓存仍可能带来性能改进,但当高速缓存控制电路作出关于是否高速缓存与访问请求相关联的数据的决策时,性能改进不是主要重点。
使用此类基于功耗的分配策略带来了其他益处。例如,不需要由软件基于对当前系统运行情况的监视来提供高速缓存资源的动态重新配置,而是基于功耗的分配策略不需要根据能够访问高速缓存的处理元件所承担的任务而改变。另外,节省的动态功率可以随着高速缓存的大小而扩展,因此,无论高速缓存有多小,都可以始终节省动态功率。此外,可以不考虑具体的高速缓存实现来应用本文所述的技术,并且因此例如可以不考虑高速缓存是否被组织为全关联高速缓存还是组关联缓存来应用这些技术。
在一个示例性具体实施中,高速缓存控制电路可以被布置为:在通过应用基于功耗的分配策略确定给定数据将不被高速缓存在高速缓存存储设备中时,经由第二接口将给定访问请求转发到存储器控制器,以使该给定数据在存储器中被访问。因此,在这种情况下,可以无延迟地将访问转发到存储器进行处理。
在一个示例性具体实施中,高速缓存控制电路被布置为:在考虑到由高速缓存提示信息提供的一个或多个使用指示,预期给定数据的高速缓存带来与经由第二接口对存储器的访问相关联的功耗的节省时,寻求将该给定数据高速缓存在高速缓存存储设备中。因此,当高速缓存提示信息指示数据的使用情况是:如果数据被高速缓存,则潜在地可以实现与对存储器的访问相关联的功耗节省,然后高速缓存控制电路可以寻求将该数据高速缓存在高速缓存存储设备中。
由高速缓存提示信息提供的使用指示可以采用各种形式。在一个示例性具体实施中,高速缓存提示信息提供的一个使用指示是“将失效”指示,该“将失效”指示在被设置时指示给定数据是临时有效的,并且在这种情况下,高速缓存控制电路被布置为在该“将失效”指示被设置时寻求将该给定数据高速缓存在高速缓存存储设备中。高速缓存此类数据是非常有益的,因为如果该数据在其无效时仍然被高速缓存,则根本不需要将该数据写入存储器,因此在将该数据写入存储器时将不消耗功率。应当理解,有各种方式可以指示使用指示的“设置”状态,因此例如在一个具体实施中,逻辑1值可以指示设置状态,而在另一个具体实施中,逻辑0值可以指示设置状态。
作为可以采用的使用指示的另一示例,由高速缓存提示信息提供的一个使用指示可以是多次访问指示,该多次访问指示在被设置时指示预期将经由第一接口接收访问给定数据的多次访问请求,并且高速缓存控制电路被布置为在该多次访问指示被设置时寻求将该给定数据高速缓存在高速缓存存储设备中。特别地,如果期望可以多次访问特定数据项,则如果在发生这些多次访问的同时将该数据保留在高速缓存中,则可以实现显著的功率节省,因为在每种情况下都将出现高速缓存命中,从而避免了访问存储器的需要。
在一个示例性具体实施中,预期的多个访问请求可以全部来自同一处理单元,例如已经发出初始访问请求并设置高速缓存提示信息以指示数据可能被多次访问的处理单元。然而,在其他情况下,多次访问实际上可以发生在不同的处理元件上。应当理解,在预期此类多次访问的情况下,不管哪些处理元件将执行后续访问,将相关联数据存储在高速缓存中可能是有益的,因为不管哪些处理元件执行这些访问,仍可实现与对存储器的访问相关联的功耗节省。在后一种情况下,多次访问可能发生在不同的处理元件上,发出初始访问请求的处理元件仍有可能预期这些多次访问并相应地设置高速缓存提示信息。另选地,系统内的某些中间实体,例如在从处理元件到高速缓存的路径内,可能能够检测到被其他处理元件访问的可能性,并相应地设置高速缓存提示信息。
作为可以在一些示例性具体实施中使用的使用指示的又一示例,高速缓存提示信息提供的一个使用指示可以是“对同一存储器块的多个请求”指示,该“对同一存储器块的多个请求”指示在被设置时指示给定访问请求是预期将要发出的访问存储器的同一存储器块内的数据的多个访问请求之一,并且高速缓存控制电路被布置为在该“对同一存储器块的多个请求”指示被设置时寻求将给定数据高速缓存在高速缓存存储设备中。
在一些示例性具体实施中,“对同一存储器块的多个请求”指示可以仅在预期将在给定时间段内发出多个请求的情况下被设置,并且在该情况下,至少在该给定时间段内高速缓存数据可能是有益的,因为它可以允许有时间来接收和高速缓存其他请求,并且因此允许在适当时优化对存储器块的访问,例如通过同时或紧密连续地驱逐与所有这些多个访问请求相关的数据,使得存储器控制器可以在存储器块被配置用于访问时执行对存储器块的所有这些访问。
通常情况下,存储设备的结构使得可更有效地执行对特定存储器块的多次访问而非每次访问均需要在不同的存储器块之间不断切换。例如,在DRAM技术中,存在与打开特定页(也称为行)相关联的额外开销,使得可在其中执行访问,并且如果可在打开特定页时执行多次访问,也使得可以分摊开销。虽然在DRAM技术中此类开销可能与页相关联,但在与存储器内的其他物理结构相关联的其他存储器技术中可出现类似问题,并且因此本文中术语存储器区块可被视为存储器的具有与准备该存储器区块进行访问相关联的相关联开销的物理区段,因此,如果在存储器块可用于访问的同时执行对同一存储器块的多次访问,则在功耗方面存在益处。
因此,应当理解,如果高速缓存提示信息可以识别可能存在对同一存储器块的多次访问,则至少将相关联数据临时高速缓存在高速缓存存储设备内是有益的。特别地,如前所述,这允许有时间也接收以同一存储器块为目标的附加访问请求和高速缓存其识别的数据,并且在适当的时候,与多次访问相关联的高速缓存数据可以作为序列从高速缓存中驱逐。然后,通过在存储器块被配置用于访问的同时允许对存储器块进行多次更新,这允许存储器控制器对存储器执行更有效的访问。
并非所有的使用指示都需要确定在哪些情况下优先考虑高速缓存数据。例如,高速缓存提示信息提供的一个使用指示可以是不高速缓存指示,该不高速缓存指示在被设置时指示不应当高速缓存给定数据。特别地,如果已知将不存在与对存储器的访问相关联的任何潜在的功耗节省(该功耗节省将由给定数据的高速缓存而产生),则此类使用指示可用于确定数据应当直接传递给存储器控制器而不是被高速缓存。这避免了做出访问请求的处理元件对与访问相关联的延迟产生任何额外的影响,因为访问可以被直接路由到存储器控制器上,而无需高速缓存控制电路执行关于数据是否应当被高速缓存的任何进一步分析。在一些示例性具体实施中,在这种情况下,仍然在高速缓存中执行查找以确认访问请求指定的存储器地址处的数据尚未存储在高速缓存中可能是适合的,以便保证数据的一致性。然而,此检查通常可与存储器访问并行执行,以便避免给访问请求的处理增加延迟。
应当注意,不必为每个访问请求提供高速缓存提示信息。特别地,在一个示例性具体实施中,高速缓存控制电路被布置为:在没有任何设置的使用指示的情况下,假定预期给定数据的高速缓存不会带来与经由第二接口对存储器的访问相关联的功耗节省。在这种情况下,仍然可以允许高速缓存控制电路决定对数据进行高速缓存,但是缺乏高速缓存提示信息仅仅指示不存在由于这样做而产生的已知的功率节省。然而,出于其他原因对数据进行高速缓存仍然是有益的。例如,如果在高速缓存内存在容纳数据而不需要驱逐任何其他数据的空间,则对数据进行高速缓存可带来一些性能益处。
存在多种可以将高速缓存提示信息与给定访问请求相关联的方式。例如,请求器元件可以被布置为当给定访问请求由该请求器元件发出时,生成用于与该给定访问请求相关联的高速缓存提示信息。作为另一示例,位于请求器元件和第一接口之间的路径中的中间元件可被布置为基于对与访问请求相关联的其他信息的分析来生成高速缓存提示信息。通过具体的示例,此类中间元件可以能够利用已经提供的由另一实体(例如系统存储器管理单元(SMMU))使用的信息,以便推断数据的使用信息。
根据一个示例性具体实施,高速缓存控制电路被布置为:在确定给定数据应当被高速缓存在高速缓存存储设备中但该高速缓存存储设备中当前没有条目可用时,应用基于功耗的驱逐策略,以便寻求在高速缓存内选择其当前高速缓存的数据将从该高速缓存存储设备中驱逐的牺牲条目来为给定数据腾出空间,目的是节省与经由第二接口对存储器的访问相关联的功率。因此,通过应用基于功耗的驱逐策略,高速缓存控制电路可以被布置为:寻求标识当前存储在高速缓存中的数据,该数据在对存储器的访问方面可能比由当前访问请求识别的数据给出更少的功耗节省,并且在识别这种情况的情况下,则可以驱逐现有数据以为与当前访问请求相关联的数据腾出空间。
可以以各种方式配置高速缓存存储设备,但是在一个示例性具体实施中包括多个条目,并且每个条目具有与其关联的使用指示信息,该使用指示信息在数据由高速缓存控制电路分配到该条目中时被填充。然后,高速缓存控制电路可以被布置为:在应用基于功耗的驱逐策略时,寻求根据与用于驱逐的一个或多个候选条目中的每个条目相关联的使用指示信息,从用于驱逐的一个或多个候选条目中选择牺牲条目。例如,该使用指示信息可用于至少在相对意义上评估与对存储器的访问相关联的潜在功耗节省,这可作为高速缓存该数据的结果而实现。
在一个示例性具体实施中,高速缓存控制电路还被布置为:在寻求选择牺牲条目时,考虑由高速缓存提示信息为给定数据提供的一个或多个使用指示。因此,通过这样的方法,可以在可以通过高速缓存给定数据获得的感知的功耗益处和可以在用于驱逐的每个候选条目中的高速缓存的数据方面获得的感知的功耗益处之间进行比较,然后作出是否驱逐任何现有数据以为给定数据腾出空间的决定。
有各种方式可以布置高速缓存控制电路来执行上述分析。在一个示例性具体实施中,高速缓存控制电路被布置为:基于高速缓存存储设备的条目的关联使用指示信息将优先级与该高速缓存存储设备的条目相关联,使得基于第一给定条目的使用指示信息与第二给定条目的使用指示信息的比较,通过在该高速缓存存储设备中保留高速缓存在该第一给定条目中的数据而不是高速缓存在该第二给定条目中的数据,预期有与经由第二接口对存储器的访问相关联的更大的功率节省时,该第一给定条目具有比该第二给定条目更高的优先级。然后,高速缓存控制电路可以被布置为:当应用基于功耗的驱逐策略时,基于与每个候选条目相关联的优先级和高速缓存提示信息为给定数据提供的一个或多个使用指示来确定用于驱逐的一个或多个候选条目中的任一个候选条目是否适于选择为牺牲条目。
如果需要,当将优先级与高速缓存存储设备的特定条目相关联时,可以考虑附加信息。例如,高速缓存控制电路可以被布置为:基于高速缓存存储设备的条目的关联使用指示信息和自数据被高速缓存在该高速缓存存储设备中以来当前被高速缓存在这些条目中的数据是否已经被访问的指示,将优先级与该高速缓存存储设备的这些条目相关联。
当应用上述过程导致识别具有足够低的优先级的多个候选条目以保证数据的驱逐而为给定数据留出空间时,则在一个示例性具体实施中,将选择具有最低优先级的候选条目用于驱逐。
然而,作为应用上述过程的结果,也可能没有识别出合适的候选条目。在一个示例性具体实施中,该高速缓存控制电路被布置为:在考虑到由高速缓存提示信息为给定数据提供的一个或多个使用指示而确定不存在具有足够低的优先级的条目以指示预期通过驱逐该条目的当前高速缓存的数据来为该给定数据腾出空间会有与经由第二接口对存储器的访问相关联的功率节省时,经由该第二接口将给定访问请求转发到存储器控制器以使该给定数据在该存储器中被访问。因此,在这种情况下,访问请求将仅仅传播到存储器控制器,以便使数据在存储器中被访问。
在高速缓存存储设备内为其提供单独使用指示信息的条目可根据具体实施而变化。然而,在一个示例性具体实施中,每个条目是高速缓存行,并且因此为每个高速缓存行提供使用指示信息。
在一个示例性具体实施中,高速缓存控制电路可以被布置为:在发生一个或多个事件时,应用清理策略从高速缓存存储设备的一个或多个条目中驱逐比存储在存储器中的脏数据的副本更新的该脏数据。清理策略可以被布置为选择其脏数据将被驱逐的所述条目,目的是节省与经由第二接口对存储器的访问相关联的功率。可以触发清理策略的执行的一个或多个事件可以采取多种形式,但通过示例,此类事件可以是存储器控制器/存储器具有备用容量来处理由此类清理活动产生的访问的指示。
清理策略可以采取多种形式,但是在一个示例性具体实施中,该清理策略使得高速缓存控制电路被布置为根据以下规则中的一个或多个规则来选择条目进行驱逐:
禁止选择具有用于指示条目中的当前高速缓存数据是临时有效的关联使用指示信息集的任何条目用于驱逐,除非高速缓存存储设备中的所有条目具有用于指示这些条目中的该当前缓存数据是临时有效的其关联使用指示信息;
当以存储器中的同一存储器块为目标的多个条目具有高速缓存在其中的脏数据时,高速缓存控制电路被布置为一起驱逐这些多个条目中的高速缓存数据,以便允许存储器控制器在该同一存储器块被访问时更新来自这些多个被驱逐条目的数据;
在不存在以存储器中的同一存储器块为目标的多个条目的情况下,高速缓存控制电路被布置为选择其高速缓存的数据与存储器内的不同存储体相关联的用于驱逐的条目序列。
通过这样的方法,应当理解,高速缓存控制电路可以寻求以一种方式将其清理活动作为目标,该方式使得存储器控制器能够优化其对存储器执行的访问,目的是降低与执行此类访问相关联的功耗。
为了帮助做出上述决定,可以为高速缓存控制电路提供关于存储器如何组织的知识,从而在存储器控制器内分割存储器分配。例如,此类信息可以在引导时间被编程到高速缓存控制电路中。
上述技术可以与任何合适的高速缓存存储设备结合应用。然而,在一个示例性具体实施中,上述装置被布置为结合在包括高速缓存的分级布置的系统中,并且高速缓存存储设备形成该高速缓存的分级布置中的末级高速缓存。
在一个示例性具体实施中,该装置还可以包括被配置为提供高速缓存存储设备和附加高速缓存存储设备两者的存储结构。此外,可以提供附加高速缓存控制电路,以根据与基于功耗的分配策略不同的另选分配策略来控制将数据分配到该附加高速缓存存储设备中。因此,在此类具体实施中,可以分割存储结构的全部资源,以便提供两种不同形式的高速缓存存储设备,每种高速缓存存储设备具有针对它们应用的不同分配策略。
这种配置在各种情况下都是有用的,并且为高速缓存数据提供了非常灵活的机制。例如,在一个示例性具体实施中,第一接口可以被布置为从多个源接收访问请求,一个源是处理元件集群。然后,第一接口可以被布置为将从处理元件集群接收的访问请求引导到附加高速缓存控制电路,并且将从至少一个其他源接收的访问请求引导到高速缓存控制电路。在此类配置中,另选分配策略可以使得附加高速缓存存储设备用于高速缓存数据,目的是提高该集群的处理元件对该数据的访问性能。因此,存储结构的一部分可被配置为提供附加高速缓存存储设备,以便提供供处理元件集群使用的常规的、面向性能的高速缓存,而存储结构的剩余资源可被配置为提供可由其他系统资源使用的前述高速缓存存储设备,并且其分配策略偏向于寻求减少/最小化与执行对存储器的访问相关联的功耗。
在一个特定示例性具体实施中,存储结构能够配置为允许动态地调整用于提供高速缓存存储设备的该存储结构的量和用于提供附加高速缓存存储设备的该存储结构的量。通过这样的方法,附加高速缓存存储设备可以根据集群的当前需求适当地调整大小,存储结构的剩余可用资源用于提供由其他系统资源使用的高速缓存存储设备。
现在将参考附图描述特定示例。
图1是根据一个示例性具体实施的数据处理系统的框图。在此示例中,多个处理元件(本文中还称为请求器元件)10、20、25经由互连器30耦合到控制对存储器50的访问的存储器控制器40。请求器元件10、20、25中的一个或多个可以具有与其相关联的一级或多级本地高速缓存。在所示的特定示例中,请求器元件10具有相关联的1级高速缓存12和相关联的2级高速缓存14,并且类似地,请求器元件20具有相关联的1级高速缓存22和相关联的2级高速缓存24。通常,1级高速缓存小于2级高速缓存,并且与数据未存储在1级高速缓存中而存储在2级高速缓存中的情况相比,使相关联的请求器元件能够更快地访问存储在该1级高速缓存中的数据。
如果请求器元件发出对未存储在其任何本地高速缓存中的数据的访问请求,或者实际上如果请求器元件不具有任何本地高速缓存,则访问请求从请求器元件传播到互连器30。互连器可以包括系统高速缓存(在图1中也称为末级高速缓存)35,该系统高速缓存可由各种请求器元件访问,并且可以高速缓存保存在存储器50中的数据的子集。然而,如果所请求的数据不存在于末级高速缓存35中,则可以将访问请求传播到存储器控制器40,以使得在存储器50内执行访问,以便访问所需的数据。
存储器控制器40可以具有多个缓冲器45,在这些缓冲器中临时存储未决的访问请求,使存储器控制器在对请求进行分组方面具有一定的灵活性,以便提高对存储器50的访问效率。例如,通常情况下,存储器50的构造方式如下:各个存储器块具有与访问它们相关联的开销,使得在该存储器块被配置用于访问时,对各个存储器块执行多次访问可以更有效。例如,在DRAM技术中,在存储器页内执行访问之前需要激活该存储器页,然后在之后关闭该存储器页,因此在激活存储器页的同时执行对该存储器页的多次访问可能更有效。虽然存储器控制器可以寻求优化对存储器的访问,但是优化这些存储器访问的能力受到缓冲器45在任何特定时间点的内容的限制,特别是缓冲器内的各种访问请求是否允许实现任何效率。
如前所述,通常情况是使用高速缓存资源,以便寻求提高利用这些高速缓存资源的请求器元件的性能。然而,根据本文所述的技术,末级高速缓存35改为被组织为寻求高速缓存数据,这将实现与对存储器的访问相关联的功耗减少。特别地,不是关注哪个处理元件正在寻求使用高速缓存,而是将重点放在期望如何使用寻求访问的数据,然后在决定是否在末级高速缓存35中高速缓存任何特定数据项时考虑该信息。现在将参考图2讨论在末级高速缓存35内提供的部件的更多细节。
末级高速缓存35具有第一接口100,该第一接口被布置为接收可以由任何请求器元件10、20、25发出的访问请求。每个访问请求通常识别存储器地址,该存储器地址指示寻求被访问的数据驻留在存储器地址空间中的何处。访问请求被转发到高速缓存控制电路105,然后该高速缓存控制电路可以在高速缓存存储设备110中执行查找操作,以便确定作为访问请求主题的数据是否被高速缓存在高速缓存存储设备中。如果数据存在于高速缓存中,则可以参考高速缓存存储设备中的数据进行访问。因此,对于读访问请求,可以从高速缓存存储设备中读取数据并将其返回给请求器元件。对于写访问,通常可将数据写入存储先前版本的数据的高速缓存行,用新数据覆盖旧数据。写入数据是否同时也由第二接口115传播以引起在存储器中发生写入更新通常将取决于地址是否涉及存储器的写回区域(在此情况下,允许高速缓存内容比存储在主存储器中的版本更新,在这种情况下,高速缓存内容被标记为脏的,以便知道在适当的时候,当数据从高速缓存中被驱逐时,这些内容需要被写回到主存储器)或存储器的写通过区域(在这种情况下,当高速缓存内容被更新时,存储器也被更新)。
在高速缓存存储设备110内未命中的情况下,高速缓存控制电路105接着可将访问请求转发到第二接口115,在该第二接口处,该访问请求接着可传播到存储器控制器40,以使访问在存储器50内发生。
高速缓存控制电路105还被布置为控制数据分配到高速缓存存储设备中,并且根据本文所述的技术,被布置为采用基于功耗的分配策略,该基于功耗的分配策略寻求选择哪个数据被高速缓存在高速缓存存储设备中,目的是节省与经由第二接口对存储器的访问相关联的功率。为了在该过程中帮助高速缓存控制电路,可以用高速缓存提示信息来补充由末级高速缓存接收的访问请求,该高速缓存提示信息为访问请求指示的存储器地址处的数据提供一个或多个使用指示。基于此类使用指示,高速缓存控制电路然后可以确定数据的高速缓存可能带来与访问存储器50相关联的功耗降低的情况,并且在这些情况下寻求在高速缓存存储设备内高速缓存该数据。高速缓存控制电路如何使用此类使用指示的更多细节将在后面参考其余的附图更详细地讨论。
此类使用指示可以由请求器元件在发出访问请求时添加。然而,另选地,在请求器元件和末级高速缓存之间的路径中的中间元件可以被布置为将此类使用指示信息添加到访问请求。回到图1,这种中间元件55可以例如提供在互连器30内,并且可以利用已经与访问请求相关联地添加的信息,以便从该信息推断数据可能如何被使用,并且因此相应地设置使用指示信息。
纯粹通过具体的示例,系统存储器管理单元(SMMU)可以被布置为执行地址转换以将虚拟地址转换为物理地址,并且该地址转换可以根据指示访问请求涉及哪个进程的进程标识符等而变化。基于此类进程标识符,可以推断数据的可能使用,并相应地设置使用指示。通过示例考虑图形处理单元(GPU)或神经处理单元(NPU),流标识符可以与访问请求相关联以标识不同的处理上下文。例如,不同的流标识符可以与不同的输出特征图(OFM)相关联。可以知道,与一个特定输出特征图相关联的数据可能被多次使用,因此可以从流标识符推断此类使用。如果已知数据可能被多次使用,则如果数据被高速缓存,与对存储器的访问相关联的功耗可以显著降低,因为然后可以使用数据的高速缓存副本来服务这些多个访问请求,从而避免对存储器的访问。应当理解,这仅仅是其中可以从已经与访问请求相关联地提供的其他信息来推断数据的使用的一种示例性情况,并且存在其中也可以从与访问请求相关联的信息来推断使用的许多其他情况。
回到图1,应当理解,图1表示用于说明目的的简化系统,并且任何特定的具体实施可以包括多个附加元件。此外,虽然一些部件被示为在互连器30的外部提供,但在其他具体实施中,这些部件可被视为互连器功能的一部分。例如,在一些具体实施中,可以在互连器30内提供存储器控制器。
图3A示意性地示出了根据一个示例性具体实施的访问请求和可以为该访问请求提供的关联高速缓存提示信息。访问请求150将包括多个字段。例如,请求类型字段155可用于标识要执行的访问请求的类型,例如标识访问请求是写访问请求还是读访问请求。类似地,地址指示字段160可用于提供地址指示,该地址指示用于确定作为访问请求主题的数据的地址。还可以提供一个或多个其他字段165,以便传送与访问请求相关的附加信息。例如,对于写访问请求,可以在一个这样的字段内指定写数据。
根据本文所述的技术,可将一个或多个使用指示提供为与访问请求相关联的高速缓存提示信息170。此类高速缓存提示信息可以作为访问请求的一个或多个附加字段提供,或者另选地,可以由与访问请求相关联地传播的一个或多个边带信号提供。
形成高速缓存提示信息170的使用指示可以采取多种形式,但是在所示示例中,提供了四种不同类型的使用指示,并且可以为任何特定访问请求设置这些使用指示中的一个或多个使用指示。“将失效”(WBI)使用指示172可用于标识作为访问请求的主题的数据将在适当的时候失效,并且因此是临时性质的数据。如果设置了该使用指示,则高速缓存控制电路105可以推断将数据高速缓存在高速缓存存储设备110中是有益的,因为存在数据将从不需要被写出到存储器的可能性。特别地,如果可以在数据有效的整个期间内将数据保留在高速缓存内,则一旦数据随后变为无效,就可以仅将其从高速缓存中删除,而不需要将该数据写入存储器。特别地,可以将包含数据的高速缓存行保持为有效的高速缓存行,直到接收到确认数据现在不再有效的具体失效命令为止,此时可以仅仅使高速缓存行失效。
作为使用指示的另一示例,可以提供多次访问(MA)使用指示174,其可以在预期作为访问请求的主题的数据将被访问多次时被设置。例如,可能的情况是:此类数据将被不止一次地读取,并且因此此类使用指示可以被高速缓存控制电路用来识别该数据应当优选地被高速缓存,因为然后可以使用该数据的高速缓存副本服务于对该数据的每个后续访问请求,从而避免对主存储器的任何进一步访问。
作为使用指示的又一实例,当预期将存在对与包含作为访问请求的主题的数据的存储器地址的存储器页相同的存储器页的多个请求时,可设置多请求页命中(MRP)使用指示176。此外,高速缓存与其使用指示具有MRP字段集合的访问请求相关联的数据是有益的,因为如果数据可以保留在高速缓存中直到也已经接收到以相同存储器页为目标的其他访问请求,则可以优化随后所需的存储器访问,以便将这些多个访问请求的数据存储到存储器中。例如,当采用这种方法时,包含此类数据的高速缓存行可以作为一系列驱逐而被驱逐,从而使存储器控制器40的缓冲器45填充有一系列访问请求,这些访问请求可以由存储器控制器有效地处理以降低存储器内的功耗。特别地,如前所述,可以打开相关的存储器页,然后可以在关闭存储器页之前执行对该页内的数据的所有访问,从而与其中可能必须打开和关闭存储器页多次以便处理各种访问请求的另选方法相比,显著地降低了功耗。
应当注意,不是所有的使用指示都需要提供数据高速缓存将减少与对存储器的访问相关联的功耗的肯定指示。因此,通过示例,可以提供不高速缓存使用指示178,该不高速缓存使用指示可以被设置为具体地标识数据不应当被高速缓存,而是应当被直接发布给存储器控制器。通过这样的方法,这避免了做出访问请求的处理元件对与访问相关联的延迟产生任何额外的影响,因为访问可以被直接路由到存储器控制器上,而无需高速缓存控制电路执行关于数据是否应当被高速缓存的任何进一步分析。如前所述,为了确保数据完整性,在高速缓存内执行查找以便检查指定存储器地址处的数据尚未存储在高速缓存中可能是适当的,但由于期望数据可能不在高速缓存中,因此通常可与存储器访问并行执行此查找。如果需要,则可以采取适当的动作来确保一致性。例如,对于读访问请求,如果指定地址处的数据已经在高速缓存中,则存储器数据访问可被丢弃,而存在于高速缓存中的数据可用于服务读访问请求。对于写访问请求,如果指定地址处的数据存储在高速缓存中,则当更新的数据被写入存储器时,可以仅使高速缓存的数据失效。
在部分写入的情况下,即当没有写入完整的高速缓存行的数据时,则可能需要暂时停止存储器写操作,以便允许完成高速缓存查找。在命中的情况下,接着可将高速缓存的数据与作为当前访问请求的主题的数据合并,使得对存储器的访问执行整个高速缓存行的数据更新,并且接着可使高速缓存内的相关高速缓存行内容失效。另选地,可将访问请求指定的当前写入数据写入到高速缓存行,以创建更新的高速缓存行,此时高速缓存行保持有效。
还应当注意,不要求每个访问请求提供高速缓存提示信息。在没有高速缓存提示信息的情况下,高速缓存控制电路可以仅仅决定不对数据进行高速缓存,而是将访问请求传播到存储器控制器,或者可以在某些情况下决定对数据进行高速缓存,例如如果在高速缓存中存在可用空间而不需要从高速缓存中驱逐任何现有数据。
当高速缓存控制电路105将数据分配到高速缓存中时,则根据一个示例性具体实施,还与高速缓存的数据相关联地捕获任何使用指示信息,以供高速缓存控制电路随后参考。特别地,根据一个示例性具体实施,使用指示信息可以与数据的每个高速缓存行相关联地存储。图3B通过示例的方式参考组关联高速缓存200示出了这一点,该组关联高速缓存包括多个标签RAM 205、210、215和相应数量的数据RAM 220、225、230。对于数据RAM内的每个高速缓存行240,在相关联的标签RAM内存在对应的标签条目235,并且补充该标签条目以捕获使用指示信息。
因此,除了捕获在检测高速缓存中是否存在命中时使用的地址的标签部分,并存储有效和脏指示以标识数据是有效还是无效,以及数据是否比保存在存储器中的版本更新的标签条目之外,考虑到降低与对存储器的访问相关联的功耗的目的,标签条目还可包括WBI、MA以及MRP指示,以识别保存在高速缓存行中的数据是否已被标记为有益于保存在高速缓存中的数据。如下文将更详细论述,在一个示例性具体实施中,还提供称为命中字段的额外字段,一旦相关联高速缓存行中分配的数据在分配到高速缓存行后被访问过至少一次,就可以设置该字段。
图4是示出当访问请求被末级高速缓存35的高速缓存控制电路105接收时如何处理访问请求的流程图。在步骤300,确定是否已接收到访问请求,并且一旦已经接收到访问请求,则过程进行到步骤305,在该步骤,确定是否已经在该访问请求的高速缓存提示信息中设置了任何使用指示。如果否,则过程进行到步骤345,在该步骤,在一个示例性具体实施中,访问请求被传播到存储器控制器,而不将数据分配到高速缓存中。如果需要,高速缓存控制电路可以决定在高速缓存内高速缓存此类数据,而不是仅仅将其传播到存储器控制器,例如如果在高速缓存内存在可用空间而不需要驱逐当前保存在高速缓存中的任何数据。
然而,如果在高速缓存提示信息内设置了一个或多个使用指示,则该过程进行到步骤310,在该步骤确定设置的使用指示是否指示高速缓存是有用的。在此阶段,高速缓存控制电路应用前述基于功耗的分配策略,并且如将从先前讨论中所理解的,如果设置了WBI、MA或MRP使用指示中的任一者,则将从功率节省的观点确定高速缓存将是有用的。然而,如果设置不高速缓存使用指示,则这指示高速缓存将是无用的,并且在这种情况下,该过程遵循来自步骤310的“否”路径,使访问请求在步骤345被传播到存储器控制器(如前所述,通常并行执行高速缓存中的查找以确认存在未命中,否则可能需要一些一致性动作来确保数据一致性)。
假设设置的使用指示确实指示高速缓存是有用的,则该过程进行到步骤315,在该步骤,确定高速缓存中是否有任何可用的高速缓存行用于存储作为当前访问请求的主题的数据。应当理解,根据高速缓存是如何构造的,在高速缓存内可能仅存在可用于与任何特定地址相关联的数据的条目的子集。例如,在组关联高速缓存中,地址的一部分将被用于标识高速缓存内的特定组,然后数据仅可被高速缓存在该组的可用高速缓存行内(通常每个组在组关联高速缓存的每个路途中具有一个高速缓存行)。然而,如果高速缓存被组织为全关联高速缓存,则原则上可以将数据高速缓存在任何可用的高速缓存行中。
如果在高速缓存中存在用于存储作为当前访问请求的主题的数据的至少一个可用高速缓存行,则该过程进行到步骤320,在该步骤,将数据连同关联使用指示信息一起分配到所选择的可用高速缓存行中。如前所述,可在用于存储数据的高速缓存行的对应标签条目内捕获此使用指示信息。
如果在步骤315确定当前不存在可以存储数据的任何可用的高速缓存行,则过程进行到步骤325,在该步骤,对是否存在存储在高速缓存行内的可以被驱逐的任何较低优先级数据进行评估,以便为当前访问请求的数据腾出空间。具体地,在这一点上,高速缓存控制电路应用基于功耗的驱逐策略,以便确定高速缓存内用于驱逐的任何候选条目是否具有高速缓存的数据,该高速缓存的数据预期将带来比与将当前访问请求的数据存储在高速缓存中相关联的功耗益处更小的功耗益处。
因此,高速缓存控制电路可以识别用于驱逐的一个或多个候选条目,例如在组关联高速缓存的示例中的相关组内的高速缓存行,然后将存储在这些高速缓存行中的每个高速缓存行中的使用指示信息与当前考虑中的访问请求相关联地提供的使用指示进行比较,以便决定是否适合选择这些候选条目中其当前内容应该被驱逐以便为当前访问请求的数据腾出空间的候选条目作为牺牲条目。
在实施该过程时,优先级可基于高速缓存存储设备的条目的关联使用指示信息与高速缓存存储设备的条目相关联,使得基于第一给定条目的使用指示信息与第二给定条目的使用指示信息的比较,通过在该高速缓存存储设备中保留高速缓存在该第一给定条目中的数据而不是高速缓存在该第二给定条目中的数据,预期有与对存储器的访问相关联的更大的功率节省时,该第一给定条目具有比该第二给定条目更高的优先级。
基于使用指示信息形成优先级的方式可以取决于具体实施而变化,但是在一个示例性具体实施中,优先级如下表所示形成:
根据该优先级方案,将永远不会为了给新访问请求的数据腾出空间而驱逐具有WBI使用指示集的高速缓存行,因为认为最可能的功耗节省与此类数据相关联。如上表中所示,最低优先级与没有WBI、MA或MRP使用指示位集的高速缓存行相关联(“X”指示不关心状态,因此在此情况下是否设置命中字段无关紧要),并且如果该访问请求具有任何与之相关联的使用指示WBI、MA或MRP集,则该高速缓存行将被驱逐,以便为当前访问请求的数据腾出空间。
如果用于驱逐的候选条目均不具有1级优先级,则考虑2级优先级。在这一点上,如果用于驱逐的候选条目中的任一个候选条目具有多次访问使用指示集,但也具有命中位集来指示自从数据被分配以来数据已经被访问至少一次,则如果此类数据具有WBI、MA或MRP位集中的任一个,则此类数据将被驱逐以为当前访问请求的数据让路。
如果用于驱逐的候选条目均不具有2级优先级,则考虑3级优先级。此时,如果用于驱逐的候选条目具有多次访问位集,但是命中位被清除,如果新访问请求具有WBI位集,则该条目中的数据将被驱逐。
然后,上述过程继续根据需要考虑4级、5级、6级和7级优先级,并且应当理解,在该过程结束时,要么确定驱逐候选条目之一的当前内容以便为当前访问请求的数据腾出空间,要么确定不应当发生驱逐。
回到步骤325,因此在步骤330确定是否已经发现适合于驱逐的任何候选高速缓存行。如果否,则该过程进行到步骤345,在该步骤,访问请求被传播到存储器控制器,而不将数据分配到高速缓存中。然而,如果存在至少一个合适的候选高速缓存行,则该过程进行到步骤335,在该步骤,如果存在一个以上候选高速缓存行,则选择最低优先级候选高速缓存行,并且接着在步骤340驱逐选定高速缓存行中的当前数据,并且接着将与访问请求相关联的数据连同关联使用指示信息一起分配到该高速缓存行中。应当理解,在此阶段,如果访问请求是写访问请求,则访问请求将提供需要存储在高速缓存行中的数据,但对于读访问请求,可能仍需要从存储器获得数据以便随后将该数据分配到选定高速缓存行中。
图5是示出根据一个示例性具体实施的可在检测到高速缓存清理事件时执行的过程的流程图。可出于多种原因而检测此类高速缓存清理事件,但如图5的步骤400所示,可在确定存储器控制器具有访问存储器的备用容量时,例如在对存储器的访问的需求不如正常情况繁忙时检测此类清理事件。当检测到此类清理事件时,过程进行到步骤405,在该步骤,确定高速缓存内是否存在任何脏高速缓存行。如果否,则这表示存储器的内容是最新的,因此不需要采取任何动作。因此,该过程进行到步骤410,在该步骤,该过程终止。
然而,假设存在至少一个脏高速缓存行,则该过程进行到步骤415,在该步骤,确定是否存在与同一存储器页相关联的多个脏高速缓存行。如果是,则该过程进行到步骤420,在该步骤,将高速缓存的数据从这些多个高速缓存行驱逐到存储器控制器。然后,这将允许存储器控制器在打开存储器页的同时调度对该存储器页的所需更新,从而能够实现功耗节省。应当注意,当评估步骤415时,在驱逐与相关存储器页相关联的任何数据之前,实施某一延迟时间以允许高速缓存接收对同一存储器页的任何进一步访问请求可能是适当的。
如果未确定存在与同一存储器页相关联的多个脏高速缓存行,则该过程进行到步骤425,在该步骤,高速缓存控制电路寻求选择其高速缓存的数据与存储器内的不同存储体相关联的高速缓存行序列用于驱逐。这可能是有益的,因为可以并行访问不同的存储体,从而通过允许更好地利用存储器总线来提高性能。
如图5所示,当执行步骤415、420、425时,应当注意,在一个示例性具体实施中,高速缓存控制电路将永远不会选择驱逐具有其WBI指示集的高速缓存行,除非所有高速缓存行具有其WBI指示集。特别地,将此类数据尽可能长地保留在高速缓存内被认为是有益的,因为如果此类数据可以在高速缓存内保留足够长的时间,则它将失效,然后将根本不需要将数据写入存储器,从而产生显著的功耗益处。
图6示出了末级高速缓存的另选具体实施,其中用于高速缓存数据的存储结构可以被分成两部分。因此,如图所示,末级高速缓存500可以具有第一接口505和第二接口535,这两个接口以与关于图2的示例性具体实施所述的第一接口100和第二接口115大致相同的方式操作。存储结构510可以具有用于提供前述高速缓存存储设备(本文中也称为系统级高速缓存)的部分520,关联的高速缓存控制电路525以与前述图2的高速缓存控制电路105相同的方式操作,并且因此采用基于功耗的分配策略和基于功耗的驱逐策略。
然而,另外,存储结构510的另一部分可被布置为提供具有其自己的关联附加高速缓存控制电路530的附加高速缓存存储设备515。该附加高速缓存存储设备可用于为系统内的一个或多个特定处理/请求器元件提供存储,并且关联高速缓存控制电路530可被布置为应用标准分配和驱逐策略,目的在于改进允许使用附加高速缓存存储设备515的一个或多个请求器元件的性能。
在一个示例性具体实施中,系统可以提供能够使用附加高速缓存存储设备515作为集群的3级高速缓存的处理元件集群。对于随后允许访问末级高速缓存500的其他处理元件,这些处理元件被布置为使用高速缓存存储设备520,并且控制该高速缓存的使用以便寻求减少与对存储器的访问相关联的功耗。
如图6中示意性地示出,在一些示例性具体实施中,可以动态地调整用于实现高速缓存存储设备520的存储结构510的部分与用于实现附加高速缓存存储设备515的存储结构的部分之间的分区。有许多方式可以执行这种动态调整。例如,可以动态地将组关联存储器结构510的不同方式分配给高速缓存存储设备520或附加高速缓存存储设备515。
在图7中示意性地示出了包含此类末级高速缓存的系统。在该示例中,提供了集成一个或多个处理器核以形成集群的动态共享单元(DSU)550。此外,可以提供耦合到输入/输出(IO)一致性互连器和/或非一致性互连器的一个或其他处理元件,由方框555共同示出。DSU 550和互连块555均连接到存储器控制器节点560,该存储器控制器节点包括存储器接口575(在该示例中为DRAM接口)和按照图6构造的末级高速缓存。该末级高速缓存将包括系统级高速缓存分区570和3级高速缓存分区565。3级高速缓存分区将由DSU使用,并且根据标准分配和驱逐策略操作,以寻求改进DSU内的处理元件的性能。相反,系统级高速缓存分区570将根据前述分配和驱逐策略操作,以寻求减少与对存储器的访问相关联的功耗,并且将由经由互连块555连接到存储器控制器节点560的任何处理元件使用。
通过允许末级高速缓存被划分为根据不同的分配和驱逐策略操作的两个部分,这样的方法可以提供很大的灵活性,以便在为某些处理元件提供性能益处之间取得平衡,同时减少与由其他处理元件执行的存储器访问相关联的功耗。
本文所描述的概念可体现于用于制造体现所描述概念的装置的计算机可读代码中。例如,计算机可读代码可在半导体设计和制造过程的一个或多个阶段(包括电子设计自动化(EDA)阶段)使用,以制造包括体现这些概念的装置的集成电路。以上计算机可读代码可另外地或另选地使得能够对体现本文所描述概念的装置进行定义、建模、模拟、验证和/或测试。
例如,用于制造体现本文所描述概念的装置的计算机可读代码可体现在定义这些概念的硬件描述语言(HDL)表示的代码中。例如,代码可定义用于定义体现这些概念的装置的一个或多个逻辑电路的寄存器传送级(RTL)抽象。代码可用Verilog、SystemVerilog、Chisel或VHDL(超高速集成电路硬件描述语言)以及诸如FIRRTL的中间表示来定义体现装置的一个或多个逻辑电路的HDL表示。计算机可读代码可提供使用系统级建模语言诸如SystemC和SystemVerilog体现概念的定义或概念的其他行为表示,这些行为表示可由计算机解译以使得能够对概念进行模拟、功能和/或形式验证和测试。
另外地或另选地,计算机可读代码可定义体现本文所述概念的集成电路部件的低级描述,诸如一个或多个网表或集成电路布局定义,包括诸如GDSII的表示。一个或多个网表或集成电路部件的其他计算机可读表示可通过将一个或多个逻辑合成过程应用于RTL表示以生成用于制造体现本发明的装置的定义来生成。另选地或另外地,一个或多个逻辑合成过程可从计算机可读代码生成待加载到现场可编程门阵列(FPGA)中以将FPGA配置为体现所述概念的比特流。FPGA可出于在制造集成电路之前验证和测试概念的目的被部署,或者FPGA可直接部署在产品中。
计算机可读代码可包括用于制造装置的代码表示的混合,例如包括RTL表示、网表表示或在半导体设计和制造过程中用于制造体现本发明的装置的另一计算机可读定义中的一者或多者的混合。另选地或另外地,概念可在半导体设计和制造过程中用于制造装置的计算机可读定义和定义一旦制造就将由所定义装置执行的指令的计算机可读代码的组合中定义。
此类计算机可读代码可设置在任何已知的暂态计算机可读介质(诸如通过网络进行的有线或无线代码传输)或非暂态计算机可读介质诸如半导体、磁盘或光盘中。使用计算机可读代码制造的集成电路可包括诸如以下中的一者或多者的部件:中央处理单元、图形处理单元、神经处理单元、数字信号处理器或单独或共同体现概念的其他部件。
应当理解,本文所述的技术为系统内的一个或多个高速缓存提供了新颖用途。特别地,对于此类高速缓存,分配和驱逐策略旨在确定要高速缓存什么数据,目的是降低与对存储器的访问相关联的功耗,而不是集中于改进可以使用该高速缓存的一个或多个处理元件的性能。除了能够实现功耗的显著降低之外,这种方法还避免了通过软件对高速缓存资源进行动态重新配置的要求,因为基于功耗的分配策略不需要能够访问高速缓存的处理元件所承担的任务而改变。所述技术可与任何形式的高速缓存相关联地应用,并且无论此类高速缓存的大小如何,都可以实现功率节省。
在本申请中,字词“被配置为...”用于意指装置的元件具有能够执行所限定的操作的配置。在该上下文中,“配置”意指硬件或软件的互连的布置或方式。例如,该装置可具有提供所限定的操作的专用硬件,或者可对处理器或其他处理设备进行编程以执行该功能。“被配置为”并不意味着装置元件需要以任何方式改变以便提供所限定的操作。
虽然本文已结合附图详细描述了本发明的示例性实施方案,但应当理解,本发明并不限于那些精确的实施方案,并且在不脱离所附权利要求书所限定的本发明的范围和实质的前提下,本领域的技术人员可在其中实现各种变化、增加和修改。例如,在不脱离本发明的范围的情况下,从属权利要求的特征可与独立权利要求的特征一起进行各种组合。
Claims (24)
1.一种装置,所述装置包括:
高速缓存存储设备,所述高速缓存存储设备用于高速缓存与存储器地址相关联的数据;
第一接口,所述第一接口用于接收访问请求,其中每个访问请求是访问由所述访问请求指示的存储器地址处的数据的请求;
第二接口,所述第二接口耦合到用于控制对存储器的访问的存储器控制器;和
高速缓存控制电路,所述高速缓存控制电路用于根据基于功耗的分配策略来控制将数据分配到所述高速缓存存储设备中,所述基于功耗的分配策略寻求选择哪个数据被高速缓存在所述高速缓存存储设备中,目的是节省与经由所述第二接口对所述存储器的访问相关联的功率;
其中为由所述高速缓存控制电路考虑的给定访问请求提供关联高速缓存提示信息,所述关联高速缓存提示信息为由所述给定访问请求指示的所述存储器地址处的给定数据提供一个或多个使用指示,并且所述高速缓存控制电路被布置为在应用所述基于功耗的分配策略以确定是否在所述高速缓存存储设备中高速缓存所述给定数据时参考所述关联高速缓存提示信息。
2.根据权利要求1所述的装置,其中所述高速缓存控制电路被布置为:在通过应用所述基于功耗的分配策略来确定所述给定数据将不被高速缓存在所述高速缓存存储设备中时,经由所述第二接口将所述给定访问请求转发到所述存储器控制器,以使所述给定数据在所述存储器中被访问。
3.根据权利要求1或权利要求2所述的装置,其中所述高速缓存控制电路被布置为:在考虑到所述高速缓存提示信息提供的所述一个或多个使用指示,预期所述给定数据的高速缓存带来与经由所述第二接口对所述存储器的访问相关联的功耗的节省时,寻求将所述给定数据高速缓存在所述高速缓存存储设备中。
4.根据权利要求3所述的装置,其中由所述高速缓存提示信息提供的一个使用指示是“将失效”指示,所述“将失效”指示在被设置时指示所述给定数据是临时有效的,并且所述高速缓存控制电路被布置为在所述“将失效”指示被设置时寻求将所述给定数据高速缓存在所述高速缓存存储设备中。
5.根据权利要求3或权利要求4所述的装置,其中由所述高速缓存提示信息提供的一个使用指示是多次访问指示,所述多次访问指示在被设置时指示预期将经由所述第一接口接收访问所述给定数据的多个访问请求,并且所述高速缓存控制电路被布置为在所述多次访问指示被设置时寻求将所述给定数据高速缓存在所述高速缓存存储设备中。
6.根据权利要求3至5中任一项所述的装置,其中由所述高速缓存提示信息提供的一个使用指示是“对同一存储器块的多个请求”指示,所述“对同一存储器块的多个请求”指示在被设置时指示所述给定访问请求是预期将要发出的访问所述存储器的同一存储器块内的数据的多个访问请求之一,并且所述高速缓存控制电路被布置为在所述“对同一存储器块的多个请求”指示被设置时寻求将所述给定数据高速缓存在所述高速缓存存储设备中。
7.根据权利要求3至6中任一项所述的装置,其中由所述高速缓存提示信息提供的一个使用指示是不高速缓存指示,所述不高速缓存指示在被设置时指示不应当高速缓存所述给定数据。
8.根据权利要求3至7中任一项所述的装置,其中所述高速缓存控制电路被布置为:在没有任何设置的使用指示的情况下,假定预期所述给定数据的高速缓存不带来与经由所述第二接口对所述存储器的访问相关联的功耗的节省。
9.根据任一前述权利要求所述的装置,其中所述高速缓存提示信息通过以下之一与所述给定访问请求相关联:
请求器元件,所述请求器元件被布置为当所述给定访问请求由所述请求器元件发出时,生成用于与所述给定访问请求相关联的所述高速缓存提示信息;和
中间元件,所述中间元件位于所述请求器元件与所述第一接口之间的路径中,所述中间元件被布置为基于对与所述访问请求相关联的其他信息的分析来生成所述高速缓存提示信息。
10.根据任一前述权利要求所述的装置,其中所述高速缓存控制电路被布置为:在确定所述给定数据应当被高速缓存在所述高速缓存存储设备中但所述高速缓存存储设备中当前没有条目可用时,应用基于功耗的驱逐策略,以便寻求在所述高速缓存内选择其当前高速缓存的数据将从所述高速缓存存储设备中驱逐的牺牲条目来为所述给定数据腾出空间,目的是节省与经由所述第二接口对所述存储器的访问相关联的功率。
11.根据权利要求10所述的装置,其中:
所述高速缓存存储设备包括多个条目,并且每个条目具有与其相关联的使用指示信息,所述使用指示信息在数据由所述高速缓存控制电路分配到所述条目中时被填充;并且
所述高速缓存控制电路被布置为:在应用所述基于功耗的驱逐策略时,寻求根据与用于驱逐的一个或多个候选条目中的每个条目相关联的所述使用指示信息,从所述用于驱逐的一个或多个候选条目中选择所述牺牲条目。
12.根据权利要求11所述的装置,其中所述高速缓存控制电路还被布置为:在寻求选择所述牺牲条目时,考虑所述高速缓存提示信息为所述给定数据提供的所述一个或多个使用指示。
13.根据权利要求12所述的装置,其中:
所述高速缓存控制电路被布置为:基于所述高速缓存存储设备的所述条目的关联使用指示信息将优先级与所述高速缓存存储设备的所述条目相关联,使得基于第一给定条目的使用指示信息与第二给定条目的使用指示信息的比较,通过在所述高速缓存存储设备中保留高速缓存在所述第一给定条目中的数据而不是高速缓存在所述第二给定条目中的数据,预期有与经由所述第二接口对所述存储器的访问相关联的更大的功率节省时,所述第一给定条目具有比所述第二给定条目更高的优先级;
所述高速缓存控制电路被布置为:当应用所述基于功耗的驱逐策略时,基于与每个候选条目相关联的所述优先级和所述高速缓存提示信息为所述给定数据提供的所述一个或多个使用指示来确定所述用于驱逐的一个或多个候选条目中的任一个候选条目是否适于选择为所述牺牲条目。
14.根据权利要求13所述的装置,其中所述高速缓存控制电路被布置为:基于所述高速缓存存储设备的所述条目的关联使用指示信息和自所述数据被高速缓存在所述高速缓存存储设备中以来是否已经访问当前被高速缓存在所述条目中的所述数据的指示两者,将所述优先级与所述高速缓存存储设备的所述条目相关联。
15.根据权利要求13或权利要求14所述的装置,其中所述高速缓存控制电路被布置为:在考虑到由所述高速缓存提示信息为所述给定数据提供的所述一个或多个使用指示而确定不存在具有足够低的优先级的条目以指示预期通过驱逐所述条目的当前高速缓存的数据来为所述给定数据腾出空间会有与经由所述第二接口对所述存储器的访问相关联的功率节省时,经由所述第二接口将所述给定访问请求转发到所述存储器控制器以使所述给定数据在所述存储器中被访问。
16.根据权利要求11至15中任一项所述的装置,其中每个条目是高速缓存行,并且为每个高速缓存行提供所述使用指示信息。
17.根据任一前述权利要求所述的装置,其中:
所述高速缓存控制电路被布置为:在发生一个或多个事件时,应用清理策略以从所述高速缓存存储设备的一个或多个条目中驱逐比存储在所述存储器中的脏数据的副本更新的所述脏数据;并且
所述清理策略被布置为选择其脏数据将被驱逐的所述条目,目的是节省与经由所述第二接口对所述存储器的访问相关联的功率。
18.根据权利要求17所述的装置,其中所述清理策略使得所述高速缓存控制电路被布置为根据以下规则中的一个或多个规则来选择要驱逐的条目:
禁止选择具有用于指示条目中的所述当前高速缓存数据是临时有效的关联使用指示信息集的任何条目用于驱逐,除非所述高速缓存存储设备中的所有条目具有用于指示所述条目中的所述当前缓存数据是临时有效的其关联使用指示信息集;
当以所述存储器中的同一存储器块为目标的多个条目具有高速缓存在其中的脏数据时,所述高速缓存控制电路被布置为一起驱逐所述多个条目中的所述高速缓存数据,以便允许所述存储器控制器在所述同一存储器块被访问时更新来自所述多个被驱逐条目的所述数据;
在不存在以所述存储器中的所述同一存储器块为目标的多个条目的情况下,所述高速缓存控制电路被布置为选择其高速缓存的数据与所述存储器内的不同存储体相关联的用于驱逐的条目序列。
19.根据任一前述权利要求所述的装置,其中所述装置被布置为结合在包括高速缓存的分级布置的系统中,并且所述高速缓存存储设备形成所述高速缓存的分级布置中的末级高速缓存。
20.根据任一前述权利要求所述的装置,所述装置还包括:
存储结构,所述存储结构被配置为提供所述高速缓存存储设备和附加高速缓存存储设备两者;和
附加高速缓存控制电路,所述附加高速缓存控制电路用于根据与所述基于功耗的分配策略不同的另选分配策略来控制将数据分配到所述附加高速缓存存储设备中。
21.根据权利要求20所述的装置,其中:
所述第一接口被布置为从多个源接收访问请求,一个源是处理元件集群;
所述第一接口被布置为将从所述处理元件集群接收的访问请求引导到所述附加高速缓存控制电路,并且将从至少一个其他源接收的访问请求引导到所述高速缓存控制电路;并且
所述另选分配策略使得所述附加高速缓存存储设备用于高速缓存数据,目的是提高所述集群的所述处理元件对所述数据的访问性能。
22.根据权利要求21所述的装置,其中所述存储结构能够配置为允许动态地调整用于提供所述高速缓存存储设备的所述存储结构的量和用于提供所述附加高速缓存存储设备的所述存储结构的量。
23.一种操作高速缓存存储设备以高速缓存与存储器地址相关联的数据的方法,所述方法包括:
在第一接口处接收访问请求,其中每个访问请求是访问所述访问请求指示的存储器地址处的数据的请求;
将第二接口耦合到用于控制对存储器的访问的存储器控制器;以及
根据基于功耗的分配策略来控制将数据分配到所述高速缓存存储设备中,所述基于功耗的分配策略寻求选择哪个数据被高速缓存在所述高速缓存存储设备中,目的是节省与经由所述第二接口对所述存储器的访问相关联的功率;
其中为给定访问请求提供关联高速缓存提示信息,所述关联高速缓存提示信息为所述给定访问请求指示的所述存储器地址处的给定数据提供一个或多个使用指示,并且在应用所述基于功耗的分配策略以确定是否在所述高速缓存存储设备中高速缓存所述给定数据时参考所述关联高速缓存提示信息。
24.一种非暂态计算机可读介质,所述非暂态计算机可读介质用于存储用于制造装置的计算机可读代码,所述装置包括:
高速缓存存储设备,所述高速缓存存储设备用于高速缓存与存储器地址相关联的数据;
第一接口,所述第一接口用于接收访问请求,其中每个访问请求是访问所述访问请求指示的存储器地址处的数据的请求;
第二接口,所述第二接口耦合到用于控制对存储器的访问的存储器控制器;和
高速缓存控制电路,所述高速缓存控制电路用于根据基于功耗的分配策略来控制将数据分配到所述高速缓存存储设备中,所述基于功耗的分配策略寻求选择哪个数据被高速缓存在所述高速缓存存储设备中,目的是节省与经由所述第二接口对所述存储器的访问相关联的功率;
其中为所述高速缓存控制电路考虑的给定访问请求提供关联高速缓存提示信息,所述关联高速缓存提示信息为所述给定访问请求指示的所述存储器地址处的给定数据提供一个或多个使用指示,并且所述高速缓存控制电路被布置为在应用所述基于功耗的分配策略以确定是否在所述高速缓存存储设备中高速缓存所述给定数据时参考所述关联高速缓存提示信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/532,555 | 2021-11-22 | ||
US17/532,555 US11797454B2 (en) | 2021-11-22 | 2021-11-22 | Technique for operating a cache storage to cache data associated with memory addresses |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116150047A true CN116150047A (zh) | 2023-05-23 |
Family
ID=86339667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211433321.1A Pending CN116150047A (zh) | 2021-11-22 | 2022-11-16 | 用于操作高速缓存存储设备以高速缓存与存储器地址相关联的数据的技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11797454B2 (zh) |
KR (1) | KR20230075361A (zh) |
CN (1) | CN116150047A (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1304620A1 (en) * | 2001-10-17 | 2003-04-23 | Texas Instruments Incorporated | Cache with selective write allocation |
US8200902B2 (en) * | 2010-06-10 | 2012-06-12 | Arm Limited | Cache device for coupling to a memory device and a method of operation of such a cache device |
US20130036270A1 (en) * | 2011-08-04 | 2013-02-07 | The Regents Of The University Of Michigan | Data processing apparatus and method for powering down a cache |
US9411622B2 (en) * | 2013-06-25 | 2016-08-09 | Vmware, Inc. | Performance-driven resource management in a distributed computer system |
US20150032963A1 (en) * | 2013-07-29 | 2015-01-29 | Lsi Corporation | Dynamic selection of cache levels |
US20200264788A1 (en) * | 2019-02-15 | 2020-08-20 | Qualcomm Incorporated | Optimal cache retention mechanism |
US11586539B2 (en) * | 2019-12-13 | 2023-02-21 | Advanced Micro Devices, Inc. | Adaptive cache management based on programming model information |
-
2021
- 2021-11-22 US US17/532,555 patent/US11797454B2/en active Active
-
2022
- 2022-11-16 CN CN202211433321.1A patent/CN116150047A/zh active Pending
- 2022-11-17 KR KR1020220154324A patent/KR20230075361A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
US20230161705A1 (en) | 2023-05-25 |
US11797454B2 (en) | 2023-10-24 |
KR20230075361A (ko) | 2023-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11734177B2 (en) | Memory interface having multiple snoop processors | |
US6295582B1 (en) | System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available | |
US7669009B2 (en) | Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches | |
US9251081B2 (en) | Management of caches | |
US9075730B2 (en) | Mechanisms to bound the presence of cache blocks with specific properties in caches | |
US9251069B2 (en) | Mechanisms to bound the presence of cache blocks with specific properties in caches | |
US11914514B2 (en) | Data coherency manager with mapping between physical and virtual address spaces | |
US8782348B2 (en) | Microprocessor cache line evict array | |
US20120215988A1 (en) | Administering Non-Cacheable Memory Load Instructions | |
US20070156963A1 (en) | Method and system for proximity caching in a multiple-core system | |
JPH09190382A (ja) | コンピュータメモリシステムの競合キャッシュ | |
KR19980079433A (ko) | 비포함 캐쉬 메모리 계층 구조에서 사용하기 위한 캐쉬 일관성 메카니즘 구현 방법 및 시스템 | |
US7287122B2 (en) | Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing | |
US7809889B2 (en) | High performance multilevel cache hierarchy | |
JP2023507078A (ja) | プリフェッチレベルの降格 | |
US11947460B2 (en) | Treating multiple cache lines as a merged cache line to store multiple blocks of data | |
US7093075B2 (en) | Location-based placement algorithms for set associative cache memory | |
US6240487B1 (en) | Integrated cache buffers | |
US11755477B2 (en) | Cache allocation policy | |
US7325101B1 (en) | Techniques for reducing off-chip cache memory accesses | |
US11797454B2 (en) | Technique for operating a cache storage to cache data associated with memory addresses | |
US20240004796A1 (en) | Coherency control | |
US11907130B1 (en) | Determining whether to perform an additional lookup of tracking circuitry | |
US11775440B2 (en) | Producer prefetch filter | |
US20240273026A1 (en) | System Level Cache with Configurable Partitioning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |