CN106126441A - 追踪缓存的内容 - Google Patents

追踪缓存的内容 Download PDF

Info

Publication number
CN106126441A
CN106126441A CN201610270075.0A CN201610270075A CN106126441A CN 106126441 A CN106126441 A CN 106126441A CN 201610270075 A CN201610270075 A CN 201610270075A CN 106126441 A CN106126441 A CN 106126441A
Authority
CN
China
Prior art keywords
path
data item
caching
entry
data
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
CN201610270075.0A
Other languages
English (en)
Other versions
CN106126441B (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.)
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
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 Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN106126441A publication Critical patent/CN106126441A/zh
Application granted granted Critical
Publication of CN106126441B publication Critical patent/CN106126441B/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
    • G06F12/0877Cache access modes
    • 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
    • G06F12/0853Cache with multiport tag or data arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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/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; 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/0871Allocation or management of cache space
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/30Systems integrating technologies related to power network operation and communication or information technologies for improving the carbon footprint of the management of residential or tertiary loads, i.e. smart grids as climate change mitigation technology in the buildings sector, including also the last stages of power distribution and the control, monitoring or operating management systems at local level
    • 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

Abstract

本公开涉及追踪缓存的内容。提供了包括多个路径的缓存,多个路径中的每一路径包括数据阵列,其中由缓存所存储的数据项被存储在多个路径中的一个路径的数据阵列中。缓存的路径追踪器具有多个条目,多个条目中的每一条目用于存储数据项标识符,以及用于与数据项标识符相关联地存储对多个路径中的选定路径的指示,以指示由数据项标识符所标识的数据项被存储在选定路径中。路径追踪器的每一条目还用于与数据项标识符相关联地存储错过指示符,其中当针对由该数据项标识符所标识的数据项的查找已经导致缓存错过时,错过指示符由缓存来设置。本文还提供缓存数据的对应的方法。

Description

