CN107735773B - 用于高速缓冲存储标签压缩的方法及设备 - Google Patents

用于高速缓冲存储标签压缩的方法及设备 Download PDF

Info

Publication number
CN107735773B
CN107735773B CN201680026963.6A CN201680026963A CN107735773B CN 107735773 B CN107735773 B CN 107735773B CN 201680026963 A CN201680026963 A CN 201680026963A CN 107735773 B CN107735773 B CN 107735773B
Authority
CN
China
Prior art keywords
tag
entry
order bits
index value
memory
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
CN201680026963.6A
Other languages
English (en)
Other versions
CN107735773A (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN107735773A publication Critical patent/CN107735773A/zh
Application granted granted Critical
Publication of CN107735773B publication Critical patent/CN107735773B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/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; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • 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/6032Way prediction in set-associative 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/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

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

一种存储器结构使用加索引标签压缩结构来压缩存储器标签的部分。所述存储器标签的高阶位集合可存储在所述加索引标签压缩结构中,其中所述高阶位集合是由索引值识别。标签阵列存储所述存储器标签的低阶位集合及识别所述标签压缩结构中存储所述存储器标签的所述高阶位集合的条目的所述索引值。所述存储器标签可包括存储在数据阵列中的数据元素的存储器地址的至少一部分。

Description

用于高速缓冲存储标签压缩的方法及设备
根据35 U.S.C.§119的优先权主张
本申请案主张2015年5月20日申请的美国专利申请案第14/716,947号的优先权,所述美国专利申请案被转让给本发明的受让人且特此以引用的方式明确地并入本文中。
技术领域
本文中所揭示的方面涉及计算机微处理器(在本文中也被称作处理器)的领域。更具体地说,本文中所揭示的方面涉及高速缓冲存储标签压缩。
背景技术
现代处理器通常依赖于高速缓冲存储器以改进处理性能。高速缓冲存储器通过利用工作负载的指令流及数据流中的时间及空间局部性而工作。高速缓冲存储器的部分专用于存储高速缓冲存储标签阵列。高速缓冲存储标签存储从主存储器提取的实际数据的地址。确定高速缓冲存储器中的命中或未命中的速度受到标签阵列的宽度约束,其中较大标签阵列通常产生较多计时压力。较宽(或较大)标签具有较多位。为了确定在高速缓冲存储器中是否存在命中,必须比较标签的所有位与探测地址。因此,所述比较中的较多位可需要较多延迟来返回所述比较的结果。
发明内容
本文中所揭示的方面通过将高阶标签位的唯一值存储在标签压缩高速缓冲存储器中来缩减为标签存储所需要的区域。
在一个方面中,一种高速缓冲存储器包括标签压缩结构及标签阵列。所述标签压缩结构存储多个标签压缩条目。所述多个标签压缩条目中的每一者含有存储器标签的相应高阶位集合且是由相应索引值识别。所述标签阵列存储多个标签阵列条目。所述多个标签阵列条目中的每一者含有所述存储器标签的相应低阶位集合及对应于所述标签压缩结构的所述索引值中的一者的索引值。所述第一存储器标签可包括存储在数据阵列中的数据元素的存储器地址的至少一部分。
在一个方面中,一种方法包括在标签压缩结构中的多个标签压缩条目中的第一标签压缩条目中存储第一存储器标签的高阶位集合。所述多个标签压缩条目中的每一者是由相应索引值识别。所述方法进一步包括在标签阵列中的多个标签阵列条目中的第一标签阵列条目中存储所述存储器标签的低阶位集合及用于所述第一标签阵列条目的索引值。所述第一标签阵列条目的所述索引值对应于所述标签压缩结构中的所述第一标签压缩条目。所述第一存储器标签可包括存储在数据阵列中的数据元素的存储器地址的至少一部分。
在一个方面中,一种非暂时性计算机可读媒体存储指令,所述指令在由处理器执行时致使所述处理器执行操作,所述操作包括在标签压缩结构中的多个标签压缩条目中的第一标签压缩条目中存储第一存储器标签的高阶位集合。所述多个标签压缩条目中的每一者是由相应索引值识别。所述操作进一步包括在标签阵列中的多个标签阵列条目中的第一标签阵列条目中存储所述存储器标签的低阶位集合及用于所述第一标签阵列条目的索引值。所述第一标签阵列条目的所述索引值对应于所述标签压缩结构中的所述第一标签压缩条目。所述第一存储器标签可包括存储在数据阵列中的数据元素的存储器地址的至少一部分。
在一个方面中,一种设备包括用于在多个标签压缩条目中的第一标签压缩条目中存储第一存储器标签的高阶位集合的装置。所述多个标签压缩条目中的每一者是由相应索引值识别。所述设备进一步包括用于在多个标签阵列条目中的第一标签阵列条目中存储所述存储器标签的低阶位集合及用于所述第一标签阵列条目的索引值的装置。所述第一标签阵列条目的所述索引值对应于所述第一标签压缩条目。所述第一存储器标签可包括数据元素的存储器地址的至少一部分。
通过将存储器标签的部分存储在标签压缩高速缓冲存储器中,本文中所揭示的方面缩减冗余位在所述标签阵列中的存储。由此会需要用于存储器标签的较少物理区域,提供较快比较结果,且需要较少功率来执行比较。
附图说明
为了达成且可详细地理解上述方面,可参考随附图式来更特定地描述上文简要地概述的本发明的方面。
然而,应注意,随附图式仅说明本发明的方面且因此不应被视为限制本发明的范围,这是因为本发明可准许其它方面。
图1说明根据一个方面的提供高速缓冲存储标签压缩的处理器。
图2为根据一个方面的经配置以提供高速缓冲存储标签压缩的处理器的组件的逻辑视图。
图3为根据一个方面的说明存储在标签压缩高速缓冲存储器、标签阵列及数据阵列中的实例值的示意图。
图4为根据一个方面的说明用以提供高速缓冲存储标签压缩的方法的流程图。
图5为根据一个方面的说明用以建立新标签压缩高速缓冲存储器条目的方法的流程图。
图6为根据一个方面的说明整合经配置以提供高速缓冲存储标签压缩的处理器的计算装置的框图。
具体实施方式
本文中所揭示的方面提供用以缩减用于存储器标签存储的区域的技术。举例来说,可用某一上部地址位集合来对高速缓冲存储器加标签。通常,高速缓冲存储标签需要用于大量位的存储,且现代高速缓冲存储架构相较于先前各代通常需要大体上较大的标签。举例来说,考虑假想的4向32千字节(KB)指令高速缓冲存储器,其具有64个位线。此类高速缓冲存储器的线的数目为215/29或512个线。每一线是与一标签相关联。高速缓冲存储器的集合的数目等于215/26/22或128个集合(具有7位集合解码)。在至少一个方面中,标签位不包含7位集合解码或6位字节偏移,此意指标签位始于A[7+6]或A[13],其中“A”指示到标签搜索的地址输入。因此,对于64个位的实例地址,比较标签与A[63:13],且标签存储为51个位/线。因此,用于高速缓冲存储器的总标签存储为51个位/线*512个线或26,112个位,从而引起10%的存储开销来存储高速缓冲存储标签。
尽管标签值是任意的且代码相依的,但标签值中的每一者的位的子集可具有很少变化性,使得位的子集横越多个高速缓冲存储标签具有相同值。本文中所揭示的方面通过消除横越多个高速缓冲存储标签具有相同值的多个副本的冗余存储来利用此倾向。具体地说,本文中所揭示的方面引入一种经配置以存储唯一标签值的标签压缩高速缓冲存储器。由此会从高速缓冲存储标签移除许多位。可用指向标签压缩高速缓冲存储器条目的较小数目个位来替换从高速缓冲存储标签移除的位。标签压缩高速缓冲存储器可保留来自高速缓冲存储标签的任何位集合,所述位包含但不限于上部(或较高)地址位、地址空间标识符(ASID)、安全性位、异常级别位,及其类似者。
因为标签压缩高速缓冲存储器保留原始高速缓冲存储标签的部分,所以存取必定在标签压缩高速缓冲存储器中“命中”以便在高速缓冲存储器中“命中”。相似地,在标签压缩高速缓冲存储器中“未命中”的存取必定也在高速缓冲存储器自身中“未命中”。收回标签压缩高速缓冲存储器条目会要求所有对应高速缓冲存储线(即,标签压缩高速缓冲存储器索引值匹配于经收回标签压缩高速缓冲存储器的索引的那些线)失效。然而,使高速缓冲存储线失效并不要求对标签压缩高速缓冲存储器进行任何更新。
本文中所揭示的方面并行地存取标签压缩高速缓冲存储器及高速缓冲存储器以确定输入存储器地址引起高速缓冲存储“命中”还是“未命中”。具体地说,本文中所揭示的方面使用输入存储器地址的高阶位集合来存取标签压缩高速缓冲存储器。如果在标签压缩高速缓冲存储器中存在命中(即,标签压缩高速缓冲存储器中的条目匹配于输入存储器地址的高阶位),那么标签压缩高速缓冲存储器经配置以返回匹配条目的索引值。并行地,本文中所揭示的方面使用输入存储器地址的低阶位集合来搜索高速缓冲存储器。如果在高速缓冲存储器中存在命中(即,高速缓冲存储标签阵列中的标签条目匹配于输入存储器地址的低阶位),那么高速缓冲存储器经配置以返回低阶位及匹配条目中的索引值。本文中所揭示的方面可接着比较从高速缓冲存储器及标签压缩高速缓冲存储器返回的索引值。如果所述索引值不匹配,那么本文中所揭示的方面返回高速缓冲存储未命中的指示。本文中所揭示的方面可进一步比较从高速缓冲存储标签条目返回的较低位与输入存储器地址的较低位。如果所述较低位不匹配,那么本文中所揭示的方面返回高速缓冲存储未命中的指示。然而,如果所述索引值匹配且所述较低位匹配,那么本文中所揭示的方面返回高速缓冲存储命中的指示(即,经请求数据存在于高速缓冲存储器中)。
本文中使用高速缓冲存储器作为参考实例以促进描述本发明的方面。然而,高速缓冲存储器的使用不应被视为限制本发明,这是因为本文中所描述的技术适用于具有标签字段的其它硬件结构,诸如处理器高速缓冲存储器、数据高速缓冲存储器、指令高速缓冲存储器、线填充缓冲器、翻译后援缓冲器(TLB),及其类似者。对特定硬件结构的任何参考不应被视为限制本发明。
图1说明根据一个方面的提供高速缓冲存储标签压缩的处理器101。如所展示,处理器101包含执行指令的指令执行管道112。管道112可为具有多个平行管道的超标量设计,所述平行管道中的每一者包含各种非架构型寄存器(未图绘)及一或多个算术逻辑单元(也未图绘)。如所展示,处理器101还包含高速缓冲存储器(cache/cache memory)102,其存储来自一或多个较高级别的存储器108的数据线。较高级别的存储器108可包含但不限于较高级别高速缓冲存储器及/或主(系统)存储器。在至少一个方面中,高速缓冲存储器102为级别1(L1)数据高速缓冲存储器。通常,CPU 101可包含众多变化,且图2所展示的CPU 101是出于说明性目的且不应被视为限制本发明。举例来说,CPU 101可为图形处理单元(GPU)。
如所展示,高速缓冲存储器102包含高速缓冲存储器逻辑103、标签压缩高速缓冲存储器104、标签阵列105及数据阵列106。高速缓冲存储器逻辑103通常控制高速缓冲存储器102的操作,诸如确定在特定操作中发生高速缓冲存储命中还是未命中。标签压缩高速缓冲存储器(TCC)104为经配置以保留存储器标签的上阶(或高阶)位集合的硬件结构。举例来说,TCC 104可保留存储器标签的上部地址位、ASID位、安全性位、异常级别位及其类似者中的一或多者。TCC 104通常经配置以存储原本将会冗余地存储在标签阵列105中的冗余值。标签阵列105通常经配置以存储高速缓冲存储器102中存储的数据的地址。更具体地说,标签阵列105的每一条目经配置以存储存储器标签的低阶位集合及对应于TCC 104中的条目的索引值的索引值。数据阵列106存储高速缓冲存储线的数据。在至少一个方面中,将TCC104实施为内容可寻址存储器(CAM)结构。相似地,可将标签阵列105及数据阵列106实施为CAM。此外,在至少一个方面中,TCC104为完全关联的最近最少使用的(LRU)替换结构。TCC104可具有任何数目个条目,诸如两个、四个或八个。用于将数据存储在TCC 104、标签阵列105及数据阵列106中的装置可包含一或多个存储器单元。
在操作中,处理器101可设法确定位于存储器108的较高级别中的一者中的数据是否存在于高速缓冲存储器102内。当处理器101将输入存储器地址(其可为虚拟地址)提供到高速缓冲存储器102时,高速缓冲存储器逻辑103可确定在输入存储器地址处的数据是否在高速缓冲存储器102中。由此,高速缓冲存储器逻辑103可使用输入存储器地址的高阶位来起始TCC 104的CAM搜索。如果TCC 104中的条目匹配于输入存储器地址的高阶位,那么TCC104经配置以返回TCC 104中的匹配条目的索引值。高速缓冲存储器逻辑103可并行地起始标签阵列105的CAM搜索与TCC 104的CAM搜索。高速缓冲存储器逻辑103可使用输入存储器地址的低阶位来搜索标签阵列105。如果标签阵列105中的条目的低阶位匹配于输入存储器地址的低阶位,那么标签阵列105经配置以返回低阶位及匹配条目的索引值。高速缓冲存储器逻辑103可接着比较由TCC 104及标签阵列105返回的索引值。如果所述索引值不匹配,那么高速缓冲存储器逻辑103可返回高速缓冲存储未命中的指示。高速缓冲存储器逻辑103还可比较由标签阵列105返回的低阶位与输入存储器地址的低阶位。如果所述低阶位匹配且所述索引值匹配,那么高速缓冲存储器逻辑103经配置以返回高速缓冲存储命中的指示。
如果TCC 104的搜索引起未命中,那么高速缓冲存储器逻辑103可经配置以在TCC104中产生用于输入存储器地址的条目。如果空闲(或以其它方式可用的)条目存在于TCC104中,那么高速缓冲存储器逻辑103可将输入存储器地址的高阶位集合存储到空闲条目。如果TCC 104中的条目为不可用的,那么高速缓冲存储器逻辑103可收回TCC 104中的现有条目,且使标签阵列105(及数据阵列106)中指定经收回条目的索引值的任何对应条目失效。高速缓冲存储器逻辑103可针对TCC 104应用任何合适替换策略,诸如LRU,或替换与最少高速缓冲存储线(其可由用于TCC 104中的每一条目的计数器确定)相关联的TCC 104条目。高速缓冲存储器逻辑103可以任何可行方式来使条目失效,诸如通过闪速失效或逐线失效。除了将指定输入存储器地址的高阶位的条目添加到TCC104以外,高速缓冲存储器逻辑103还可在标签阵列105中产生指定输入存储器地址的低阶位及存储输入存储器地址的高阶位的TCC 104条目的索引值的条目。
在至少一个方面中,高速缓冲存储器逻辑103可每隔一个时钟周期来探测TCC 104一次。然而,此可汲取大量功率,且可处于关键计时路径。生成到TCC 104中的条目越多,则可为探测TCC 104所需要的功率及时间越多。因此,在一些方面中,高速缓冲存储器逻辑103可包含避免需要在大多数周期中搜索TCC 104的逻辑。举例来说,寄存器集合可经配置以存储通过对TCC 104的先前存取而返回的位(及对应TCC 104条目是否保持有效)。通常,高速缓冲存储器逻辑103可确定对应于TCC 104中保留的位的输入存储器地址位是否与对TCC104的先前存取中的位相同。高速缓冲存储器逻辑103可接着确定关联TCC 104条目自从最后存取以来是否尚未失效。如果两个确定皆为真,那么高速缓冲存储器逻辑103可确定压缩高速缓冲存储标签必定在TCC 104中,且安全的是重新使用先前周期的索引,从而致使没有必要在当前周期中搜索TCC 104。如果任一确定皆不为真,那么高速缓冲存储器逻辑103不能重新使用先前周期的TCC 104索引,控制逻辑103必须搜索TCC 104。用于搜索TCC 104、标签阵列105及数据阵列106的装置包含被实施为硬件及/或软件的逻辑。相似地,被实施为硬件及/或软件的逻辑可充当用于读取及/或写入值、返回命中及/或未命中的指示且返回来自TCC 104、标签阵列105及数据阵列106的值的装置。此类装置逻辑的实例包含存储器控制器、高速缓冲存储器控制器及数据控制器。
如先前所指示,可将图1所描绘的压缩方案应用于其它PC加标签及/或ASID加标签的微架构结构。举例来说,可将虚拟地址变换成可贯穿块而使用的形式{标签压缩索引值,部分虚拟地址}。由此将允许所有数据路径元件对此缩短形式进行操作,所述元件包含翻译后援缓冲器(TLB)、分支预测器、断点、高速缓冲存储器及其类似者。必要时,可将经变换地址转换成原始地址(只要有必要),诸如在块边界处、用于高速缓冲存储内容调试设施,及其类似者。相似地,可将标签压缩技术独立地应用于指令地址、加载/存储地址及物理上加标签的结构。
在一个方面中,处理器101安置在包含指令执行管道112及高速缓冲存储器102的集成电路上。在另一方面中,高速缓冲存储器102可位于与包含处理器101的集成电路分离的集成电路上。
图2为根据一个方面的经配置以提供高速缓冲存储标签压缩的处理器101的高速缓冲存储器逻辑103的部分的逻辑视图。如所展示,处理器101包含标签压缩高速缓冲存储器(TCC)104及高速缓冲存储标签阵列105。如先前所描述,TCC 104为存储多个TCC条目202的经编制索引硬件结构。TCC条目202可包含存储器标签的高阶地址位集合。在至少一些方面中,TCC条目202可进一步包含关于ASID、安全性级别、异常级别及其类似者的位。如所展示,高速缓冲存储标签阵列105包含多个条目,所述条目中的每一者具有标签压缩高速缓冲存储器(TCC)索引值204及高速缓冲存储标签205。TCC索引值204可对应于TCC 104中的条目202的索引值。高速缓冲存储标签205可包含存储器标签的低阶位。如所展示,高速缓冲存储标签205存储存储器标签的低阶位,即,N位存储器标签的位0到M。相似地,TCC 104存储N位存储器标签的高阶位,即,存储器标签的位M+1到N。因此,可通过组合存储在TCC 104中的高阶位(位M+1到N)与高速缓冲存储标签205的低阶位(位0到M)来产生完整存储器标签(位0到N)。
如所展示,处理器101可请求存储在存储器地址201处的数据。高速缓冲存储器逻辑103可经配置以确定存储在存储器地址201处的数据是否位于高速缓冲存储器102中。在至少一个方面中,存储器地址201可为具有N个位的长度的虚拟存储器地址。为了确定存储在存储器地址201处的数据是否在高速缓冲存储器102中,高速缓冲存储器逻辑103可并行地探测TCC 104及高速缓冲存储标签阵列105。更具体地说,如所展示,高速缓冲存储器逻辑103可执行高速缓冲存储标签阵列105的CAM搜索。如果高速缓冲存储标签205中的一者包含匹配于存储器地址201的位0到M的条目,那么高速缓冲存储标签阵列105可返回TCC索引值208及高速缓冲存储标签209。此外,如所展示,拆分器213可拆分存储器地址201,其将存储器地址201的位M+1到N提供到TCC 104。可使用存储器地址201的位M+1到N来执行对TCC 104的CAM搜索。如果TCC 104中的条目202包含匹配于存储器地址201的位M+1到N的值的值,那么TCC 104经配置以返回TCC条目206及TCC索引值207,其中索引值207识别匹配TCC条目206。TCC索引值207的长度可为适合于允许由相应TCC索引值207唯一地识别TCC 104中的每一条目202的任何数目个位。因此,举例来说,如果TCC 104具有四个硬件条目(例如,四个TCC条目202),那么对应于每一条目的TCC索引值207的长度可为两个位。在此类实例中,存储在高速缓冲存储标签阵列105中的每一TCC索引204的长度将也为两个位。在至少一个方面中,基于给定TCC条目202的位置(或地址)来隐含地识别TCC索引值207。
如所展示,比较器210比较从TCC 104返回的TCC索引值207与由高速缓冲存储标签阵列105返回的TCC索引值208。此外,比较器211比较存储器地址201的低阶位0:M与存储在从高速缓冲存储标签阵列105返回的高速缓冲存储标签条目209中的低阶位0:M。如所展示,“与”(AND)逻辑212经配置以对比较器210、211的输出执行逻辑“与”运算。如果两个比较器210、211皆指示匹配,那么“与”逻辑212的输出经配置以返回高速缓冲存储命中的指示。换句话说,如果由比较器210比较的索引值匹配且由比较器211比较的低阶位0:M匹配,那么经请求存储器地址201的内容存储在高速缓冲存储器102中,且高速缓冲存储器逻辑103可返回高速缓冲存储命中的指示。然而,如果比较器210指示经比较索引值不匹配或比较器211指示低阶位0:M不匹配,那么经请求数据不在高速缓冲存储器102中,且高速缓冲存储器逻辑103可返回高速缓冲存储未命中的指示。因此,如所展示,高速缓冲存储器逻辑103致使比较位0:M与索引值。由此会允许高速缓冲存储器逻辑103比较比(位0:N的)传统标签比较更少的位,从而引起比传统比较更快的比较。
在高速缓冲存储未命中的情况下,高速缓冲存储器逻辑103可经配置以从高阶存储器提取经请求数据,且填充如上文所描述的TCC 104及高速缓冲存储标签阵列105。相似地,如果TCC 104及高速缓冲存储标签阵列105的初始CAM搜索中的任一者皆未命中,那么高速缓冲存储器逻辑103可经配置以从高阶存储器提取经请求数据,且填充如上文所描述的TCC 104及高速缓冲存储标签阵列105。
图3为根据一个方面的说明存储在标签压缩高速缓冲存储器(TCC)104、高速缓冲存储标签阵列105及数据阵列106中的实例值的示意图300。如所展示,TCC 104中的每一TCC条目202指定存储器标签的部分且是由相应TCC索引值207识别。相应索引值207唯一地识别每一TCC条目202。在至少一个方面中,索引值207是由TCC 104中的每一条目的位置(或地址)隐含地提供。因此,在此类方面中,TCC 104中未明确地定义索引值207,且图3中描绘索引值207以促进解释此类方面。每一TCC条目202的标签部分可为存储器标签的高阶地址位,且可包含额外信息,诸如ASID位、安全性位、异常级别位及其类似者。
如所展示,表格301包含高速缓冲存储标签阵列105及数据阵列106的实例值。数据阵列106存储用于高速缓冲存储器102中的每一条目的数据线302。如先前所描述,高速缓冲存储标签阵列105包含索引值204及高速缓冲存储标签205。高速缓冲存储标签阵列105中的索引值204对应于索引值207(其对应于TCC 104中的给定TCC条目202),而每一对应高速缓冲存储标签205存储存储器标签的低阶位。因此,如所展示,表格301中的多个条目可存储相同索引值204。有利地,TCC 104存储存储器标签的高阶位的全位样式的单一副本,从而缩减存储在高速缓冲存储标签阵列105中的冗余信息(即,不同索引值204,而非存储器标签的较冗长的高阶位)的量。因此,横越TCC 104及高速缓冲存储标签阵列105而存储存储器标签,其中高阶位存储在TCC 104中,且低阶位存储在高速缓冲存储标签阵列105中。从概念上讲,TCC 104中的TCC条目202的标签部分可替换高速缓冲存储标签阵列105的索引值204以产生完整存储器标签。举例来说,在表格301的第一行中,索引204的位“00”将由TCC条目202的标签位“01…0100”替换,标签位“01…0100”对应于TCC 104中的“00”的索引值207。
在一个实例方面中,图3所描绘的配置可用表格I中所描绘的实例组织来替换假想指令高速缓冲存储器:
表格I:
线大小 64个字节
关联性 4向
集合的数目 128
线的总数 512
标称容量 32KB
地址宽度 49个位
设置索引 虚拟地址(7个位)
标签位的数目(每线) {虚拟地址,ASID}(36+16=52个位)
标签位的数目(总计) (52个位/线*512个线)=26,624个位
因此,如表格1所展示,假想指令高速缓冲存储器需要26,624个位的存储开销以用于标签存储,总高速缓冲存储存储为32KB(或32,768个字节或262,144个位)。此实例配置中所需要的指令高速缓冲存储标签将为{PC[48:13],ASID}。
然而,这些位的子集(诸如{PC[48:28],ASID})倾向于展示真实工作负载的很少变化性。通过针对此实例指令高速缓冲存储器创建四条目TCC 104,每一TCC条目202将存储21个PC[48:28]位及16个ASID位,总计为37个位。为TCC 104所需要的存储的总量将因此为4个条目乘以37个位,或为148个位。TCC条目202可由TCC 104中的每一相应TCC条目202的位置(或地址)隐含地编制索引(例如,在四条目TCC 104中,位置0、1、2及3分别对应于二进制索引值00、01、10及11)。同时,高速缓冲存储标签阵列105的索引204将存储两位索引值,而高速缓冲存储标签205将存储标签位PC[27:13]或15个位,总计为17个位。横越指令高速缓冲存储器的512个线,高速缓冲存储标签阵列105中的总存储将为512个条目乘以17个位,总计为8,704个位。横越TCC 104及高速缓冲存储标签阵列105所需要的总存储将为8,852个位(148+8,704),其显着地小于表格I所描述的指令高速缓冲存储器所需要的26,624个位。
图4为根据一个方面的说明用以提供高速缓冲存储标签压缩的方法400的流程图。方法400始于步骤410,其中高速缓冲存储器逻辑103可接收长度为N个位的存储器地址。可接收存储器地址以作为用以确定存储在存储器地址处的数据是否位于高速缓冲存储器102中的请求的部分。高速缓冲存储器逻辑103可接着并行地探测TCC 104及高速缓冲存储标签阵列105。更具体地说,在步骤415处,高速缓冲存储器逻辑103可使用在步骤410处接收的存储器地址的较低M位而对高速缓冲存储标签阵列105执行CAM搜索。如果高速缓冲存储标签阵列105中的条目存储匹配于存储器地址的较低M位的值,那么在高速缓冲存储标签阵列105中存在命中,且方法继续进行到步骤460。另外,高速缓冲存储标签阵列105可返回存储器地址的较低M位及存储在匹配条目中的索引值。如果在高速缓冲存储标签阵列105中不存在存储匹配于存储器地址的较低M位的值的条目,那么在高速缓冲存储标签阵列105中存在未命中,且方法继续进行到步骤480。
在步骤420处,高速缓冲存储器逻辑103可使用经请求存储器地址的高阶位(M+1到N)来探测TCC 104。如果TCC 104中的条目存储匹配于经请求存储器地址的高阶位的值,那么方法继续进行到步骤460。在TCC 104中的命中的情况下,TCC 104可返回TCC 104中的条目的索引值,其匹配于存储器地址的高阶位。如果在TCC 104中存在未命中,那么方法继续进行到步骤430,其中高速缓冲存储器逻辑103可确定可用条目是否存在于TCC 104中。如果条目为不可用的,那么方法继续进行到步骤440,其中高速缓冲存储器逻辑103可收回TCC104中的条目且使高速缓冲存储标签阵列105中的任何对应条目失效。高速缓冲存储器逻辑103可使用任何合适收回策略,诸如收回最近最少使用的条目,或收回TCC 104中与高速缓冲存储标签阵列105中的最少条目相关联的条目。高速缓冲存储器逻辑103可以任何可行方式来使高速缓冲存储标签阵列105中的条目失效,诸如通过闪速失效或逐线失效。在参考图5更详细地所描述的步骤450处,高速缓冲存储器逻辑103可在TCC 104中建立新条目。通常,高速缓冲存储器逻辑103可将存储器地址拆分成较低位集合0:M及较高位集合M+1:N。高速缓冲存储器逻辑103可接着将较低位集合存储在高速缓冲存储标签阵列105中,且将较高位集合存储在TCC104中。
在步骤460处,高速缓冲存储器逻辑103可比较由TCC 104及高速缓冲存储标签阵列105返回的索引值。高速缓冲存储器逻辑103可进一步比较由高速缓冲存储标签阵列105返回的低阶位与经请求存储器地址的低阶位。如果两个比较皆引起匹配,那么方法继续进行到步骤470,其中高速缓冲存储器逻辑可返回高速缓冲存储命中的指示。如果在步骤460处执行的比较中的一者(或两者)未引起匹配,那么方法继续进行到步骤480,其中高速缓冲存储器逻辑103返回高速缓冲存储未命中的指示。
图5为根据一个方面的说明对应于步骤450的用以在标签压缩高速缓冲存储器104中建立新条目的方法500的流程图。如所展示,方法500始于步骤510,其中处理器101可从较高级别存储器(诸如较高级别高速缓冲存储器或主存储器)检索与在步骤410处提供的存储器地址相关联的数据。在步骤520处,高速缓冲存储器逻辑103可将存储器地址的高阶位(诸如位M+1:N)存储在TCC 104的第一条目中。在步骤530处,高速缓冲存储器逻辑103可将TCC104的第一条目的索引值及存储器地址的低阶位(诸如位0:M)存储到标签阵列105的第一条目中。在步骤540处,高速缓冲存储器逻辑103可将在步骤510处检索的数据存储到数据阵列106中对应于标签阵列105的第一条目的条目。
图6为根据一个方面的说明整合经配置以提供高速缓冲存储标签压缩的处理器101的计算装置601的框图。图1到5所描绘的所有设备及方法可包含在计算装置601中或由计算装置601执行。计算装置601还可经由网络630而连接到其它计算装置。一般来说,网络630可为电信网络及/或广域网(WAN)。在特定方面中,网络630为因特网。通常,计算装置601可为包含经配置以实施高速缓冲存储标签压缩的处理器的任何装置,包含但不限于桌上型计算机、膝上型计算机、平板计算机及智能电话。
计算装置601通常包含经由总线620而连接到存储器608、网络接口装置618、存储装置609、输入装置622及输出装置624的处理器101。计算装置601通常受到操作系统(未图示)控制。可使用支持本文中所揭示的功能的任何操作系统。处理器101被包含为表示单一CPU、多个CPU、具有多个处理核心的单一CPU,及其类似者。网络接口装置618可为允许计算装置601经由网络630而与其它计算装置通信的任何类型的网络通信装置。
存储装置609可为持续性存储装置。尽管存储装置609被展示为单一单元,但存储装置609可为固定及/或可拆卸存储装置的组合,诸如固定光盘驱动器、固态驱动器、SAN存储装置、NAS存储装置、可拆卸存储器卡或光学存储装置。存储器608及存储装置609可为跨越多个主要及次要存储装置的一个虚拟地址空间的部分。
输入装置622可为用于将输入提供到计算装置601的任何装置。举例来说,可使用键盘及/或鼠标。输出装置624可为用于将输出提供到计算装置601的用户的任何装置。举例来说,输出装置624可为任何常规显示屏幕或扬声器集合。尽管与输入装置622分离地展示输出装置624,但可组合输出装置624及输入装置622。举例来说,可使用具有整合式触控屏幕的显示屏幕。
有利地,本文中所揭示的方面缩减存储存储器标签值所需要的空间的量。通过将存储器标签的高阶位的冗余值存储在较小标签压缩高速缓冲存储器中,可使用较小标签阵列结构以存储存储器标签的低阶位。由此可允许使用较小整体硅裸片来产生此类结构,此通过允许将其它硬件结构更靠近地放置在一起而降低制造成本、缩减泄漏电流且改进电路计时。另外或替代地,可将所节省的空间用于其它微架构结构上。
已描述许多方面。然而,对这些方面的各种修改是可能的,且还可将本文中所呈现的原理应用于其它方面。可将此类方法的各种任务实施为可由诸如微处理器、嵌入式控制器或IP核心的逻辑元件的一或多个阵列执行的指令集合。
上文所描述的方法的各种操作可由能够执行所述操作的任何合适装置执行,诸如处理器、固件、专用集成电路(ASIC)、门逻辑/寄存器、存储器控制器或高速缓冲存储器控制器。通常,诸图中所说明的任何操作可由能够执行所述操作的对应功能装置执行。
前文所揭示的装置及功能性可经设计及配置到存储在计算机可读媒体上的计算机文件(例如,RTL、GDSII、GERBER等等)中。可将一些或所有此类文件提供到基于此类文件来制造装置的制造处置者。所得产品包含半导体晶片,其接着被切割成半导体裸片且被封装成半导体芯片。可将一些或所有此类文件提供到使用设计数据以制造本文中所描述的装置来配置制造装备的制造处置者。由计算机文件形成的所得产品包含半导体晶片,其接着被切割成半导体裸片(例如,处理器101)且被封装,且可进一步整合成包含但不限于以下各者的产品:移动电话、智能电话、膝上型计算机、上网本、平板计算机、超极本、桌上型计算机、数码录像机、机顶盒,及供使用集成电路的任何其它装置。
在一个方面中,计算机文件形成包含上文所描述且诸图中所展示的电路的设计结构,其呈物理设计布局、示意图、硬件描述语言(例如,Verilog、VHDL等等)的形式。举例来说,设计结构可为如上文所描述且诸图中所展示的电路的文本文件或图形表示。设计进程较佳地将下文所描述的电路合成(或翻译)为连线表,其中连线表为(例如)电线、晶体管、逻辑门、控制电路、I/O、模型等等的列表,其描述到集成电路设计中及记录在至少一个机器可读媒体上的其它元件及电路的连接。举例来说,媒体可为诸如CD、紧密闪速存储器、其它闪速存储器或硬盘驱动器的存储媒体。在另一方面中,本文中所描述的硬件、电路系统及方法可经配置到计算机文件中,所述计算机文件在由处理器执行时模拟上文所描述且诸图中所展示的电路的功能。这些计算机文件可用于电路系统模拟工具、示意性编辑器或其它软件应用程序中。
还可将本文中所揭示的方面的实施方案有形地具体化(例如,在如本文中所列出的一或多个计算机可读存储媒体的有形计算机可读特征中)为可由包含逻辑元件阵列的机器(例如,处理器、微处理器、微控制器或其它有限状态机)执行的一或多个指令集合。术语“计算机可读媒体”可包含可存储或传送信息的任何媒体,包含易失性、非易失性、可拆卸及非可拆卸存储媒体。计算机可读媒体的实例包含电子电路、半导体存储器装置、ROM、闪速存储器、可擦除ROM(EROM)、软盘或其它磁性存储装置、CD-ROM/DVD或其它光学存储装置、硬盘或可用以存储所要信息的任何其它媒体、光纤媒体、射频(RF)链路,或可用以携带所要信息且可被存取的任何其它媒体。计算机数据信号可包含可经由诸如电子网络信道、光纤、空气、电磁、RF链路等等的传输媒体而传播的任何信号。可经由诸如因特网或企业内部网的计算机网络来下载代码段。在任何状况下,不应将本发明的范围认作受到此类方面限制。
提供所揭示方面的先前描述以使得所属领域技术人员能够制作或使用所揭示方面。在不脱离本发明的范围的情况下,对这些方面的各种修改对于所属领域技术人员来说将易于显而易见,且本文中所定义的原理可应用于其它方面。因此,本发明并不意欲限于本文中所展示的方面,而应符合与如由所附权利要求书所定义的原理及新颖特征相一致的最广泛可能范围。

Claims (23)

1.一种高速缓冲存储器,其包括:
标签压缩结构,其存储多个标签压缩条目,其中所述多个标签压缩条目中的每一者含有由至少两个存储器标签共享的唯一高阶位集合且是由相应索引值识别;及
标签阵列,其存储多个标签阵列条目,其中所述多个标签阵列条目中的每一者含有所述存储器标签中的一者的相应低阶位集合及索引值,其中每一标签阵列条目的所述索引值对应于含有相应标签阵列条目的所述存储器标签的所述高阶位的所述标签压缩结构条目的所述索引值,其中所述存储器标签中的每一者包括存储在数据阵列中的数据元素的相应存储器地址的至少一部分。
2.根据权利要求1所述的高速缓冲存储器,其进一步包括经配置以通过以下操作而针对输入存储器地址返回所述标签阵列中的命中的指示的逻辑:
在确定来自所述标签压缩结构的第一标签压缩条目中的所述存储器标签的所述高阶位集合匹配于所述输入存储器地址的高阶位集合后就返回对应于所述第一标签压缩条目的所述索引值;
在确定所述输入存储器地址的所述低阶位集合匹配于第一标签阵列条目中的所述存储器标签的所述低阶位集合后就返回所述索引值及存储在所述第一标签阵列条目中的所述存储器标签的所述低阶位集合;及
确定所述第一标签压缩条目的经返回索引值匹配于所述第一标签阵列条目的经返回索引值。
3.根据权利要求1所述的高速缓冲存储器,其进一步包括经配置以在确定以下各者中的至少一者后就针对输入存储器地址返回所述标签阵列中的未命中的指示的逻辑:
所述输入存储器地址的高阶位集合不匹配于所述多个标签压缩条目中的所述高阶位集合中的任一者;
所述输入存储器地址的低阶位集合不匹配于存储在所述多个标签阵列条目中的所述低阶位集合中的任一者;及
从存储匹配于所述输入存储器地址的所述低阶位的低阶位集合的标签阵列条目返回的索引值不匹配于存储匹配于所述输入存储器地址的所述高阶位的高阶位集合的标签压缩条目的索引值。
4.根据权利要求3所述的高速缓冲存储器,其进一步包括经配置以响应于返回所述标签阵列中的所述未命中的所述指示而进行以下操作的逻辑:
检索存储在存储器层次的下一级别处的数据;
将所述数据存储在所述数据阵列的第一条目中;
将所述输入存储器地址的高阶位集合存储在所述标签压缩结构中的第二标签压缩条目中;及
存储以下各者:(i)所述输入存储器地址的低阶位集合,及(ii)所述标签阵列的第二标签阵列条目中对应于所述第二标签压缩条目的索引值,其中所述第二标签阵列条目对应于所述数据阵列的所述第一条目。
5.根据权利要求1所述的高速缓冲存储器,其中所述标签压缩结构中的所述条目经进一步配置以存储以下各者中的一或多者:(i)进程的地址空间标识符ASID,(ii)安全性位集合,及(iii)异常级别位集合。
6.根据权利要求1所述的高速缓冲存储器,其中第一标签阵列条目及第二标签阵列条目各自指定对应于第一标签压缩条目的索引值,其中所述第二标签阵列条目的低阶位集合不匹配于所述第一标签阵列条目的低阶位集合。
7.根据权利要求1所述的高速缓冲存储器,其中所述标签压缩结构包括完全关联内容可寻址存储器,其中所述标签阵列包括以下各者中的至少一者的部分:(i)数据高速缓冲存储器,(ii)翻译后援缓冲器,(iii)线填充缓冲器,及(iv)指令高速缓冲存储器。
8.根据权利要求1所述的高速缓冲存储器,其中所述高速缓冲存储器安置在集成电路中。
9.一种用于高速缓冲存储标签压缩的方法,其包括:
在标签压缩结构中的多个标签压缩条目中的第一标签压缩条目中存储由第一存储器标签及第二存储器标签共享的高阶位集合,其中所述多个标签压缩条目中的每一者是由相应索引值识别;及
在标签阵列中的多个标签阵列条目中的第一标签阵列条目中存储所述第一存储器标签的低阶位集合及用于所述第一标签阵列条目的索引值,其中所述第一标签阵列条目的所述索引值对应于所述第一标签压缩条目的所述索引值,其中所述第一存储器标签包括存储在数据阵列中的数据元素的存储器地址的至少一部分,其中所述多个标签阵列条目中的第二标签阵列条目指定对应于所述第一标签压缩条目的索引值且存储所述第二存储器标签的低阶位集合,其中所述第二存储器标签的所述低阶位集合不匹配于所述第一存储器标签的所述低阶位集合。
10.根据权利要求9所述的方法,其进一步包括通过以下操作而针对输入存储器地址返回所述标签阵列中的命中的指示:
在确定来自所述标签压缩结构的所述第一标签压缩条目中的所述存储器标签的所述高阶位集合匹配于所述输入存储器地址的高阶位集合后就返回对应于所述第一标签压缩条目的所述索引值;
在确定所述输入存储器地址的所述低阶位集合匹配于所述第一标签阵列条目中的所述存储器标签的所述低阶位集合后就返回所述索引值及存储在所述第一标签阵列条目中的所述存储器标签的所述低阶位集合;及
确定所述第一标签压缩条目的经返回索引值匹配于所述第一标签阵列条目的经返回索引值。
11.根据权利要求9所述的方法,其中所述标签压缩结构中的所述多个标签压缩条目中的每一者经配置以存储由相应多个存储器标签共享的唯一高阶位集合,其中所述多个标签阵列条目中的每一者经配置以存储相应存储器标签的低阶位集合及索引值,其中每一标签阵列条目的所述索引值对应于含有相应标签阵列条目的所述存储器标签的所述高阶位的所述标签压缩条目的所述索引值,所述方法进一步包括在确定以下各者中的至少一者后就针对输入存储器地址返回所述标签阵列中的未命中的指示:
所述输入存储器地址的高阶位集合不匹配于所述多个标签压缩条目中的所述高阶位集合中的任一者;
所述输入存储器地址的低阶位集合不匹配于存储在所述多个标签阵列条目中的所述低阶位集合中的任一者;及
从存储匹配于所述输入存储器地址的所述低阶位的低阶位集合的标签阵列条目返回的索引值不匹配于存储匹配于所述输入存储器地址的所述高阶位的高阶位集合的标签压缩条目的索引值。
12.根据权利要求11所述的方法,其进一步包括:
响应于返回所述标签阵列中的所述未命中的所述指示而进行以下操作:
检索存储在存储器层次的下一级别处的数据;
将所述数据存储在所述数据阵列的第一条目中;
将所述输入存储器地址的高阶位集合存储在所述标签压缩结构中的第二标签压缩条目中;及
存储以下各者:(i)所述输入存储器地址的低阶位集合,及(ii)所述标签阵列的第二标签阵列条目中对应于所述第二标签压缩条目的索引值,其中所述第二标签阵列条目对应于所述数据阵列的所述第一条目。
13.根据权利要求9所述的方法,其中所述标签压缩结构中的所述条目经进一步配置以存储以下各者中的一或多者:(i)进程的地址空间标识符ASID,(ii)安全性位集合,及(iii)异常级别位集合。
14.根据权利要求9所述的方法,其中所述标签压缩结构包括完全关联内容可寻址存储器,其中所述标签阵列包括以下各者中的至少一者的部分:(i)数据高速缓冲存储器,(ii)翻译后援缓冲器,(iii)线填充缓冲器,及(iv)指令高速缓冲存储器。
15.一种非暂时性计算机可读介质,其存储指令,所述指令在由处理器执行时致使所述处理器执行操作,所述操作包括:
在标签压缩结构中的多个标签压缩条目中的第一标签压缩条目中存储由第一存储器标签及第二存储器标签共享的高阶位集合,其中所述多个标签压缩条目中的每一者是由相应索引值识别;及
在标签阵列中的多个标签阵列条目中的第一标签阵列条目中存储所述第一存储器标签的低阶位集合及用于所述第一标签阵列条目的索引值,其中所述第一标签阵列条目的所述索引值对应于所述第一标签压缩条目的所述索引值,其中所述第一存储器标签包括存储在数据阵列中的数据元素的存储器地址的至少一部分,其中所述多个标签阵列条目中的第二标签阵列条目指定对应于所述第一标签压缩条目的索引值且存储所述第二存储器标签的低阶位集合,其中所述第二存储器标签的所述低阶位集合不匹配于所述第一存储器标签的所述低阶位集合。
16.根据权利要求15所述的非暂时性计算机可读介质,所述操作进一步包括通过以下操作而针对输入存储器地址返回所述标签阵列中的命中的指示:
在确定来自所述标签压缩结构的所述第一标签压缩条目中的所述存储器标签的所述高阶位集合匹配于所述输入存储器地址的高阶位集合后就返回对应于所述第一标签压缩条目的所述索引值;
在确定所述输入存储器地址的所述低阶位集合匹配于第一标签阵列条目中的所述存储器标签的所述低阶位集合后就返回所述索引值及存储在所述第一标签阵列条目中的所述存储器标签的所述低阶位集合;及
确定所述第一标签压缩条目的经返回索引值匹配于所述第一标签阵列条目的经返回索引值。
17.根据权利要求15所述的非暂时性计算机可读介质,其中所述标签压缩结构中的所述多个标签压缩条目中的每一者经配置以存储由相应多个存储器标签共享的唯一高阶位集合,其中所述多个标签阵列条目中的每一者经配置以存储相应存储器标签的低阶位集合及索引值,其中每一标签阵列条目的所述索引值对应于含有相应标签阵列条目的所述存储器标签的所述高阶位的所述标签压缩条目的所述索引值,所述操作进一步包括在确定以下各者中的至少一者后就针对输入存储器地址返回所述标签阵列中的未命中的指示:
所述输入存储器地址的高阶位集合不匹配于所述多个标签压缩条目中的所述高阶位集合中的任一者;
所述输入存储器地址的低阶位集合不匹配于存储在所述多个标签阵列条目中的所述低阶位集合中的任一者;及
从存储匹配于所述输入存储器地址的所述低阶位的低阶位集合的标签阵列条目返回的索引值不匹配于存储匹配于所述输入存储器地址的所述高阶位的高阶位集合的标签压缩条目的索引值。
18.根据权利要求17所述的非暂时性计算机可读介质,所述操作进一步包括:
响应于返回所述标签阵列中的所述未命中的所述指示而进行以下操作:
检索存储在存储器层次的下一级别处的数据;
将所述数据存储在所述数据阵列的第一条目中;
将所述输入存储器地址的高阶位集合存储在所述标签压缩结构中的第二标签压缩条目中;及
存储以下各者:(i)所述输入存储器地址的低阶位集合,及(ii)所述标签阵列的第二标签阵列条目中对应于所述第二标签压缩条目的索引值,其中所述第二标签阵列条目对应于所述数据阵列的所述第一条目。
19.根据权利要求15所述的非暂时性计算机可读介质,其中所述标签压缩结构中的所述条目经进一步配置以存储以下各者中的一或多者:(i)进程的地址空间标识符ASID,(ii)安全性位集合,及(iii)异常级别位集合。
20.一种用于高速缓冲存储标签压缩的设备,其包括:
用于在标签压缩结构中的多个标签压缩条目中的第一标签压缩条目中存储由第一存储器标签及第二存储器标签共享的高阶位集合的装置,其中所述多个标签压缩条目中的每一者是由相应索引值识别;及
用于在标签阵列中的多个标签阵列条目中的第一标签阵列条目中存储所述第一存储器标签的低阶位集合及用于所述第一标签阵列条目的索引值的装置,其中所述第一标签阵列条目的所述索引值对应于所述第一标签压缩条目的所述索引值,其中所述第一存储器标签包括存储在数据阵列中的数据元素的存储器地址的至少一部分,其中所述多个标签阵列条目中的第二标签阵列条目指定对应于所述第一标签压缩条目的索引值且存储所述第二存储器标签的低阶位集合,其中所述第二存储器标签的所述低阶位集合不匹配于所述第一存储器标签的所述低阶位集合。
21.根据权利要求20所述的设备,其进一步包括用以针对输入存储器地址返回命中的指示的装置,包括:
用于在确定所述第一标签压缩条目中的所述存储器标签的所述高阶位集合匹配于所述输入存储器地址的高阶位集合后就返回对应于所述第一标签压缩条目的所述索引值的装置;
用于在确定所述输入存储器地址的所述低阶位集合匹配于所述第一标签阵列条目中的所述存储器标签的所述低阶位集合后就返回所述索引值及存储在所述第一标签阵列条目中的所述存储器标签的所述低阶位集合的装置;及
用于确定所述第一标签压缩条目的经返回索引值匹配于所述第一标签阵列条目的经返回索引值的装置。
22.根据权利要求20所述的设备,其中所述多个标签压缩条目中的每一者经配置以存储由相应多个存储器标签共享的唯一高阶位集合,其中所述多个标签阵列条目中的每一者经配置以存储相应存储器标签的低阶位集合及索引值,其中每一标签阵列条目的所述索引值对应于含有相应标签阵列条目的所述存储器标签的所述高阶位的所述标签压缩条目的所述索引值,所述设备进一步包括用以在确定以下各者中的至少一者后就针对输入存储器地址返回所述标签阵列中的未命中的指示的装置:
所述输入存储器地址的高阶位集合不匹配于所述多个标签压缩条目中的所述高阶位集合中的任一者;
所述输入存储器地址的低阶位集合不匹配于存储在所述多个标签阵列条目中的所述低阶位集合中的任一者;及
从存储匹配于所述输入存储器地址的所述低阶位的低阶位集合的标签阵列条目返回的索引值不匹配于存储匹配于所述输入存储器地址的所述高阶位的高阶位集合的标签压缩条目的索引值。
23.根据权利要求22所述的设备,其进一步包括:
响应于返回所述标签阵列中的所述未命中的所述指示:
用于检索存储在存储器层次的下一级别处的数据的装置;
用于将所述数据存储在数据阵列的第一条目中的装置;
用于将所述输入存储器地址的高阶位集合存储在第二标签压缩条目中的装置;及
用于存储以下各者的装置:(i)所述输入存储器地址的低阶位集合,及(ii)第二标签阵列条目中对应于所述第二标签压缩条目的索引值,其中所述第二标签阵列条目对应于所述数据阵列的所述第一条目。
CN201680026963.6A 2015-05-20 2016-04-08 用于高速缓冲存储标签压缩的方法及设备 Active CN107735773B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/716,947 2015-05-20
US14/716,947 US9514061B1 (en) 2015-05-20 2015-05-20 Method and apparatus for cache tag compression
PCT/US2016/026664 WO2016186747A1 (en) 2015-05-20 2016-04-08 Method and apparatus for cache tag compression

Publications (2)

Publication Number Publication Date
CN107735773A CN107735773A (zh) 2018-02-23
CN107735773B true CN107735773B (zh) 2021-02-05

Family

ID=55755783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680026963.6A Active CN107735773B (zh) 2015-05-20 2016-04-08 用于高速缓冲存储标签压缩的方法及设备

Country Status (10)

Country Link
US (1) US9514061B1 (zh)
EP (1) EP3298493B1 (zh)
JP (1) JP6724043B2 (zh)
KR (1) KR102138697B1 (zh)
CN (1) CN107735773B (zh)
AU (1) AU2016265131B2 (zh)
ES (1) ES2787002T3 (zh)
HU (1) HUE049200T2 (zh)
TW (1) TWI698745B (zh)
WO (1) WO2016186747A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996471B2 (en) * 2016-06-28 2018-06-12 Arm Limited Cache with compressed data and tag
US10387305B2 (en) * 2016-12-23 2019-08-20 Intel Corporation Techniques for compression memory coloring
US10061698B2 (en) * 2017-01-31 2018-08-28 Qualcomm Incorporated Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur
US10254961B2 (en) 2017-02-21 2019-04-09 International Business Machines Corporation Dynamic load based memory tag management
US10229061B2 (en) 2017-07-14 2019-03-12 International Business Machines Corporation Method and arrangement for saving cache power
US10831669B2 (en) 2018-12-03 2020-11-10 International Business Machines Corporation Systems, methods and computer program products using multi-tag storage for efficient data compression in caches
US11720495B2 (en) * 2019-05-24 2023-08-08 Texas Instmments Incorporated Multi-level cache security
US10983915B2 (en) * 2019-08-19 2021-04-20 Advanced Micro Devices, Inc. Flexible dictionary sharing for compressed caches
US11436144B2 (en) * 2020-04-10 2022-09-06 Micron Technology, Inc. Cache memory addressing
KR20230158257A (ko) * 2022-05-11 2023-11-20 서울시립대학교 산학협력단 명령어를 처리하는 방법 및 이를 위한 프로세서 모듈

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994015310A1 (en) * 1992-12-22 1994-07-07 Roy Jack Bernard Assersohn Information storage and retrieval system
US7480759B2 (en) * 2004-10-29 2009-01-20 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
CN101770429A (zh) * 2008-12-30 2010-07-07 英特尔公司 用于在硬件中保存有损失的元数据的元物理地址空间
CN103885893A (zh) * 2012-12-19 2014-06-25 辉达公司 用于访问内容寻址存储器的技术

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122709A (en) * 1997-12-19 2000-09-19 Sun Microsystems, Inc. Cache with reduced tag information storage
US6795897B2 (en) 2002-05-15 2004-09-21 International Business Machines Corporation Selective memory controller access path for directory caching
US7162669B2 (en) 2003-06-10 2007-01-09 Hewlett-Packard Development Company, L.P. Apparatus and method for compressing redundancy information for embedded memories, including cache memories, of integrated circuits
US7512750B2 (en) 2003-12-31 2009-03-31 Intel Corporation Processor and memory controller capable of use in computing system that employs compressed cache lines' worth of information
US8627041B2 (en) 2009-10-09 2014-01-07 Nvidia Corporation Efficient line and page organization for compression status bit caching
JP2012003314A (ja) * 2010-06-14 2012-01-05 Renesas Electronics Corp キャッシュメモリ装置
US8838897B2 (en) * 2011-06-29 2014-09-16 New Jersey Institute Of Technology Replicating tag entries for reliability enhancement in cache tag arrays
WO2013095525A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Content-aware caches for reliability
US9396122B2 (en) * 2013-04-19 2016-07-19 Apple Inc. Cache allocation scheme optimized for browsing applications
TWI514145B (zh) * 2013-10-21 2015-12-21 Univ Nat Sun Yat Sen 可儲存除錯資料的處理器、其快取及控制方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994015310A1 (en) * 1992-12-22 1994-07-07 Roy Jack Bernard Assersohn Information storage and retrieval system
US7480759B2 (en) * 2004-10-29 2009-01-20 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
CN101770429A (zh) * 2008-12-30 2010-07-07 英特尔公司 用于在硬件中保存有损失的元数据的元物理地址空间
CN103885893A (zh) * 2012-12-19 2014-06-25 辉达公司 用于访问内容寻址存储器的技术

Also Published As

Publication number Publication date
EP3298493A1 (en) 2018-03-28
KR102138697B1 (ko) 2020-07-28
WO2016186747A1 (en) 2016-11-24
KR20180008507A (ko) 2018-01-24
AU2016265131A1 (en) 2017-11-02
US20160342530A1 (en) 2016-11-24
TW201706853A (zh) 2017-02-16
TWI698745B (zh) 2020-07-11
ES2787002T3 (es) 2020-10-14
HUE049200T2 (hu) 2020-09-28
JP6724043B2 (ja) 2020-07-15
US9514061B1 (en) 2016-12-06
AU2016265131B2 (en) 2020-09-10
JP2018519570A (ja) 2018-07-19
CN107735773A (zh) 2018-02-23
EP3298493B1 (en) 2020-02-12
BR112017024623A2 (pt) 2018-07-31

Similar Documents

Publication Publication Date Title
CN107735773B (zh) 用于高速缓冲存储标签压缩的方法及设备
US7739477B2 (en) Multiple page size address translation incorporating page size prediction
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
KR20180099819A (ko) 시스템 성능 향상을 위한 적응적 값 범위 프로파일링
CN109154907B (zh) 在输入-输出存储器管理单元中使用多个存储器元件来执行虚拟地址到物理地址转译
CN107818053B (zh) 用于存取高速缓存的方法与装置
US11403222B2 (en) Cache structure using a logical directory
US10303608B2 (en) Intelligent data prefetching using address delta prediction
US10740248B2 (en) Methods and systems for predicting virtual address
US10318436B2 (en) Precise invalidation of virtually tagged caches
US20170046278A1 (en) Method and apparatus for updating replacement policy information for a fully associative buffer cache
US6810473B2 (en) Replacement algorithm for a replicated fully associative translation look-aside buffer
CN115964309A (zh) 预取
US11494300B2 (en) Page table walker with page table entry (PTE) physical address prediction
CN113641403A (zh) 微处理器和在微处理器中实现的方法
BR112017024623B1 (pt) Método e equipamento para compressão de indicador de cache
JP2004038553A (ja) データ処理装置

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