CN109478163B - 用于在高速缓存条目处标识存储器访问请求的待决的系统和方法 - Google Patents

用于在高速缓存条目处标识存储器访问请求的待决的系统和方法 Download PDF

Info

Publication number
CN109478163B
CN109478163B CN201780043868.1A CN201780043868A CN109478163B CN 109478163 B CN109478163 B CN 109478163B CN 201780043868 A CN201780043868 A CN 201780043868A CN 109478163 B CN109478163 B CN 109478163B
Authority
CN
China
Prior art keywords
cache
data
entry
memory
pending
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780043868.1A
Other languages
English (en)
Other versions
CN109478163A (zh
Inventor
保罗·詹姆斯·莫耶
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN109478163A publication Critical patent/CN109478163A/zh
Application granted granted Critical
Publication of CN109478163B publication Critical patent/CN109478163B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种处理系统[100]在高速缓存条目处指示对数据的存储器访问请求[102]的待决,所述高速缓存条目响应于所述存储器访问请求而被指派来存储所述数据。在执行指令时,处理器向最靠近所述处理器的高速缓存[140]发出对数据的请求。响应于高速缓存未命中,高速缓存控制器标识所述高速缓存的用于响应于所述存储器访问请求而存储所述数据的条目[245],并且在所述标识的高速缓存条目处存储所述存储器访问请求待决的指示[147]。如果当所述存储器访问请求在存储器层次结构的较高级别处待决时,所述高速缓存控制器接收到对所述数据的后续存储器访问请求,则所述高速缓存控制器基于存储在所述条目处的指示符标识出所述存储器访问请求是待决的。

Description

用于在高速缓存条目处标识存储器访问请求的待决的系统和 方法
背景技术
相关技术描述
为支持在处理器处执行指令,处理系统通常包括存储器子系统,所述存储器子系统由存储器模块组成以存储将由执行中的指令访问的数据。为促进处理效率,可将存储器子系统组织成存储器层次结构,所述存储器层次结构具有:在层次结构的顶部处的用于存储可由执行中的指令访问的所有数据的主存储器,以及在存储器层次结构的较低级别处的用于存储在主存储器处存储的数据的子集的一个或多个高速缓存。为进一步提高处理效率,处理系统可实现存储器管理协议,所述存储器管理协议通过一个或多个高速缓存控制器管理从主存储器到一个或多个较低的存储器级别的数据提取。例如,如果在存储器层次结构的高速缓存处未找到处理器所需的数据(称为“高速缓存未命中”),则高速缓存控制器发出存储器访问请求以从存储器层次结构的不同级别(诸如从不同的高速缓存或从主存储器)检索数据。
为防止发出对来自存储器层次结构的给定级别的相同数据的多个存储器访问请求(这可能会浪费处理器资源),高速缓存控制器将对应于作为待决的存储器访问请求的对象的每个数据单元的存储器地址存储在缓冲区中。当向高速缓存控制器提出对相同数据的后续请求时,在确定所述数据不存在于存储器层次结构的对应级别中时,高速缓存控制器通常查询所述缓冲区以确定所请求数据的存储器地址是否存储在那里。如果所请求数据的主存储器地址存在于存储器缓冲区中,这指示对数据的请求已经是待决的,则高速缓存控制器将不发出对所述数据的另外请求。然而,存储器缓冲区需要相对大量的空间,并且可消耗相对大量的功率。
附图说明
通过参考附图,本公开可被更好地理解,并且本公开的众多特征和优点对于本领域技术人员变得显而易见。在不同附图中使用相同附图标号来指示类似或相同的项目。
图1是根据一些实施方案的处理系统的框图,所述处理系统在响应于存储器访问请求而存储数据的高速缓存条目处记录对存储器访问请求的待决的指示。
图2是图1的处理系统的实例的框图,所述处理系统根据一些实施方案将未命中标签存储在高速缓存条目中并将高速缓存条目标签存储在待决未命中缓冲区中以指示存储器访问请求的待决。
图3是图1的处理系统的实例的框图,所述处理系统根据一些实施方案基于标识高速缓存条目处的未命中标签来接收标识对数据的存储器访问请求的待决。
图4是图1的处理系统的实例的框图,所述处理系统根据一些实施方案从主存储器提取数据并将数据存储在由来自待决未命中缓冲区的高速缓存条目标签指示的高速缓存条目处。
图5是根据一些实施方案的存储在图1的待决未命中缓冲区中的高速缓存条目标签的实例的框图。
图6是根据一些实施方案的由图1的处理器采用的未命中标签的实例的框图。
图7是根据一些实施方案的在高速缓存条目处指示存储器访问请求的待决的方法的流程图。
具体实施方式
图1至图7示出用于通过在高速缓存条目处指示对数据的存储器访问请求的待决来改进存储器管理效率的技术,所述高速缓存条目响应于所述存储器访问请求而被指派来存储所述数据。处理系统包括处理器和存储器层次结构,所述存储器层次结构包括:在层次结构的顶部的主存储器,以及在存储器层次结构的较低级别处的用于存储在主存储器中存储的数据的子集的一个或多个存储器高速缓存。在执行指令时,处理器向最靠近处理器的高速缓存发出对数据的请求。响应于高速缓存未命中,高速缓存控制器向存储器层次结构的较高级别发出对所述数据的存储器访问请求。此外,高速缓存控制器标识高速缓存的用于响应于存储器访问请求而存储所述数据的条目,并且在所述标识的高速缓存条目处存储所述存储器访问请求待决的指示。如果当存储器访问请求在存储器层次结构的较高级别处待决时,高速缓存控制器接收到对所述数据的后续存储器访问请求,则高速缓存控制器基于存储在所述条目处的指示符标识出所述存储器访问请求是待决的。通过采用用于存储数据的高速缓存条目而不是单独的未命中地址缓冲区来存储存储器访问请求的待决的指示符,处理器能够节省电路面积和功率。
为通过实例示出,处理器的高速缓存中的一个(例如,3级(L3)高速缓存)在存储器层次结构中位于处理系统的主存储器正下方。在从主存储器提取作为L3高速缓存处的高速缓存未命中的对象的数据期间,可能向L3高速缓存提出对相同数据的后续请求。为了避免在对数据的存储器访问请求待决时创建对相同数据的另外存储器访问请求(这将消耗系统资源而不会改进处理器性能),当数据正从主存储器被提取时,L3高速缓存的高速缓存控制器立即指派高速缓存条目来存储所述数据,并且还在所述高速缓存条目处存储指示对所述数据的存储器访问请求在主存储器处待决的指示符。在一些实施方案中,所述指示符是未命中标签,所述未命中标签包括正被提取的数据的主存储器地址以及指示所述数据是待决的存储器访问请求的对象的状态信息。高速缓存控制器还在诸如缓冲区的旁侧结构中存储高速缓存条目标签,所述高速缓存条目标签包括数据标识符和所指派高速缓存条目的位置信息。
如果当数据仍处于从主存储器被提取的过程中时在L3高速缓存处接收到对相同数据的后续请求,则高速缓存控制器检查高速缓存存储器以确定所述数据是否已存储在高速缓存存储器中,并且标识出所述高速缓存条目存储了未命中标签,从而指示所请求数据已经是存储器访问请求的对象。作为响应,高速缓存控制器将存储器访问请求置于待决状态以等待所述数据存储在所述高速缓存条目处。
一旦已经从主存储器检索到所请求数据,高速缓存控制器就在旁侧结构中查询检索到的数据的数据标识符,以确定是否存在对应于所述数据标识符的高速缓存条目标签。在读取了对应于数据的高速缓存条目标签时,处理系统将检索到的数据存储在由高速缓存条目标签指示的高速缓存条目处,并且将状态信息更新为有效状态以指示所述数据现在存在于高速缓存中。此外,高速缓存控制器满足针对所述数据的任何待决的存储器访问请求。因此,L3高速缓存使用高速缓存条目本身而不是单独的缓冲区来存储存储器访问请求的待决的指示符,从而节省功率和电路面积。
图1示出根据一些实施方案的处理系统100的实例,所述处理系统100被配置来在响应于存储器访问请求而存储数据的高速缓存条目处存储对存储器访问请求的待决的指示。因此,处理系统100可用于诸如个人计算机、工作站、诸如智能电话的移动装置、视频游戏控制台、智能电视等数个装置中的任一者中。如本文进一步描述,处理系统100包括处理器核110、一个或多个高速缓存存储器级别(例如,高速缓存存储器140)、高速缓存控制器120、待决未命中缓冲区130以及主存储器150。
处理器核110包括一个或多个指令流水线,用于执行以计算机程序的形式组织的指令,从而代表电子装置执行任务。虽然处理器核110可具有例如呈寄存器的形式的一定量的整体存储器,但这种存储器在存储容量方面通常是有限的。因此,为了执行指令,处理器核110存储并检索来自处理系统100的存储器层次结构的数据,所述存储器层次结构包括一个或多个高速缓冲存储器级别(本文中表示为单个高速缓存存储器级别140)以及主存储器150。特别地,在执行指令的过程中,处理器核110生成称为存储器访问请求102的操作,以存储(存储操作)或加载(读取操作)来自存储器层次结构的数据。一个或多个高速缓冲存储器级别140以及主存储器150一起工作以满足存储器访问请求102,如本文进一步描述。
高速缓存存储器140是存储供处理器核110访问的数据的存储器模块。在至少一个实施方案中,高速缓存存储器140包括一组条目,每个条目存储称为高速缓存行的相关联数据单元。在一些实施方案中,一个或多个高速缓存存储器级别140的每一个是组关联高速缓存,其中每个高速缓存被划分成多个组。每个组包括数个数据位置或通道,其中每个通道对应于存储高速缓存行的高速缓存条目。每个组仅存储与存储器地址的子集相关联的高速缓存行,其中与一个组相关联的子集由对应的高速缓存控制器基于存储器地址的一部分(被称为索引)进行标识。通过采用组关联性,一个或多个高速缓存存储器级别140促进相对快速地标识高速缓存未命中和高速缓存命中。
高速缓存控制器120是被配置来从处理器核110接收对数据的存储器访问请求102并搜索高速缓存存储器140以确定高速缓存条目中的一个是否存储与存储器访问请求102所针对的存储器地址相关联的高速缓存行的模块。如果在高速缓存存储器140中找到所请求高速缓存行,则发生高速缓存命中。在高速缓存命中的情况下,高速缓存控制器120通过在读取操作的情况下将来自高速缓存存储器140的所请求高速缓存行提供给处理器核110,或者在写入操作的情况下将写入数据存储到高速缓存条目,来满足存储器访问请求102。
如果在高速缓存存储器140中未找到所请求高速缓存行,则发生高速缓存未命中。在高速缓存存储器140处发生高速缓存未命中的情况下,高速缓存控制器120将存储器访问请求102提供给主存储器150。响应于存储器访问请求102,主存储器150在所述请求102所针对的主存储器地址处检索高速缓存行,并将所述高速缓存行提供给高速缓存存储器140,在此情况下满足存储器访问请求102。
在一些实施方案中,高速缓存存储器140的尺寸被设定成使得它在给定的时间点无法存储处理器核110所请求的所有数据,从而需要通过如上所述的存储器层次结构传输数据。每当发生高速缓存未命中且必须从主存储器150提取所请求高速缓存行时,从主存储器检索高速缓存行需要时间,在此期间处理器核110可能接收到对同一高速缓存行的一个或多个另外的请求。为减少由于在对高速缓存行的尚未解决的访问请求待决时生成对同一高速缓存行的多个存储器访问请求而导致的低效率,处理系统100在高速缓存存储器140处跟踪尚未解决的访问请求。
为了示出,在操作中,处理器核110向高速缓存控制器120发送存储器访问请求102,所述高速缓存控制器120在高速缓存存储器140中搜索所请求高速缓存行。如果在高速缓存存储器140中找到所请求高速缓存行,则将其提供给处理器核110。如果在高速缓存存储器140中未找到所请求高速缓存行,则高速缓存控制器120将存储器访问请求102提供给主存储器150。
当所请求高速缓存行正处于由处理器核110从主存储器150检索(提取)的过程中时,高速缓存控制器120将高速缓存条目指派给正被提取的高速缓存行。在一些实施方案中,高速缓存控制器120指派对应于高速缓存组和通道的高速缓存条目,一旦已从主存储器150检索到高速缓存行,就将所述高速缓存行存储在所述高速缓存条目中。高速缓存控制器120在高速缓存条目处存储未命中标签147,所述未命中标签147包括正被提取的高速缓存行的主存储器地址以及指示所述高速缓存行是待决高速缓存未命中的对象的状态位。高速缓存控制器120还在待决未命中缓冲区130中存储高速缓存条目(CE)标签165,所述高速缓存条目标签165包括数据索引和关于已被指派给正被提取的高速缓存行的高速缓存条目的位置信息。例如,在一些实施方案中,高速缓存控制器120在待决未命中缓冲区130中存储高速缓存条目标签165,所述高速缓存条目标签165包括数据索引和已在高速缓存存储器140中指派给正被提取的高速缓存行的高速缓存通道。
待决未命中缓冲区130是存储高速缓存条目标签165的存储器模块,所述高速缓存条目标签165包括数据索引和已由高速缓存控制器120指派来存储高速缓存行的高速缓存条目的高速缓存条目位置信息,所述高速缓存行是尚未解决的访问请求的对象。在一些实施方案中,待决未命中缓冲区130被配置来存储高速缓存条目标签,所述高速缓存条目标签包括数据索引和已经为正处于从主存储器150提取的过程中的每个高速缓存行指派的高速缓存通道。在一些实施方案中,待决未命中缓冲区130中的包括数据索引和所指派的高速缓存通道的每个高速缓存条目标签比正处于从主存储器150提取的过程中的高速缓存行的完整主存储器地址小(即,需要更少的位)。
在对高速缓存行的第一存储器访问请求102仍处于从主存储器150实现的过程中时,高速缓存控制器120从处理器核110接收到对所述高速缓存行的后续存储器访问请求104的情况下,高速缓存控制器120搜索高速缓存存储器140,以确定高速缓存条目中的一个是否包含与后续存储器访问请求104所针对的存储器地址相关联的高速缓存行。在此情况下,高速缓存控制器120在高速缓存条目处标识正被提取的高速缓存行的主存储器地址以及指示所述高速缓存行是待决的高速缓存未命中的对象的状态位。基于高速缓存控制器对状态位的读取,高速缓存控制器将不向主存储器150转发对所请求高速缓存行的后续存储器访问请求104,而是将继续进行它的其他任务。
当主存储器150在所述请求所针对的主存储器地址处检索到高速缓存行并将所述高速缓存行提供给高速缓存存储器140时,高速缓存控制器120将高速缓存行的数据索引与存储在待决未命中缓冲区130中的高速缓存条目标签165进行比较。高速缓存控制器将高速缓存行的数据索引与所存储的高速缓存条目标签进行匹配,并且从高速缓存条目标签165读取高速缓存存储器140中的已被指派来存储所述高速缓存行的高速缓存条目。高速缓存控制器120将所述高速缓存行存储在所述高速缓存条目的先前指派的组和通道处并将状态位更新为有效状态,从而指示所述高速缓存行存在于高速缓存存储器140中。
图2示出高速缓存控制器220的实例,所述高速缓存控制器220响应于高速缓存未命中而在高速缓存存储器240中的高速缓存条目245处存储未命中标签247,并且生成高速缓存条目标签265并将其存储在待决未命中缓冲区230中。高速缓存控制器220从处理器(未示出)接收对高速缓存行的请求,并且搜索高速缓存存储器240以确定高速缓存条目中的一个是否存储了与存储器访问请求所针对的存储器地址相关联的高速缓存行。在此实例中,所请求高速缓存行并不存在于高速缓存存储器240中,因此高速缓存控制器220将存储器访问请求提供给主存储器(未示出)。当提供给主存储器的存储器访问请求待决时,高速缓存控制器220将高速缓存条目245指派给作为待决的存储器访问请求的对象的高速缓存行,并且生成未命中标签247,所述未命中标签247包括所述高速缓存行的主存储器地址以及指示所述高速缓存行是待决的存储器访问请求的对象的状态位。高速缓存控制器220将未命中标签247存储在高速缓存存储器240中的所指派高速缓存条目245处。
高速缓存控制器220还生成高速缓存条目标签265,所述高速缓存条目标签265包括用于作为待决的存储器访问请求的对象的高速缓存行和高速缓存控制器220已指派给所述高速缓存行的高速缓存条目245的数据索引。高速缓存控制器220将高速缓存条目标签265存储在待决未命中缓冲区230中。通常,高速缓存条目具有指示所述高速缓存条目是否填充有有效的高速缓存行的状态位。在此实例中,存储在高速缓存条目245处的未命中标签247包括状态位,所述状态位指示与存储在未命中标签247中的主存储器地址相关联的数据是待决的存储器访问请求(“未命中待决”)的对象。
图3示出处理器310的实例,所述处理器310根据一些实施方案向高速缓存控制器320发出对作为待决的存储器访问请求的对象的高速缓存行的后续请求304。高速缓存控制器320接收后续请求304并在高速缓存存储器340中搜索所请求高速缓存行。高速缓存控制器320将所请求高速缓存行的主存储器地址与存储在高速缓存条目345处的未命中标签347进行匹配。高速缓存控制器320读取未命中标签347的状态位(未示出),并且确定所请求高速缓存行已经是待决的存储器访问请求的对象。
在确定所请求高速缓存行已处于正从主存储器(未示出)中检索的过程中之后,高速缓存控制器320将对高速缓存存储器340的搜索的结果视为已被复制到处理器(未示出)的高速缓存命中,并且继续进行它的其他任务而不向主存储器创建对所请求高速缓存行的另外请求。因为高速缓存控制器320能够根据它对高速缓存存储器340的搜索确定所请求高速缓存行是待决未命中的对象,所以高速缓存控制器320并不需要检查待决未命中缓冲区(未示出)来确定是否所请求高速缓存行是待决未命中的对象,从而节省了功率。
图4示出高速缓存控制器420的实例,所述高速缓存控制器420向主存储器450发出存储器访问请求402,从在主存储器450中存储数据460的主存储器地址复制所请求数据460,并且将数据460存储在高速缓存存储器440中的高速缓存条目(未示出)处,所述高速缓存条目由存储在待决未命中缓冲区430中的高速缓存条目标签465指示。响应于存储器访问请求402,主存储器450在请求402所针对的主存储器地址处检索高速缓存行,并将数据460提供给高速缓存控制器420。高速缓存控制器420将数据460的数据索引与存储在待决未命中缓冲区430中的高速缓存条目标签进行比较。当高速缓存控制器420将数据460的数据索引与高速缓存条目标签465的索引进行匹配时,高速缓存控制器420从高速缓存条目标签465读取高速缓存条目。高速缓存控制器420将数据460存储在高速缓存存储器440中的由高速缓存条目标签465指示的位置处。高速缓存控制器420将高速缓存条目处的条目的状态位更新为有效状态,从而指示数据460存在于高速缓存存储器440中。
图5示出高速缓存条目标签565的实例。高速缓存条目标签565包括用于作为存储器访问请求的对象的高速缓存行的数据索引512以及指派给所述高速缓存行的高速缓存条目(未示出)的高速缓存通道514。数据索引512包括高速缓存行的主存储器地址的子集,并且比完整主存储器地址短。高速缓存通道514包括高速缓存存储器(未示出)中已被指派给作为存储器访问请求的对象的高速缓存行且由未命中标签(未示出)临时占用的通道。高速缓存条目标签565比作为存储器访问请求的对象的高速缓存行的完整主存储器地址小(需要更少的存储容量)。
图6示出未命中标签647的实例。对于全关联高速缓存,未命中标签647包括作为存储器访问请求的对象的高速缓存行的完整主存储器地址616以及指示与主存储器地址616相关联的高速缓存行是待决未命中的对象的状态位618。对于组关联高速缓存,未命中标签647包括作为存储器访问请求的对象的高速缓存行的完整主存储器地址616的一部分以及指示与主存储器地址616相关联的高速缓存行是待决未命中的对象的状态位618。
图7示出处理对已经是待决的存储器访问请求的对象的数据的后续存储器访问请求的方法700。在框702处,高速缓存控制器接收对数据的请求。在框704处,高速缓存控制器在高速缓存存储器中搜索所请求数据,并且确定是否所述数据存在于高速缓存存储器中或针对所请求数据的未命中标签存在于高速缓存存储器中。
如果所请求数据和针对所请求数据的未命中标签都不存在于高速缓存存储器中,则在框706处,高速缓存控制器向主存储器发送存储器访问请求以从主存储器提取所请求数据。在框708处,高速缓存控制器将高速缓存条目指派给所请求数据。在框710处,高速缓存控制器生成包括所请求数据的主存储器地址以及指示所述数据是高速缓存未命中的对象的状态位的未命中标签,并且将所述未命中标签存储在所述高速缓存条目处。在框712处,高速缓存控制器生成包括用于所请求数据和所指派高速缓存条目的索引的高速缓存条目标签,并且将所述高速缓存条目标签存储在未命中待决缓冲区中。在框714处,高速缓存控制器从主存储器接收所请求数据。在框716处,高速缓存控制器在待决未命中缓冲区中查询匹配所请求数据的数据索引的高速缓存条目标签,并且从高速缓存条目标签读取高速缓存条目信息。在框718处,高速缓存控制器将所请求数据复制到高速缓存条目标签中所指定的高速缓存条目,并且将针对所述高速缓存条目的状态位更新为有效状态。
返回框704,如果高速缓存控制器在高速缓存存储器中搜索所请求数据并确定高速缓存存储器包含对应于所请求数据的未命中标签或者高速缓存存储器包含所请求数据,则在框720处,高速缓存控制器确定用于所请求数据的高速缓存条目是未命中标签还是所请求数据。如果高速缓存条目包含针对所请求数据的未命中标签,则在框722处,高速缓存控制器像已被复制到处理器中的高速缓存命中那样处理未命中标签,并且继续执行其他指令而将对所请求数据的存储器访问请求置于待决状态。如果在框720处,高速缓存控制器确定用于所请求数据的高速缓存条目包含所请求数据,则在框724处,高速缓存控制器将所请求数据复制到处理器。
在一些实施方案中,上述技术的某些方面可由执行软件的处理系统的一个或多个处理器来实现。所述软件包括存储在或以其他方式有形地体现在非暂时性计算机可读存储介质上的一组或多组可执行指令。所述软件包括指令和某些数据,所述指令和某些数据在由一个或多个处理器执行时,操纵所述一个或多个处理器以执行上述技术的一个或多个方面。非暂时性计算机可读存储介质包括例如磁盘或光盘存储装置、诸如闪存的固态存储装置、高速缓存、随机存取存储器(RAM),或者一个或多个其他非易失性存储器装置等。存储在非暂时性计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码或者由一个或多个处理器解译或以其他方式执行的其他指令格式。
计算机可读存储介质可包括在使用期间可由计算机系统访问以向计算机系统提供指令和/或数据的任何存储介质或存储介质的组合。此类存储介质可包括但不限于光学介质(例如,压缩光盘(CD)、数字通用光盘(DVD)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如,只读存储器(ROM)或闪存)或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可嵌入计算系统中(例如,系统RAM或ROM),固定地附接到计算系统(例如,磁性硬盘驱动器),可移除地附接到计算系统(例如,光盘或基于通用串行总线(USB)的闪存),或者经由有线或无线网络耦合到计算机系统(例如,网络可访问存储装置(NAS))。
应注意,并非上文在一般描述中所描述的所有活动或元件都是必需的,特定活动或装置的一部分可能不是必需的,并且除所描述的那些之外,可执行一个或多个其他活动,或者包括其他元件。再者,列出活动的次序不一定是执行所述活动的次序。此外,已参考具体实施方案对概念进行描述。然而,本领域普通技术人员应理解,在不脱离如所附权利要求所阐述的本公开的范围的情况下,可进行各种修改和改变。因此,说明书和附图应视为说明性的而不是限制性的,并且所有此类修改形式意图包括在本公开的范围内。
上文已关于具体实施方案描述了益处、其他优点和问题解决方案。然而,所述益处、优点、问题解决方案以及可能致使任何益处、优点或解决方案出现或变得更明显的任何一个或多个特征都不应视为是任何或所有权利要求的关键、必需或本质特征。此外,上文所公开的特定实施方案仅仅是说明性的,因为所公开的主题可以不同的但等效的方式进行修改和实践,这些方式对受益于本文的教示的本领域技术人员来说是显而易见的。不意图对本文所示的构造或设计的细节进行限制,在下文所附权利要求中所描述的除外。因此,显而易见的是,上文所公开的特定实施方案可进行变更或修改,并且所有此类变化形式视为在所公开主题的范围内。因此,本文寻求的保护如下文所附权利要求中所阐述。

Claims (11)

1.一种用于在高速缓存条目处标识存储器访问请求的待决的方法,其包括:
响应于对高速缓存处的第一数据的第一请求的高速缓存未命中,由处理器指派所述高速缓存的高速缓存条目来存储所述第一数据;以及
当所述第一数据正被从存储器子系统的不同级别检索到所述高速缓存时:
在所述高速缓存条目处存储所述第一请求在所述高速缓存处待决的指示符,该指示符包括第一数据的主存储器地址和指示该第一数据是待决高速缓存未命中的对象的状态位;以及
在缓冲区中存储包括数据索引和所述高速缓存条目的位置信息的标识符;
响应于当所述第一数据正被检索到所述高速缓存时在所述高速缓存处接收到对所述第一数据的第二请求,读取所述高速缓存条目处的所述指示符;以及
响应于基于所述指示符标识出所述第一请求在所述高速缓存处待决,将对所述第一数据的所述第二请求置于待决状态,直到所述第一数据已被检索到所述高速缓存,并将所述第二请求视为已被复制到所述处理器的高速缓存命中。
2.如权利要求1所述的方法,其还包括:
响应于在所述高速缓存处接收到所述第一数据,将所述第一数据存储在所述高速缓存中的所述高速缓存条目处。
3.如权利要求2所述的方法,其还包括:
响应于在所述高速缓存处接收到所述第一数据,访问所述缓冲区以确定所述高速缓存中的将要存储所述第一数据的所述高速缓存条目。
4.如权利要求2所述的方法,其还包括:
基于将所述第一数据存储在所述高速缓存条目处,更新所述条目处的所述指示符以指示所述条目存储了有效数据。
5.如权利要求1所述的方法,其中所述标识符包括所述高速缓存条目的组和通道的指示符。
6.如权利要求1所述的方法,其中所述标识符包括基于对应于所述第一数据的存储器地址的标签值。
7.一种处理器,其包括:
高速缓存;以及
高速缓存控制器,所述高速缓存控制器用于:
作为响应于对所述高速缓存处的第一数据的第一请求的高速缓存未命中的响应,指派所述高速缓存的高速缓存条目来存储所述第一数据;
发出存储器访问请求;以及
当所述第一数据正被从存储器子系统的不同级别检索到所述高速缓存时:
在所述高速缓存条目处存储所述第一请求在所述高速缓存处待决的指示符,该指示符包括第一数据的主存储器地址和指示该第一数据是待决高速缓存未命中的对象的状态位;以及
在缓冲区中存储包括数据索引和所述高速缓存条目的位置信息的标识符;
响应于当所述第一数据正被检索到所述高速缓存时在所述高速缓存处接收到对所述第一数据的第二请求,读取所述高速缓存条目处的所述指示符;
响应于基于所述指示符标识出所述第一请求在所述高速缓存处待决,将对所述第一数据的所述第二请求置于待决状态,直到所述第一数据已被检索到所述高速缓存,并将所述第二请求视为已被复制到所述处理器的高速缓存命中。
8.如权利要求7所述的处理器,其中所述高速缓存控制器用于:
响应于接收到所述第一数据,将所述第一数据存储在所述高速缓存中的所述高速缓存条目处。
9.如权利要求8所述的处理器,其中所述高速缓存控制器用于:
响应于接收到所述第一数据,访问所述缓冲区以确定所述高速缓存中的将要存储所述第一数据的所述高速缓存条目。
10.如权利要求8所述的处理器,其中所述高速缓存控制器用于:
基于所述第一数据被存储在所述高速缓存条目处,更新所述指示符以指示所述条目存储了有效数据。
11.如权利要求7所述的处理器,其中所述标识符包括所述高速缓存条目的组和通道的指示符。
CN201780043868.1A 2016-07-15 2017-07-13 用于在高速缓存条目处标识存储器访问请求的待决的系统和方法 Active CN109478163B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/211,547 2016-07-15
US15/211,547 US10922230B2 (en) 2016-07-15 2016-07-15 System and method for identifying pendency of a memory access request at a cache entry
PCT/US2017/041935 WO2018013813A1 (en) 2016-07-15 2017-07-13 System and method for identifying pendency of a memory access request at a cache entry

Publications (2)

Publication Number Publication Date
CN109478163A CN109478163A (zh) 2019-03-15
CN109478163B true CN109478163B (zh) 2024-03-26

Family

ID=60941112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780043868.1A Active CN109478163B (zh) 2016-07-15 2017-07-13 用于在高速缓存条目处标识存储器访问请求的待决的系统和方法

Country Status (6)

Country Link
US (1) US10922230B2 (zh)
EP (1) EP3485381B1 (zh)
JP (1) JP7264806B2 (zh)
KR (1) KR102465851B1 (zh)
CN (1) CN109478163B (zh)
WO (1) WO2018013813A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11403035B2 (en) * 2018-12-19 2022-08-02 Micron Technology, Inc. Memory module including a controller and interfaces for communicating with a host and another memory module
US11568932B2 (en) * 2021-02-22 2023-01-31 Micron Technology, Inc. Read cache for reset read disturb mitigation
US20240220415A1 (en) * 2022-12-29 2024-07-04 Advanced Micro Devices, Inc. Tiered memory caching

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430654B1 (en) * 1998-01-21 2002-08-06 Sun Microsystems, Inc. Apparatus and method for distributed non-blocking multi-level cache
CN1659525A (zh) * 2002-06-04 2005-08-24 杉桥技术公司 简化了缓存替换策略的实现的多线程缓存方法和装置
JP2007286990A (ja) * 2006-04-19 2007-11-01 Nec Corp キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム
JP2014186579A (ja) * 2013-03-25 2014-10-02 Sony Corp キャッシュメモリ、キャッシュメモリ制御装置、および、そのキャッシュメモリ制御方法
EP2866148A1 (en) * 2013-10-24 2015-04-29 MediaTek Singapore Pte Ltd. Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002099652A1 (en) * 2001-06-06 2002-12-12 Sun Microsystems, Inc. Method and apparatus for facilitating flow control during accesses to cache memory
AU2002330027A1 (en) 2001-09-14 2003-04-01 Sun Microsystems, Inc. Method and apparatus for decoupling tag and data accesses in a cache memory
US20060015689A1 (en) 2004-07-15 2006-01-19 International Business Machines Corporation Implementation and management of moveable buffers in cache system
US20070067572A1 (en) 2005-09-19 2007-03-22 Via Technologies, Inc. Buffering missed requests in processor caches
US8285926B2 (en) * 2010-05-03 2012-10-09 Oracle America, Inc. Cache access filtering for processors without secondary miss detection
US20140089600A1 (en) 2012-09-27 2014-03-27 Apple Inc. System cache with data pending state
GB2537357A (en) * 2015-04-09 2016-10-19 Imagination Tech Ltd Cache operation in a multi-threaded processor
GB2538055B (en) * 2015-04-28 2017-04-19 Advanced Risc Mach Ltd Data processing apparatus having a cache
US10331561B1 (en) * 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430654B1 (en) * 1998-01-21 2002-08-06 Sun Microsystems, Inc. Apparatus and method for distributed non-blocking multi-level cache
CN1659525A (zh) * 2002-06-04 2005-08-24 杉桥技术公司 简化了缓存替换策略的实现的多线程缓存方法和装置
JP2007286990A (ja) * 2006-04-19 2007-11-01 Nec Corp キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム
JP2014186579A (ja) * 2013-03-25 2014-10-02 Sony Corp キャッシュメモリ、キャッシュメモリ制御装置、および、そのキャッシュメモリ制御方法
EP2866148A1 (en) * 2013-10-24 2015-04-29 MediaTek Singapore Pte Ltd. Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device

Also Published As

Publication number Publication date
US20180018264A1 (en) 2018-01-18
JP2019525327A (ja) 2019-09-05
WO2018013813A1 (en) 2018-01-18
US10922230B2 (en) 2021-02-16
KR102465851B1 (ko) 2022-11-11
EP3485381A4 (en) 2020-03-25
EP3485381A1 (en) 2019-05-22
EP3485381B1 (en) 2024-09-04
JP7264806B2 (ja) 2023-04-25
CN109478163A (zh) 2019-03-15
KR20190019157A (ko) 2019-02-26

Similar Documents

Publication Publication Date Title
KR100772863B1 (ko) 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치
US12026099B2 (en) System and method for storing cache location information for cache entry transfer
JP6630449B2 (ja) 他のキャッシュでのエントリの可用性に基づくキャッシュエントリの置換
US12032487B2 (en) Access log and address translation log for a processor
US20180113815A1 (en) Cache entry replacement based on penalty of memory access
CN109478163B (zh) 用于在高速缓存条目处标识存储器访问请求的待决的系统和方法
CN115495394A (zh) 数据预取方法和数据预取装置
US8356141B2 (en) Identifying replacement memory pages from three page record lists
US20170357585A1 (en) Setting cache entry age based on hints from another cache level
KR101976320B1 (ko) 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법

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