追踪缓存的内容
技术领域
本公开涉及数据处理。更具体地,本公开涉及缓存要进行数据处理的数据。
背景技术
在数据处理装置中可以提供缓存以便存储被存储在存储器中的数据项的本地副本,以使得当那些数据项被数据处理装置频繁地访问时,不需要针对每一次访问引起与从存储器获取那些数据项相关联的延时。
缓存可以以多个缓存等级的形式被提供,其中缓存等级和存储数据项的存储器形成层次结构,其中靠近数据处理装置的处理元件提供较小较快的缓存,并且靠近存储器提供较大较慢的缓存。
缓存可以以组相联(set-associative)的方式被安排,其中提供了可用以存储数据项的多个路径。给定数据项在缓存中的存储位置通常由该数据项的存储器地址的一部分确定,但是多个路径为数据项提供了对应数量的可能的存储位置。这减轻了与两个数据项相关联的问题,这两个数据项都被数据处理装置频繁地访问,并具有相同的存储器地址部分并且因此在缓存中具有相同的存储位置。如果对于这两个数据项在缓存中只存在一个可能的存储位置,则访问一个数据项将会驱逐另一个数据项,并且对两个数据项的频繁访问将会导致“系统颠簸(thrashing)”。
对于数据处理装置中的缓存的实现方式,缓存的运行效率和速度是重要的因素,并且仍存在改善这两个特性的机会。
发明内容
至少一些实施例具有缓存,该缓存包括:
多个路径,多个路径中的每一路径包括数据阵列,其中,由缓存所存储的数据项被存储在多个路径中的一个路径的数据阵列中;以及
包括多个条目的路径追踪器,多个条目中的每一条目用于存储数据项标识符,以及用于与数据项标识符相关联地存储对多个路径中的选定路径的指示,以指示由数据项标识符所标识的数据项被存储在选定路径中,
其中,每一条目还用于与数据项标识符相关联地存储错过指示符,其中,当针对由数据项标识符所标识的数据项的查找已经导致缓存错过时,错过指示符由缓存来设置。
至少一些实施例提供了缓存数据项的方法,该方法包括:
将数据项存储在缓存的多个路径中的路径的数据阵列中;
将数据项标识符存储在包括多个条目的路径追踪器的条目中;
与路径追踪器的条目中的数据项标识符相关联地存储对多个路径中的选定路径的指示,以指示由数据项标识符所标识的数据项被存储在选定路径中;
与路径追踪器中所存储的每一数据项标识符相关联地存储错过指示符;以及
当针对由数据项标识符所标识的数据项的查找已经导致缓存错过时,设置错过指示符。
至少一些实施例具有缓存,该缓存包括:
用于将数据项存储在缓存的多个路径中的路径的数据阵列中的装置;
用于将数据项标识符存储在包括多个条目的路径追踪器的条目中的装置;
用于与路径追踪器的条目中的数据项标识符相关联地存储对多个路径中的选定路径的指示以指示由数据项标识符所标识的数据项被存储在选定路径中的装置;
用于与路径追踪器中所存储的每一数据项标识符相关联地存储错过指示符的装置;以及
用于当针对由数据项标识符所标识的数据项的查找已经导致缓存错过时设置错过指示符的装置。
附图说明
本发明将只以示例的方式参考附图中所示的其实施例被进一步描述,其中:
图1示意性地示出了一个实施例中包括缓存的数据处理装置;
图2示意性地更详细地示出了一个实施例中的缓存;
图3A示意性地示出了一个实施例中的路径追踪器;
图3B示意性地示出了一个实施例中由缓存所接收的地址和路径追踪器中所存储的地址之间的匹配的确定;以及
图4示出了当实现一个实施例的方法时实行的一系列步骤。
具体实施方式
根据本技术的至少一些缓存的实施例包括:多个路径,多个路径中的每一路径包括数据阵列,其中由缓存所存储的数据项被存储在多个路径中的一个路径的数据阵列中;以及包括多个条目的路径追踪器,多个条目中的每一条目用于存储数据项标识符,以及用于与数据项标识符相关联地存储对多个路径中的选定路径的指示,以指示由数据项标识符所标识的数据项被存储在选定路径中,其中每一条目还用于与数据项标识符相关联地存储错过指示符,其中当针对由该数据项标识符所标识的数据项的查找已经导致缓存错过时,错过指示符由缓存设置。
因为缓存中所存储的给定数据项可以被存储在缓存中若干可能的存储位置中的一个中,其中可能的存储位置的数量由缓存中路径的数量来给定,所以缓存具有多个路径(即,它是组相联的)。在缓存中针对数据项存在多个可能的存储位置的情况下,提供路径追踪器以便对存储特定数据项(由其数据项标识符(例如其存储器地址或其存储器地址的一部分)所标识的)的缓存的路径给出早期指示,例如其使得缓存中的完全查找过程能够被避免。此外,路径追踪器的每一条目还被安排为能够存储错过指示符,该错过指示符在针对缓存中错过的对应数据项的查找之后被设置,换言之,假设已知对应的数据项未被存储在缓存中。这样一来,本技术使得缓存能够受益于在缓存中存储与“已知的缓存错过”有关的信息,而无需为了这么做而提供额外的专用组件,因为这种功能通过利用现有的路径追踪器并且扩展路径追踪器(该路径追踪器以其它方式存储数据项被存储在缓存中何处的指示)的每一条目中所存储的信息而被提供以包括对数据项的已知缓存错过的指示。
在一些实施例中,缓存还包括:具有用于存储数据项标识符的多个标签条目的至少一个标签阵列,该至少一个标签阵列用于将数据项标识符存储在与多个路径中的一个路径的数据阵列中的数据项的存储位置相对应的至少一个标签阵列的标签条目中;以及访问电路,其用于响应于对所接收的数据项标识符的接收来在至少一个标签阵列中和多个路径中的每一路径的数据阵列中执行查找过程,其中路径追踪器响应于所接收的数据项标识符和路径追踪器的条目中的数据项标识符之间的匹配以使得由访问电路来抑制在至少一个标签阵列中的查找过程。因此,在至少一个标签阵列被提供以使得缓存能够执行查找以确定缓存中给定数据项的存储位置(路径)的情况下,因为无论是否路径追踪器中的条目指示数据项被存储在缓存的特定路径中(并且因此确定该路径的标签阵列查找不是必需的),还是路径追踪器中的条目指示数据项是“已知的缓存错过”(并且因此标签阵列查找不是必需的,因为在缓存中未发现数据项),当路径追踪器中存在匹配时,通过抑制至少一个标签阵列中的查找过程可以节省缓存的时间和能量消耗。从一个视角来看,路径追踪器实际上可以被视为标签阵列的小子集,并且路径追踪器较小的事实使得路径追踪器能够被更快地访问(并且因此当发现匹配时,及时抑制实际标签阵列访问)。
在一些实施例中,路径追踪器响应于所接收的数据项标识符和路径追踪器的条目中的数据项标识符之间的匹配,并且当对选定路径的指示被存储在该条目中时,以使得抑制访问电路对多个路径中的每一路径而不是选定路径的数据阵列的访问。因此,在路径追踪器中的条目指示已知所请求的数据项(如所接收的数据项标识符所标识的)被存储在其中的路径时,对数据阵列的访问可被部分地避免,因为该访问只需要在已知数据项被存储在其中的路径中被执行。由此节省了在其它路径中执行访问的能量消耗。
在一些实施例中,路径追踪器响应于所接收的数据项标识符和路径追踪器的条目中的数据项标识符之间的匹配,并且当错过指示符与该数据项标识符相关联地被存储时,以使得抑制访问电路对所有多个路径的数据阵列的访问。(因为错过指示符被与对应的数据项标识符相关联地设置和存储)在已知数据项未被存储在缓存中的情况下,通过抑制所有数据阵列中的访问,与访问数据阵列相关联的能量消耗可以被节省。
在一些实施例中,对路径追踪器中所存储的选定路径的指示包括针对多个路径中的每一路径的禁用指示符,并且当针对路径追踪器的条目中的该路径的禁用指示符被设置时,访问电路响应于所接收的数据项标识符和路径追踪器的条目中的数据项标识符之间的匹配而禁止对缓存的路径的数据阵列的访问。对选定路径的指示可以被存储在各种路径中,例如该指示可以是对特定路径的显示引用,但是在其中针对每一路径的禁用指示符被提供的这些实施例中,禁用指示符可以被用来禁止对相对应的数据阵列的访问(即,在该数据阵列中不执行任何访问)。
在一些实施例中,路径追踪器中的错过指示符的存储包括为所有多个路径全部设置禁用指示符。因此,通过设置所有可用的禁用指示符(即,针对所有路径),确保对于已知的缓存错过,将不执行对缓存的路径的访问。
在一些实施例中,缓存构成了存储器层次结构的一部分,并且缓存是一级缓存(level one cache)。一级缓存针对响应速度通常将具有存储器层次结构中最严格的要求(即,最快的响应时间需求),并且由于其所需要的对数据处理装置的处理元件(例如,处理器核心)的接近,(根据其在集成电路中的配置)还将经常具有最少的可用面积。因此,本技术存储对缓存中存储给定数据项的路径的指示和已知的缓存错过的指示的能力可以是特定适用于一级缓存中的能力。此外,一级缓存处的典型数据访问模式可以特别地使用本技术。具体地,多个缓存错过请求可以在请求到达二级(或更低级)缓存的时候被滤除,但这通常不是在最低级(L1)缓存的情况,L1缓存可能经历来自多个不同指令的查找,这些查找都需要相同的缓存线,并且对于这些查找经存在未解决的错过请求,但是这通常不能足够快地被获知以抑制L1缓存查找。
在一些实施例中,路径追踪器还用于接收与寻求对其的访问的所请求的数据项相关联的存储属性信息,并且当存储属性信息指示所请求的数据项不可缓存时,路径追踪器被安排为抑制在路径追踪器中用所设置的错过指示符来为所请求的数据项创建条目。数据项的不可缓存性可能是为什么针对缓存中数据项的查找导致缓存错过的一个原因,并且因此如果关于所请求的数据项不可缓存的信息是可获得的,则抑制在路径追踪器中用所设置的错过指示符来创建条目可以使得路径追踪器的条目对于可缓存的其它数据项是可获得的,并且因此,对于这些数据项可以获得将相关联的信息存储在本技术的路径追踪器中的益处。
在一些实施例中,存储属性信息被从转译后备缓冲器接收。存储属性信息可以被从多个源接收,尽管其通常将是给定存储器位置的页表中最终存储的信息,并且这是信息可以被从转译后备缓冲器(TLB)接收的情况,该TLB被与寻求对存储器位置处的数据项的访问的处理元件相关联地提供,以提供对这样的属性信息的更快访问。事实上,转译后备缓冲器本身是可应用本技术的各种缓存。
在一些实施例中,数据项标识符至少是数据项的存储器地址的一部分。数据项标识符可以采取各种形式,并且可以包括数据项的整个存储器地址或者存储器地址的一部分,只要这部分足够唯一地标识该数据项。
在一些实施例中,路径追踪器的每一条目还包括数据项标识符扩展器,其中当确定在所接收的数据项标识符和路径追踪器的条目中的数据项标识符之间是否存在匹配时,路径追踪器响应于数据项标识符扩展器被设置为忽略预定的标识符部分。因此,该数据项标识符扩展器使得例如一系列所接收的数据项标识符能够被发现是与路径追踪器的条目中所存储的给定数据项标识符相匹配。因此,无需将额外的数据项标识符存储在路径追踪器的条目中,落入该范围内的任何所接收的数据项标识符(例如,存储器地址)然后可以被发现为相匹配,并且用于响应该匹配的以上所描述的技术可以被实现。
在一些实施例中,预定的标识符部分包括数据项标识符的最低有效部分。为了发现匹配而被忽略的那部分可以采取各种形式,但是忽略数据项标识符的最低有效部分使得存储器地址的连续范围(例如,两个连续的存储器地址)能够与路径追踪器的条目中的一个数据项标识符相匹配。正被执行的数据处理指令的性质可以使得一些连续的存储器地址紧接着被访问,从而导致这些实施例的特定适用性。
至少一些实施例提供了缓存数据项的方法,包括:将数据项存储在缓存的多个路径中的路径的数据阵列中;将数据项标识符存储在包括多个条目的路径追踪器的条目中;与路径追踪器的条目中的数据项标识符相关联地存储对多个路径中的选定路径的指示,以指示由数据项标识符标识的数据项被存储于选定路径中;与路径追踪器中所存储的每一数据项标识符相关联地存储错过指示符;以及当针对由该数据项标识符所标识的数据项的查找已经导致缓存错过时,设置错过指示符。
至少一些实施例提供缓存,包括:用于将数据项存储在缓存的多个路径中的路径的数据阵列中的装置;用于将数据项标识符存储在包括多个条目的路径追踪器的条目中的装置;用于与路径追踪器的条目中的数据项标识符相关联地存储对多个路径中的选定路径的指示以指示由数据项标识符所标识的数据项被存储在选定路径中的装置;用于与路径追踪器中所存储的每一数据项标识符相关联地存储错过指示符的装置;以及用于当针对由该数据项标识符所标识的数据项的查找已经导致缓存错过时设置错过指示符的装置。
图1示意性地示出了一个实施例中的数据处理装置。数据处理装置包括处理器核心10。处理器核心10具有执行管线12,处理器核心10通过执行管线12来执行数据处理操作。在执行这些数据处理操作时,处理器核心10从存储数据项的存储器14获取数据项。应该注意到,这里“数据项”指代指令和根据这些指令进行处理的主题的数据值。存储器14构成了存储器层次结构的一部分,存储器层次结构还包括第3级(L3)缓存16、第2级(L2)缓存18和两个第一级(L1)缓存20和22,其中L1缓存20是专用指令缓存,并且L1缓存22是专用数据缓存。在执行管线12和存储器14之间提供这三级缓存使得处理器核心10能够避免每次数据项被(以本领域普通技术人员熟悉的但是为简单起见这里未进一步描述的方式)访问时与从存储器14频繁地获取那些数据项相关联的延时。
当寻求对给定数据项的访问时,执行管线通过虚拟地址的方式来指定该数据项,该虚拟地址必须被转换成物理地址以用于缓存层次结构和存储器中。存储器14中所存储的页表中给出了由执行管线所使用的虚拟地址和缓存与存储器中所使用的物理地址之间的转换,但是为使得虚拟地址能够更快地转换成物理地址,这些转换也被缓存,μTLB 24和26以及TLB28和30形成它们自己的转换层次结构,其中TLB是μTLB的支持缓存(backing cache),并且二者都可以被用来满足对L1缓存的请求,例如如果L1缓存请求在μTLB中错过,则(这些(μ)TLB构成其一部分的)MMU检查TLB以便满足L1缓存查找。
数据处理装置还包括经由L2缓存18和L3缓存16来共享对存储器14的访问的另一(又一)处理器核心32。在内部,又一处理器核心32可以以与处理器核心10相似的方式被配置。由于对缓存层次结构和处理器14中的数据项的共享访问,还提供相干性控制34,该相干性控制34监控由处理器核心10和又一处理器核心32对数据项的访问,并且确保遵循合适的相干性协议,以使得不会因为两个处理器核心都访问和修改相同的数据项而发生冲突。这些相干性协议的实现方式的细节对本领域的普通技术人员也是已知的,并且为简单起见在此并未给出。
图2示意性地更详细地示出了一个实施例中的根据本技术的缓存的配置,该实施例例如可以在图1中所示的L1缓存20和22中实现。缓存40是组相联的缓存,其中给定数据项(由其存储器地址所指定的)可以被存储在缓存中的多个位置,也就是被存储在缓存的多个路径之一中。为简化说明,图2中所示的缓存40只具有2条路径,但本技术不限于特定数量的路径,并且具有例如4条或8条路径(等等)的缓存的其它实施例也被考虑。因此,参考图2,缓存40中所存储的给定数据项被存储在路径0的数据阵列42中或者路径1的数据阵列44中。标签阵列46还联合数据阵列42和44而被提供,该标签阵列46中存储了数据阵列之一中所存储的数据项的存储器地址的标签部分,以便使得缓存能够执行查找过程以确定所请求的数据项(由其存储器地址所指定的)是否被存储在缓存中。标签阵列46事实上被分成两部分,与路径0相对应的第一标签阵列和与路径1相对应的第二标签阵列。
缓存40的访问电路48被配置为在标签阵列46中形成查找过程,并且被配置为基于所接收的存储器地址来访问数据阵列42和44。本领域的普通技术人员将熟悉组相联缓存的这种特征,因此在此未给出查找过程的进一步细节。然而,查找和访问过程本质上包括访问电路48使用存储器地址的索引部分来对标签阵列46与数据阵列42和44中的给定一组条目进行选择,其中如果存储器地址的标签部分与路径0的标签阵列或路径1的标签阵列中所存储的标签部分相匹配,则已经发现缓存“命中(hit)”,也就是所请求的数据项然后已知被存储在对应的数据阵列(即,42或44)中。
在标签阵列46中实行查找过程的同时,相同索引还被用来读出数据阵列42和数据阵列44的对应条目,以避免与对标签阵列及然后对数据阵列的连续引用以及访问相关联的延时。起因于标签阵列46中的查找的命中被信令至选择器49,该选择器49然后相应地控制多路复用器50以便之后输出所请求的数据项。如果缓存错过起因于查找过程(即,所接收的地址的标签部分与任一标签阵列的经索引的条目中所存储的标签部分不相匹配),则选择器49阻止从数据阵列42或44中读出的数据项的二者之一输出。不论已经发生缓存命中还是缓存错过,查找过程的结果都还被信令至控制单元52,该控制单元52维持对缓存40的整体控制并且可以例如当发生缓存错过时,向缓存层次结构的下一级发信号以便所请求的数据项被从缓存层次结构的下一级获取或者请求仍被进一步传递。
根据本技术,缓存40还被提供有路径追踪器54,在图2示出的示例实施例中该路径追踪器54具有四个条目56。为了本公开的目的,这些条目56中的每一条目被示出为经安排以存储以下信息:足以唯一地标识缓存中所存储的数据项的地址信息、以及有效性信息、路径信息和“已知的缓存错过”信息。此外,路径追踪器存储否则将来自标签阵列的一些额外的缓存状态信息(这里未明确示出),以便使得标签阵列访问能够被完全跳过。有效性信息(例如,指示对应的条目有效还是无效的单一位)被提供以便于对路径追踪器54中的条目56的管理。路径信息被路径追踪器54用来存储已知将对应的数据项(由其存储器地址所指定的)存储在缓存中何处(具体地,数据项被存储在缓存的哪个路径中)的指示。因此,当存储器地址被缓存40接收时,控制单元52参考路径追踪器54的条目进行检查以确定是否存在路径追踪器54的条目56中所存储的对应的(有效)地址,并且如果存在,则该数据项被指示为存储在缓存的哪个路径中。基于该信息,路径追踪器54向访问电路58发信号表示已经发现有效的地址匹配,并且因此访问电路48抑制标签阵列46中的查找(由于已知所请求的数据项被存储在哪个路径42或44中,因此可以节省在标签阵列46中执行查找过程的时间和能量消耗)。此外,访问电路48使得除由路径追踪器54的对应条目56所指示的路径之外的所有其它路径被禁用,以使得只有已知其中存储了所请求的数据项的数据阵列被访问,并且数据项被从该数据阵列读出。从访问电路48到选择器49的重写信号使得选择器49能够使多路复用器50输出合适的数据项。
此外,路径追踪器54的条目56包括“已知的缓存错过”(KCM)信息。在该实施例中可以作为指示KCM状态或非KCM状态的单一位被提供的该指示被用来指示针对该数据项(由相同条目中的地址信息所指定)的先前查找已经导致缓存错过。换言之,已知对应的数据项当前未被存储在缓存40中。因此,在针对标签阵列46而实行的查找过程导致缓存错过的情况下,该缓存错过被信令至控制52,该控制52使得路径追踪器54中的对应的条目被使用所设置的KCM指示符创建或更新。因此,当由缓存40所接收的所请求的数据项的存储器地址与路径追踪器54中的有效条目相匹配时,由于已知所请求的数据项未被存储在任一数据阵列中,所以如果KCM指示符被设置,则路径追踪器54使得访问电路48禁止对数据阵列42和数据阵列44的访问,并且可以节省访问每一数据阵列的时间和能量消耗。应注意到,路径追踪器被配置为不能够设置路径指示以及同时用于有效条目的KCM标记,以使得路径追踪器中的有效条目可以被用来或者指示缓存中的给定数据项的存储位置或者指示不存在来自缓存的给定数据项,但是不同时指示二者。还应注意到,如图2中所示,由缓存40所接收的地址还可以伴随有来自TLB(或μTLB)的属性信息,并且这些信息可以包括关于所请求的数据项是可缓存还是不可缓存的信息。在所请求的数据项被指示为不可缓存的情况下,则控制单元52被配置为抑制路径追踪器54中的对应条目的创建。应注意到,如以上所提到的,路径追踪器实际上可以被实施为(一个或多个)标签阵列的小子集,并且因此当(一个或多个)标签阵列中的对应条目被更新时,路径追踪器中的条目必须被无效,或者以其它方式适当地更新。
图3A示意性地示出了一个实施例中的路径追踪器的配置。该路径追踪器的条目60(类似于图2中所示的路径追踪器54的条目56)保存每一条目的有效性和地址信息。此外,每一条目60保存“扩展匹配”指示符和针对缓存的每一路径的禁用指示符。在图3A的示例实施例中,路径追踪器与双向缓存相关联地被提供,并且因此对于每一条目60存在两个禁用指示符。针对每一条目保存的禁用信息将针对图2中的路径追踪器54的每一条目56所存储的“KCM”信息和“路径”进行结合。当仅仅一个禁用位被设置时,如条目62和64的情况下,其然后指示所请求的数据项被存储在未被禁用的路径中。换言之,在发现针对条目62的有效地址匹配的情况下,则将知道该数据项被存储在路径0中。相似地,如果发现针对条目64的有效地址匹配,则将知道该数据项被存储在路径1中。相反地,在两个禁用位都被设置的情况下(或者更一般地,针对所有路径的所有禁用位被设置),这相当于在图2的示例实施例中被设置的KCM位。换言之,如果发现针对条目66的有效地址匹配,则将知道对对应数据项的请求先前已经导致缓存错过,并且对应的数据项当前未被存储在缓存中。注意到,图3A中所示的路径追踪器以与图2的实施例相似的方式被配置为不能够针对有效条目将两个(所有)路径禁用都设置为0,以使得路径追踪器中的有效条目可以被用来或者指示缓存中的给定数据项的存储位置或者指示不存在来自缓存的给定数据项,但是不同时指示二者。注意到在该示出的实施例中,有效位能够被从路径追踪器中消除,并且个体禁用能够替代地被用于共同地指示条目是否有效。
为了利用路径追踪器的每一条目的禁用位,访问电路的配置在图3A的下面部分被示出,其中每一路径的禁用值由AND(与)门68和70合并(其得出指示有效地址匹配是否已经作为它们的其它输出被发现的值)以形成针对每一路径的禁用信号。指示是否已经发现有效地址匹配的值还被直接用作标签阵列禁用信号。因此,无论何时在路径追踪器的条目60中发现针对条目的有效地址匹配,标签阵列中的查找都被禁用,同时针对该条目所存储的对应的禁用位确定哪些数据阵列被禁用。如果只有一个路径不具有在条目中所设置的其禁用位,则所有其他数据阵列被禁用,并且只有未被禁用的路径被访问(已知所请求的数据项被存储在该路径中)。由于已知该数据项之前已经导致缓存错过并且当前未被存储在缓存中,因此如果两个(或者更一般地,所有)路径都具有在路径追踪器的条目中所设置的它们的禁用位,则所有数据阵列被禁用。
应该注意到,当针对特定数据项(由其存储器地址所指定)的请求导致缓存错过时,这通常将发起线填充处理,通过该线填充处理来从更高缓存等级或从存储器获取所请求的数据项,并且当该数据项被返回至缓存时,缓存中的对应线(由该数据项的存储器地址所定义的)被以该新的内容更新,以使得数据项然后被缓存。本领域的普通技术人员也熟悉这种线填充处理。本技术已经被发现为是有益处的,特别是关于指示已知的缓存错过的能力,尽管事实是缓存中的缓存错过会导致线填充处理,因为已经发现在第一缓存错过和线填充处理被完成之间的过渡时段仍存在通过避免对缓存的阵列的访问而应用本技术的机会。这可以例如是在编程代码的循环中引用给定数据项的情况,在这种情况下该循环的配置使得运行对应的指令的处理元件将接连不断地重复请求对该数据项的访问,并且这样缓存可以在线填充处理完成之前接收针对该数据项的多个请求。
图3B示意性地示出了对图3A的示例中所示的“扩展匹配”指示符的使用。当该指示符被设置时,路径追踪器被配置为忽略地址的一部分,这时确定在所接收的地址和路径追踪器的条目中所存储的地址信息之间是否发现有效地址匹配。如图3B中示意性地示出的,该所忽略的部分可以例如是地址的最低有效部分,这具有以下影响:不是路径追踪器的条目中所存储的信息只与具体的数据项(由单个存储器地址所引用的)有关,路径追踪器中的单个条目可以被用来存储与一系列(即,两个或更多个)存储器地址有关的信息。当确定是否发现匹配时,地址的最低有效位可以在任何方面被忽略,其中地址的这些最低有效位允许给定存储器地址内的字节说明,并且因此如图3B中所示,为了扩展对多个数据项的匹配的可能性,所忽略的部分是在此之上的存储器地址部分。应注意,“匹配”的更宽泛方式的实现方式然后还将扩展至路径追踪器中以该方式被追踪的一组缓存线的对应的有效性,因为单一线的无效(例如,通过更新)然后将使得更宽泛的一组线被无效。
图4根据一个实施例的方法示出采取的一系列步骤。流程可以被认为是开始于步骤100,在步骤100流程等待直到缓存接收到新地址。流程然后进行到步骤102,在步骤102确定与该新地址相关联地接收的任意属性信息是否指示了对应的数据项是不可缓存的。如果对应的数据项是不可缓存的,则(在步骤104)缓存中的所有访问和查找被抑制(即,在标签和数据阵列两者中),并且路径追踪器被阻止创建对应的条目。否则(如果所指示的数据项是可缓存的),则流程进行到步骤106,在步骤106确定是否发现针对路径追踪器中的条目的有效地址匹配。如果未发现对应的匹配,则流程进行到步骤108,在步骤108标签阵列中的查找和对缓存的所有数据阵列的访问被执行。由于标签阵列中的查找,在步骤110确定已经导致缓存错过还是缓存命中。针对缓存命中,流程进行到步骤112,在步骤112使路径追踪器中的有效条目指示当前已知数据项要被存储在其中的路径。在步骤114,对应的数据项然后被输出并且流程返回到步骤100。然而,如果在步骤110导致缓存错过,则在步骤116使得路径追踪器中的有效条目具有所设置的“已知的缓存错过”指示符。应注意,根据以上说明,其可能是明确指示(例如,单一“KCM”位),或者可替换地可能是针对缓存的每一路径的设置禁用位的组合。对该数据项的请求然后在步骤118在存储器层次结构中被传递,并且流程返回到步骤100。
返回到步骤106,如果发现路径追踪器中存在针对该最近接收的地址的有效地址匹配,则流程进行到步骤120,在步骤120缓存的标签阵列中的查找被禁用。在步骤122,然后确定路径追踪器是否指示已知的缓存错过。如果路径追踪器指示已知的缓存错过,则流程经由步骤124继续进行,在步骤124所有数据阵列访问被禁用并且流程然后经由118继续进行。然而,如果在步骤122路径追踪器未指示已知的缓存错过,则流程经由步骤126继续进行,在步骤126针对除所指示的存储路径之外的所有路径的数据阵列访问被禁用,并且在步骤128所得到的数据项从存储数据项的路径读出并输出,并且流程返回到步骤100。
总而言之,本文提供了包括多个路径的缓存,多个路径中的每一路径包括数据阵列,其中由缓存所存储的数据项被存储在多个路径中的一个路径的数据阵列中。缓存的路径追踪器具有多个条目,多个条目中的每一条目用于存储数据项标识符,以及用于与数据项标识符相关联地存储对多个路径中的选定路径的指示,以指示由数据项标识符所标识的数据项被存储在选定路径中。路径追踪器的每一条目还用于与数据项标识符相关联地来存储错过指示符,其中当针对由该数据项标识符所标识的数据项的查找已经导致缓存错过时,由缓存来设置错过指示符。本文还提供缓存数据的对应的方法。
在本申请中,词语“被配置为…”或“被安排为…”被用于表示装置的元件具有能够实行所定义的操作的配置。在此上下文中,“配置”表示硬件或软件的互连的安排或方式。例如,装置可以具有提供所定义的操作的专用硬件,或者处理器或其它处理设备可以被编程为执行功能。“被配置为”或“被安排为”并非暗示装置元件需要为了提供所定义的操作而以任何方式被改变。
尽管本发明的示意性实施例已经在本文中参考附图被详细地描述,但应当理解,本发明不限于这些精确的实施例,并且在不背离所附权利要求所定义的发明的范围和精神的情况下本领域的技术人员可以在此实现各种改变、添加和修改。例如,在不背离本发明的范围的情况下,可以与独立权利要求的特征一起产生从属权利要求的特征的各种组合。

Claims (14)

1.一种缓存,包括:
多个路径,所述多个路径中的每一路径包括数据阵列,其中,由所述缓存所存储的数据项被存储在所述多个路径中的一个路径的所述数据阵列中;以及
包括多个条目的路径追踪器,所述多个条目中的每一条目用于存储数据项标识符,以及用于与所述数据项标识符相关联地存储对所述多个路径中的选定路径的指示,以指示由所述数据项标识符所标识的数据项被存储在所述选定路径中,
其中,每一条目还用于与所述数据项标识符相关联地存储错过指示符,其中,当针对由所述数据项标识符所标识的数据项的查找已经导致缓存错过时,所述错过指示符由所述缓存来设置。
2.如权利要求1所述的缓存,还包括:
至少一个标签阵列,所述至少一个标签阵列具有用于存储数据项标识符的多个标签条目,所述至少一个标签阵列用于将数据项标识符存储在与所述多个路径中的一个路径的所述数据阵列中的数据项的存储位置相对应的所述至少一个标签阵列的标签条目中;以及
访问电路,所述访问电路用于在所述至少一个标签阵列中执行查找过程,以及用于响应于对所接收的数据项标识符的接收来访问所述多个路径中的每一路径的所述数据阵列,
其中,所述路径追踪器响应于所述所接收的数据项标识符和所述路径追踪器的条目中的所述数据项标识符之间的匹配使得由所述访问电路来抑制在所述至少一个标签阵列中的所述查找过程。
3.如权利要求2所述的缓存,其中,所述路径追踪器响应于所述所接收的数据项标识符和所述路径追踪器的条目中的所述数据项标识符之间的所述匹配,并且当对所述选定路径的所述指示被存储在所述条目中时,使得由所述访问电路来抑制对所述多个路径中的每一路径而不是所述选定路径的所述数据阵列的访问。
4.如权利要求2所述的缓存,其中,所述路径追踪器响应于所述所接收的数据项标识符和所述路径追踪器的条目中的所述数据项标识符之间的所述匹配,并且当所述错过指示符被与所述数据项标识符相关联地存储时,使得由所述访问电路来抑制对所有所述多个路径的数据阵列的访问。
5.如权利要求2所述的缓存,其中,所述路径追踪器中所存储的选定路径的所述指示包括针对所述多个路径中的每一路径的禁用指示符,并且
当针对所述缓存的路径的所述禁用指示符在所述路径追踪器的条目中被设置时,所述访问电路响应于所述所接收的数据项标识符和所述路径追踪器的条目中的所述数据项标识符之间的所述匹配禁止对所述缓存的所述路径的所述数据阵列的访问。
6.如权利要求5所述的缓存,其中,在所述路径追踪器中对所述错过指示符的存储包括为所有所述多个路径全部设置所述禁用指示符。
7.如权利要求1所述的缓存,其中,所述缓存构成了存储器层次结构的一部分,并且所述缓存是一级缓存。
8.如权利要求1所述的缓存,其中,所述路径追踪器还用于接收与所请求的数据项相关联的存储属性信息,对所述所请求的数据项的访问被寻求,
并且当所述存储属性信息指示所述所请求的数据项不可缓存时,所述路径追踪器被安排为抑制在所述路径追踪器中以所设置的错过标识符为所述所请求的数据项创建条目。
9.如权利要求8所述的缓存,其中,所述存储属性信息被从转译后备缓冲器接收。
10.如权利要求1所述的缓存,其中,所述数据项标识符至少是所述数据项的存储器地址的一部分。
11.如权利要求1所述的缓存,其中,所述路径追踪器的每一条目还包括数据项标识符扩展器,
其中,当确定在所接收的数据项标识符和所述路径追踪器中的条目中的所述数据项标识符之间是否存在匹配时,所述路径追踪器响应于所述数据项标识符扩展器被设置而忽略预定的标识符部分。
12.如权利要求11所述的缓存,其中,所述预定的标识符部分包括所述数据项标识符的最低有效部分。
13.一种缓存数据项的方法,包括:
将数据项存储在缓存的多个路径中的路径的数据阵列中;
将数据项标识符存储在包括多个条目的路径追踪器的条目中;
与所述路径追踪器的条目中的所述数据项标识符相关联地存储对所述多个路径中的选定路径的指示,以指示由所述数据项标识符所标识的数据项被存储在所述选定路径中;
与所述路径追踪器中所存储的每一数据项标识符相关联地存储错过指示符;以及
当针对由所述数据项标识符所标识的数据项的查找已经导致缓存错过时,设置所述错过指示符。
14.一种缓存,包括:
用于将数据项存储在缓存的多个路径中的路径的数据阵列中的装置;
用于将数据项标识符存储在包括多个条目的路径追踪器的条目中的装置;
用于与所述路径追踪器的条目中的所述数据项标识符相关联地存储对所述多个路径中的选定路径的指示以指示由所述数据项标识符所标识的数据项被存储在所述选定路径中的装置;
用于与所述路径追踪器中所存储的每一数据项标识符相关联地存储错过指示符的装置;以及
用于当针对由所述数据项标识符所标识的数据项的查找已经导致缓存错过时设置所述错过指示符的装置。
CN201610270075.0A 2015-05-04 2016-04-27 缓存、缓存数据项的方法 Active CN106126441B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/702,972 US9864694B2 (en) 2015-05-04 2015-05-04 Tracking the content of a cache using a way tracker having entries with a cache miss indicator
US14/702,972 2015-05-04

Publications (2)

Publication Number Publication Date
CN106126441A true CN106126441A (zh) 2016-11-16
CN106126441B CN106126441B (zh) 2021-10-01

Family

ID=56027355

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610270075.0A Active CN106126441B (zh) 2015-05-04 2016-04-27 缓存、缓存数据项的方法

Country Status (4)

Country Link
US (1) US9864694B2 (zh)
KR (1) KR102613645B1 (zh)
CN (1) CN106126441B (zh)
GB (1) GB2538150B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107103116A (zh) * 2017-03-27 2017-08-29 中国科学院计算技术研究所 一种复用追踪缓存的触发装置及设计方法
CN109445680A (zh) * 2018-08-20 2019-03-08 华为技术有限公司 一种对硬盘进行管理的方法及装置
CN112384905A (zh) * 2018-06-25 2021-02-19 微软技术许可有限责任公司 针对内容复制的浅高速缓冲存储器

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2537357A (en) * 2015-04-09 2016-10-19 Imagination Tech Ltd Cache operation in a multi-threaded processor
GB2565338B (en) 2017-08-10 2020-06-03 Mips Tech Llc Fault detecting and fault tolerant multi-threaded processors
US10417135B2 (en) * 2017-09-28 2019-09-17 Intel Corporation Near memory miss prediction to reduce memory access latency
US10310978B2 (en) * 2017-09-29 2019-06-04 Intel Corporation Apparatus and method for multi-level cache request tracking
US11645178B2 (en) 2018-07-27 2023-05-09 MIPS Tech, LLC Fail-safe semi-autonomous or autonomous vehicle processor array redundancy which permits an agent to perform a function based on comparing valid output from sets of redundant processors
US11334495B2 (en) * 2019-08-23 2022-05-17 Arm Limited Cache eviction
KR20210097345A (ko) 2020-01-30 2021-08-09 삼성전자주식회사 캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법
US20220004501A1 (en) * 2020-07-02 2022-01-06 Ampere Computing Llc Just-in-time synonym handling for a virtually-tagged cache

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090157982A1 (en) * 2007-12-18 2009-06-18 Macinnis Alexander G Multiple miss cache
CN101533371A (zh) * 2008-03-12 2009-09-16 Arm有限公司 使用微标签的高速缓存存取
US20130304991A1 (en) * 2012-05-10 2013-11-14 Arm Limited Data processing apparatus having cache and translation lookaside buffer
US20140136796A1 (en) * 2012-11-12 2014-05-15 Fujitsu Limited Arithmetic processing device and method for controlling the same

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212602B1 (en) 1997-12-17 2001-04-03 Sun Microsystems, Inc. Cache tag caching
US6247094B1 (en) 1997-12-22 2001-06-12 Intel Corporation Cache memory architecture with on-chip tag array and off-chip data array
US6321297B1 (en) 1998-01-05 2001-11-20 Intel Corporation Avoiding tag compares during writes in multi-level cache hierarchy
US20040199723A1 (en) * 2003-04-03 2004-10-07 Shelor Charles F. Low-power cache and method for operating same
US20080010566A1 (en) * 2006-06-21 2008-01-10 Chang Tsung-Yung Jonathan Disabling portions of memory with non-deterministic errors
JP2011065503A (ja) 2009-09-18 2011-03-31 Renesas Electronics Corp キャッシュメモリシステム及びキャッシュメモリのway予測の制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090157982A1 (en) * 2007-12-18 2009-06-18 Macinnis Alexander G Multiple miss cache
CN101533371A (zh) * 2008-03-12 2009-09-16 Arm有限公司 使用微标签的高速缓存存取
US20130304991A1 (en) * 2012-05-10 2013-11-14 Arm Limited Data processing apparatus having cache and translation lookaside buffer
CN104272279A (zh) * 2012-05-10 2015-01-07 Arm有限公司 具有缓存和转换后备缓冲器的数据处理装置
US20140136796A1 (en) * 2012-11-12 2014-05-15 Fujitsu Limited Arithmetic processing device and method for controlling the same

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107103116A (zh) * 2017-03-27 2017-08-29 中国科学院计算技术研究所 一种复用追踪缓存的触发装置及设计方法
CN107103116B (zh) * 2017-03-27 2019-07-30 中国科学院计算技术研究所 一种复用追踪缓存的触发装置及设计方法
CN112384905A (zh) * 2018-06-25 2021-02-19 微软技术许可有限责任公司 针对内容复制的浅高速缓冲存储器
CN109445680A (zh) * 2018-08-20 2019-03-08 华为技术有限公司 一种对硬盘进行管理的方法及装置

Also Published As

Publication number Publication date
US20160328320A1 (en) 2016-11-10
CN106126441B (zh) 2021-10-01
KR20160130707A (ko) 2016-11-14
GB2538150B (en) 2017-08-30
US9864694B2 (en) 2018-01-09
KR102613645B1 (ko) 2023-12-14
GB201605049D0 (en) 2016-05-11
GB2538150A (en) 2016-11-09

Similar Documents

Publication Publication Date Title
CN106126441A (zh) 追踪缓存的内容
US8909871B2 (en) Data processing system and method for reducing cache pollution by write stream memory access patterns
US6640287B2 (en) Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests
US9043556B2 (en) Optimizing a cache back invalidation policy
US10592424B2 (en) Range-based memory system
US7200713B2 (en) Method of implementing off-chip cache memory in dual-use SRAM memory for network processors
US6751720B2 (en) Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US6636949B2 (en) System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing
US7363462B2 (en) Performing virtual to global address translation in processing subsystem
JP5440067B2 (ja) キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US10002076B2 (en) Shared cache protocol for parallel search and replacement
US6427188B1 (en) Method and system for early tag accesses for lower-level caches in parallel with first-level cache
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
US9563568B2 (en) Hierarchical cache structure and handling thereof
CN110209601A (zh) 存储器接口
CN107066396A (zh) 用于操作虚拟索引的物理标记的缓存的装置及方法
US5715427A (en) Semi-associative cache with MRU/LRU replacement
JPH06318177A (ja) キャッシュ・ミス・ペナルティを減少させる方法、装置及びコンピュータ・システム
CN101523361A (zh) 数据处理设备中对共享存储器的写访问请求的处理
US20160140042A1 (en) Instruction cache translation management
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US20230102891A1 (en) Re-reference interval prediction (rrip) with pseudo-lru supplemental age information
KR20180122969A (ko) 멀티 프로세서 시스템 및 이에 포함된 프로세서의 데이터 관리 방법
US8473686B2 (en) Computer cache system with stratified replacement
CN107025130A (zh) 处理节点、计算机系统及事务冲突检测方法

Legal Events

Date Code Title Description
C06 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