CN101595462B - 用以减少多级高速缓冲存储器层级中的掷出的设备和方法 - Google Patents

用以减少多级高速缓冲存储器层级中的掷出的设备和方法 Download PDF

Info

Publication number
CN101595462B
CN101595462B CN2008800033756A CN200880003375A CN101595462B CN 101595462 B CN101595462 B CN 101595462B CN 2008800033756 A CN2008800033756 A CN 2008800033756A CN 200880003375 A CN200880003375 A CN 200880003375A CN 101595462 B CN101595462 B CN 101595462B
Authority
CN
China
Prior art keywords
cache
line
level cache
next higher
higher level
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.)
Expired - Fee Related
Application number
CN2008800033756A
Other languages
English (en)
Other versions
CN101595462A (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
Priority to CN201210029539.0A priority Critical patent/CN102693187B/zh
Publication of CN101595462A publication Critical patent/CN101595462A/zh
Application granted granted Critical
Publication of CN101595462B publication Critical patent/CN101595462B/zh
Expired - Fee Related 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/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; 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/1028Power efficiency
    • 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

本发明揭示用于减少将从较低级高速缓冲存储器移位的高速缓冲存储器线分配到较高级高速缓冲存储器的技术和方法。当确定经移位的线已被分配在较高级中时,防止将所述经移位高速缓冲存储器线分配在下一级高速缓冲存储器中,因此减少掷出。为此,选择将要在较低级高速缓冲存储器中移位的线。识别与所述选定线相关联的信息,其指示所述选定线存在于较高级高速缓冲存储器中。基于所述识别的信息来防止将所述选定线分配在所述较高级高速缓冲存储器中。防止分配所述选定线节约了将与所述分配相关联的功率。

Description

用以减少多级高速缓冲存储器层级中的掷出的设备和方法
技术领域
本发明大体上涉及高速缓冲存储器领域,且更具体地说,涉及具有指令高速缓冲存储器、数据高速缓冲存储器和牺牲高速缓冲存储器的存储器系统。
背景技术
例如手机、膝上型计算机、个人数据助理(PDA)等许多便携式产品均利用执行程序(例如通信和多媒体程序)的处理器。用于此些产品的处理系统包含用于存储指令和数据的处理器与存储器复合体。大容量主存储器通常具有与处理器循环时间相比较低的存取时间。因此,按照惯例,基于高速缓冲存储器的容量和性能而以层级来组织存储器复合体,其中最高性能和最低容量高速缓冲存储器离处理器最近。举例来说,1级指令高速缓冲存储器和1级数据高速缓冲存储器通常将直接附接到处理器。而2级统一高速缓冲存储器连接到1级(L1)指令高速缓冲存储器和数据高速缓冲存储器。另外,系统存储器连接到2级(L2)统一高速缓冲存储器。1级指令高速缓冲存储器通常以处理器速度操作,且2级统一高速缓冲存储器以低于1级高速缓冲存储器的速度的速度操作,但具有比系统存储器的存取时间快的存取时间。有很多替代性存储器组织,例如除L1和L2高速缓冲存储器以外还具有3级高速缓冲存储器的存储器层级。另一存储器组织可仅使用1级高速缓冲存储器和系统存储器。
存储器组织可由作为内含式高速缓冲存储器、严格内含式高速缓冲存储器、独占式高速缓冲存储器或这些高速缓冲存储器类型的组合而操作的高速缓冲存储器层级组成。依据本文的定义,彼此独占的任何两级高速缓冲存储器不可含有相同的高速缓冲存储器线。彼此内含的任何两级高速缓冲存储器可含有相同的高速缓冲存储器线。彼此严格内含的任何两级高速缓冲存储器意味着较大高速缓冲存储器(通常是较高级高速缓冲存储器)必须含有较小高速缓冲存储器(通常是较低级高速缓冲存储器)中的所有线。在三个或三个以上多级高速缓冲存储器组织中,任何两个或两个以上高速缓冲存储器级可作为一种类型的高速缓冲存储器(例如,独占式)而操作,且其余高速缓冲存储器级可作为替代类型的高速缓冲存储器中的一者(例如,内含式)而操作。
指令高速缓冲存储器通常经构造以支持位于指令高速缓冲存储器中的单个地址处的多个指令。数据高速缓冲存储器通常经构造以支持位于数据高速缓冲存储器的单个地址处的多个数据单元,其中数据单元可以是可变数目个字节,其视处理器而定。此多个指令或数据单元通常被称为高速缓冲存储器线或简称为线。举例来说,处理器从L1高速缓冲存储器获取指令或数据单元,且如果所述指令或数据单元存在于所述高速缓冲存储器中,那么“命中”发生,且将所述指令或数据单元提供给处理器。如果所述指令或数据单元不存在于L1高速缓冲存储器中,那么“未命中”发生。未命中可能发生在高速缓冲存储器线中任何地方的指令或数据单元存取上。当未命中发生时,用含有未命中指令的新线来替换所述高速缓冲存储器中的线。使用替换策略来确定哪一高速缓冲存储器线要替换。举例来说,选择或牺牲已最少使用的高速缓冲存储器线表示最近最少使用(LRU)策略。被选定以进行替换的高速缓冲存储器线是牺牲高速缓冲存储器线。
高速缓冲存储器线还可具有与之相关联的许多状态位,例如有效位和无效位(dirtybit)。有效位指示驻存在高速缓冲存储器线中的指令或数据。无效位指示是否已发生对高速缓冲存储器线的修改。在回写高速缓冲存储器中,无效位指示当高速缓冲存储器线将被替换时,需要将所述修改回写到存储器系统层级中的下一个较高存储器级。
牺牲高速缓冲存储器可为连接到高速缓冲存储器(例如1级高速缓冲存储器)的单独缓冲器或整合在邻近的较高级高速缓冲存储器中。在牺牲线被逐出后相对不久可能需要牺牲线且当需要时从牺牲高速缓冲存储器存取牺牲线比从存储器层级的较高级存取牺牲线快的假定下,可在牺牲高速缓冲存储器中分配牺牲高速缓冲存储器线。对于整合在邻近较高级高速缓冲存储器中的牺牲高速缓冲存储器,当线从较低级高速缓冲存储器移位且被分配在较高级高速缓冲存储器中时,掷出发生,从而高速缓存较低级高速缓冲存储器的牺牲者。较低级高速缓冲存储器向较高级高速缓冲存储器发送所有经移位的线(无效或非无效)。在一些情况下,牺牲线可能已经存在于牺牲高速缓冲存储器中,且重写已经存在的线浪费功率,且减少用于牺牲高速缓冲存储器的带宽。
发明内容
本发明认识到减少存储器系统中的功率要求对便携式应用且一般对减少处理系统中的功率需要来说是重要的。为此,本发明的一实施例解决一种用以减少经移位的高速缓冲存储器线的分配的跟踪方法。选择将要在较低级高速缓冲存储器中移位的线。识别与所述选定线相关联的信息,其指示所述选定线存在于较高级高速缓冲存储器中。基于所述识别的信息来防止将所述选定线分配在较高级高速缓冲存储器中。防止对选定线的分配节约与所述分配相关联的功率。
本发明的另一实施例解决一种用以减少掷出的方法。响应于X级高速缓冲存储器中的未命中,将分配信息保存在X级高速缓冲存储器中,处于与未命中相关联的高速缓冲存储器线的标签中。分配信息指示高速缓冲存储器线是否被分配在X+1级高速缓冲存储器中。选择将要在X级高速缓冲存储器中替换的线。响应于选定线的的分配信息指示所述高速缓冲存储器线被分配在X+1级高速缓冲存储器中,防止将选定线从X级高速缓冲存储器掷出到X+1级高速缓冲存储器。
本发明的另一实施例解决一种具有多个高速缓冲存储器级的存储器系统。较低级高速缓冲存储器经配置以存储多个第一高速缓冲存储器线,其每一者具有一分配位。与所述多个第一高速缓冲存储器线中的一者相关联的分配位指示所述多个第一高速缓冲存储器线中的所述一者是否被分配在较高级高速缓冲存储器中。掷出逻辑电路经配置以基于与被选择用于从所述多个第一高速缓冲存储器线移位的第一高速缓冲存储器线相关联的分配位来确定选定的第一高速缓冲存储器线是否为对于较高级高速缓冲存储器中的高速缓冲存储器线来说为冗余的高速缓冲存储器线。响应于选定第一高速缓冲存储器线的分配位而防止将选定第一高速缓冲存储器线掷出到较高级高速缓冲存储器。
应理解,所属领域的技术人员从以下详细描述将容易明白本发明的其它实施例,其中借助于说明来展示和描述本发明的各种实施例。如将意识到,本发明能够具有其它和不同实施例,且本发明的若干细节能够具有各种其它方面的修改,这些都不脱离本发明。因此,图式和详细描述本质上将被视为说明性的,而非限制性的。
附图说明
图1说明无线通信系统;
图2是其中减少掷出的示范性处理器与存储器复合体的功能框图;以及
图3是说明用于减少掷出的过程的流程图。
具体实施方式
希望下文结合附图而陈述的详细描述作为对本发明的各种示范性实施例的描述,且不希望表示其中可实践本发明的仅有实施例。详细描述出于提供对本发明的全面理解的目的而包含特定细节。然而,所属领域的技术人员将明白,可在不具有这些特定细节的情况下实践本发明。在一些情况下,为了避免混淆本发明的概念,以框图形式来展示众所周知的结构和组件。
图1说明其中可有利地采用本发明的实施例的示范性无线通信系统100。出于说明的目的,图1展示三个远程单元120、130和150以及两个基站140。将认识到,常见的无线通信系统可具有多得多的远程单元和基站。远程单元120、130和150包含硬件组件、软件组件或两者,如分别由组件125A、125C和125B表示,其已适合于实施本发明,如下文进一步论述。图1展示从基站140到远程单元120、130和150的前向链路信号180以及从远程单元120、130和150到基站140的反向链路信号190。
在图1中,将远程单元120展示为移动电话,将远程单元130展示为便携式计算机,且将远程单元150展示为无线本地环路系统中的固定位置远程单元。举例来说,远程单元可替代地为手机、寻呼机、对讲机、手持式个人通信系统(PCS)单元、例如个人数据助理等便携式数据单元,或例如仪表读取装备等固定位置数据单元。尽管图1说明根据本发明的教示的远程单元,但本发明不限于这些示范性所说明单元。本发明的实施例可适合用于具有带至少两级存储器层级(例如1级高速缓冲存储器和2级高速缓冲存储器)的处理器的任何装置中。
图2是其中可减少掷出的示范性处理器与存储器复合体200的功能框图。示范性处理器与存储器复合体200包含:处理器202;1级高速缓冲存储器(L1高速缓冲存储器)203,其包括L1高速缓冲存储器线阵列204和L1高速缓冲存储器控制线206;内含式2级高速缓冲存储器(L2高速缓冲存储器)208;以及系统存储器210。L1高速缓冲存储器控制单元206包含掷出逻辑单元212和1级内容可寻址存储器(L1 CAM)214,其用于标签匹配,所述标签匹配可在各种类型的高速缓冲存储器(例如,组关联高速缓冲存储器或全关联高速缓冲存储器)中使用。为了论述的清楚性而未展示外围装置(其可连接到处理器复合体)。示范性处理器与存储器复合体200可适合在本发明的各种实施例中用于组件125A到125C中,组件125A到125C用于执行存储在高速缓冲存储器203和208以及系统存储器210中的程序代码。
L1高速缓冲存储器线阵列204可包含多个线,例如高速缓冲存储器线215到217。在一个实施例中,L1高速缓冲存储器203是每一线由多个数据单元组成的数据高速缓冲存储器。在另一实施例中,L1高速缓冲存储器203是每一线由多个指令组成的指令高速缓冲存储器。在其它实施例中,L1高速缓冲存储器203是每一线由多个指令或数据单元组成的统一高速缓冲存储器。举例来说,每一线由分别适合于所例示高速缓冲存储器实施例的多个元件(U0、U1、……、U7)218到225组成。与每一线相关联的是标签226、无效位(D)228和强制替换掷出位(FRC)230,如下文将更详细地论述。高速缓冲存储器线215到217驻存在L1高速缓冲存储器线阵列204中,分别位于线地址231到233处。L1高速缓冲存储器控制单元206含有地址控制逻辑,其响应于在指令地址或数据地址(I/DA)接口235上接收到的I/DA 234而存取高速缓冲存储器线。I/DA 234可由标签236、线地址字段238、指令/数据“U”字段240和字节“B”字段242组成。
为了获取示范性处理器与存储器复合体200中的指令或数据单元,处理器202产生将要获取的所要指令/数据的指令/数据地址(I/DA)234,并将获取地址发送到L1高速缓冲存储器控制单元206。基于接收到的I/DA 234,L1高速缓冲存储器控制单元206检查以查看所述指令或数据是否存在于L1高速缓冲存储器线阵列204中。举例来说,通过使用比较逻辑来完成此检查,所述比较逻辑检查以寻找与由I/DA 234选择的线215相关联的匹配标签244。如果所述指令或数据存在,那么匹配或命中发生,且L1高速缓冲存储器控制单元206指示所述指令或数据存在于L1高速缓冲存储器203中。如果所述指令或数据不存在,那么将不会发现匹配或将发现未命中,且L1高速缓冲存储器控制单元206提供指令或数据不存在于L1高速缓冲存储器203中的未命中指示。
如果所述指令或数据存在,那么从L1高速缓冲存储器线阵列204选择指令/数据获取地址处的指令或数据。接着在指令/数据输出总线246上将指令或数据发送到处理器202。
如果所述指令或数据不存在于所述高速缓冲存储器中,那么通过指示已发生未命中的未命中信号248向L2高速缓冲存储器208提供未命中信息。当在L1高速缓冲存储器203中检测到未命中后,进行从L2高速缓冲存储器208获取所要指令/数据的尝试。如果所要指令/数据存在于L2高速缓冲存储器208中,那么在存储器总线接口250上提供所述指令/数据。如果所要指令/数据不存在于L2高速缓冲存储器208中,那么从系统存储器210获取所述指令/数据。
将来自L2高速缓冲存储器208的强制替换掷出(FRC)信号254连同在存储器总线接口250上发送的所要指令/数据一起发送到较低L1高速缓冲存储器203。FRC信号254指示是否由于上级L2高速缓冲存储器208中的命中而获得所供应的指令/数据。举例来说,处于“0”状态的FRC信号254指示所要指令/数据是从L2高速缓冲存储器208供应的。处于“1”状态的FRC信号254指示所要指令/数据是从L2高速缓冲存储器208上方的另一级存储器供应的,例如从系统存储器210供应。举例来说,FRC信号254作为FRC位256到258连同与适当的高速缓冲存储器线(例如线215到217)相关联的标签一起被存储在L1高速缓冲存储器203中。当所请求的线是L2高速缓冲存储器208和L1高速缓冲存储器203中的未命中时,L1高速缓冲存储器203是由L2高速缓冲存储器208上方的下一级存储器供应,而L2高速缓冲存储器208在未命中时不分配所述线。
当较低级高速缓冲存储器必须使线移位时,可响应于与所述线一起存储在所述较低级高速缓冲存储器中的信息而将所述线分配在下一级高速缓冲存储器中。举例来说,当较低级高速缓冲存储器(例如L1高速缓冲存储器203)选择具有无效指示(如由处于“1”状态的无效位259指示)的待移位线(例如高速缓冲存储器线215)时,掷出逻辑电路212作出将把高速缓冲存储器线215分配到存储器层级中的下一级的确定。如果选择非无效的高速缓冲存储器线(例如具有处于“0”状态的无效位260且其相关联的FRC位256被设置为有效(例如设置为“1”状态)的高速缓冲存储器线216)以进行移位,那么还将高速缓冲存储器线216分配给存储器层级中的下一级。响应于由存储器层级中的下一级提供的在其目录中未找到所述线的FRC信号254指示而将FRC位256设置为有效。如果被选择进行替换的高速缓冲存储器线非无效(例如具有处于“0”状态的其无效位261且具有被设置为非有效(例如设置为“0”状态)的相关联FRC位258的高速缓冲存储器线217),那么不将高速缓冲存储器线217分配给存储器层级中的下一级。由于所述线非无效且FRC位258由其非有效状态指示此高速缓冲存储器线217存在于存储器层级中的下一级中,所以不需要掷出。简单来说,当无效位被设置或FRC位被设置时,较高级高速缓冲存储器响应于较低级中经移位的高速缓冲存储器线而分配高速缓冲存储器线。通过FRC位的此用途,抑制了冗余掷出,从而通过避免对存储器层级的上级进行不必要的存取而节约功率和存取循环。
图3是说明用于减少掷出的过程300的流程图。在过程300中,存储器级由索引(X)、(X+1)或(X+2)指示,其中(例如)在X=1的情况下,可指示L1、L2和L3存储器级。而且,对过程300的块的描述包含图2中的功能元件的参考编号。
过程300以在块302处处理器(例如处理器202)获取指令或数据单元而开始。在决策块304处,确定是否可在L(X)高速缓冲存储器(例如L1高速缓冲存储器203)中定位所请求的指令/数据。如果可定位所述指令/数据,那么在块306处从L(X)高速缓冲存储器获取所请求的指令/数据,且在块308处将所述指令/数据返回给处理器。
如果不可在L(X)高速缓冲存储器中定位所述指令/数据,那么产生未命中指示,且在决策块310处,确定是否可在L(X+1)高速缓冲存储器(例如L2高速缓冲存储器208)中定位所请求的指令/数据。如果可定位所述指令/数据,那么可在块316处从L(X+1)高速缓冲存储器获取所请求的指令/数据。在块318处,在L1高速缓冲存储器203的标签线(例如与高速缓冲存储器线217相关联)中将强制替换掷出(FRC)位(例如FRC位258)设置为“0”状态,以使L1高速缓冲存储器203防止向L2高速缓冲存储器208发送此指令/数据。过程300接着进行到决策块320。
返回到块310,如果不可在L(X+1)高速缓冲存储器中定位所述指令/数据,那么产生未命中指示。在块312处,从存储器层级的大于或等于L(X+2)级的级(例如L3高速缓冲存储器或处理器与存储器复合体200的系统存储器210)获取所请求的指令/数据。在块314处,将FRC位(例如FRC位256)设置为“1”状态,且和与选定线(例如高速缓冲存储器线216)相关联的标签一起存储。
在决策块320处,确定是否应在L(X)高速缓冲存储器(例如L1高速缓冲存储器203)中替换线。如果确定应在L(X)高速缓冲存储器中替换线,那么在决策块322处进一步确定选定线(牺牲线)是否无效(例如由处于“1”状态的无效位259指示)。如果选定牺牲线为无效,那么在块324处将所述牺牲线分配在L(X+1)高速缓冲存储器(例如L2高速缓冲存储器208)中。如果选定牺牲线非无效(例如由无效位260和261指示),那么在决策块326中检查FRC位,以确定其是否被设置为有效。如果在决策块326处确定FRC位为有效(例如FRC位256的情况),那么在块324处,将牺牲线分配在L(X+1)高速缓冲存储器(例如L2高速缓冲存储器208)中。
如果在决策块320处确定不应替换线,或如果在决策块326处确定FRC位为非有效(例如处于“0”状态,如FRC位258的情况),那么在块328处将所请求的指令/数据分配在L(X)高速缓冲存储器(例如L1高速缓冲存储器203)中。还在块330处将所请求的指令/数据返回给请求的处理器(例如处理器202)。以此方式,避免了向L(X+1)高速缓冲存储器的冗余掷出,从而节约了功率,且改进了存储器层级中的高速缓冲存储器存取带宽。
可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文所描述的功能的任一组合来实施或执行结合本文所揭示的实施例而描述的各种说明性逻辑块、模块、电路、元件和/或组件。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。还可将处理器实施为计算组件的组合,例如DSP与微处理器的组合、多个微处理器的组合、一个或一个以上微处理器与DSP核心的联合,或适合于所要应用的任何其它此类配置。
结合本文所揭示的实施例而描述的方法可直接包含在硬件中、由处理器执行的软件模块中或上述两者的组合中。软件模块可驻存在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除盘、CD-ROM或此项技术中已知的任何其它形式的存储媒体中。存储媒体可耦合到处理器,使得处理器可从存储媒体读取信息,且将信息写入到存储媒体。在替代方案中,存储媒体可整合到处理器。
虽然在针对指令高速缓冲存储器、数据高速缓冲存储器和其它类型的高速缓冲存储器的说明性实施例的上下文中揭示本发明,但将认识到,所属领域的技术人员可采用与以上论述和所附权利要求书一致的广泛多种实施方案。

Claims (20)

1.一种用以减少经移位高速缓冲存储器线的分配的跟踪方法,所述跟踪方法包括:
响应于在下一个较高级高速缓冲存储器中具有获取地址命中的存储器存取,存取将要在较低级高速缓冲存储器中移位的选定线;
识别与所述选定线相关联的信息,其指示所述选定线不存在于所述下一个较高级高速缓冲存储器中;以及
针对在所述下一个较高级高速缓冲存储器中具有所述获取地址命中的所述存储器存取,响应于经识别的所述信息和与所述较低级高速缓冲存储器中的高速缓冲存储器线相关联的分配指示,在所述下一个较高级高速缓冲存储器中分配所述选定线,其中所述分配指示表示所述高速缓冲存储器线存在于所述下一个较高级高速缓冲存储器中。
2.根据权利要求1所述的跟踪方法,其进一步包括:
响应于所述较低级高速缓冲存储器中的未命中而使用由于所述未命中而分配在所述较低级高速缓冲存储器中的所述高速缓冲存储器线的标签来保存所述分配指示。
3.根据权利要求1所述的跟踪方法,其进一步包括:
将所述选定线识别为无效;以及
将所述选定线分配在所述下一个较高级高速缓冲存储器中。
4.根据权利要求1所述的跟踪方法,其进一步包括:
确定与所述选定线相关联的包含断言的强制替换掷出(FRC)位的所述识别的信息表示所述选定线不存在于所述下一个较高级高速缓冲存储器中;以及
将所述选定线分配在所述下一个较高级高速缓冲存储器中。
5.根据权利要求1所述的跟踪方法,其中:
未断言的无效位指示所述选定线没有被修改。
6.根据权利要求2所述的跟踪方法,其进一步包括:
从所述下一个较高级高速缓冲存储器获取数据单元;以及
将分配指示设置为表示所述数据单元存在于所述下一个较高级高速缓冲存储器中的状态。
7.根据权利要求2所述的跟踪方法,其进一步包括:
从存储器层级中高于所述下一个较高级高速缓冲存储器的级获取数据单元;以及
将所述分配指示设置为表示所述数据单元不存在于所述下一个较高级高速缓冲存储器中的状态。
8.根据权利要求1所述的跟踪方法,其中所述下一个较高级高速缓冲存储器作为牺牲高速缓冲存储器而操作。
9.一种用以减少掷出的方法,所述方法包括:
响应于在X+1级高速缓冲存储器中具有获取地址命中的存储器存取,存取将要在X级高速缓冲存储器中移位的选定线;
针对在所述X+1级高速缓冲存储器中具有所述获取地址命中的所述存取,响应于指示所述选定线不存在于所述X+1级高速缓冲存储器和高速缓冲存储器线中的所述选定线的分配位以及与所述X级高速缓冲存储器中的所述高速缓冲存储器线相关联的分配位,在所述X+1级高速缓冲存储器中分配所述选定线,其中与被分配在所述X级高速缓冲存储器中的所述高速缓冲存储器线相关联的所述分配位表示所述高速缓冲存储器线存在于所述X+1级高速缓冲存储器中。
10.根据权利要求9所述的方法,其进一步包括:
将所述选定线识别为无效;以及
将所述选定线分配在所述X+1级高速缓冲存储器中。
11.根据权利要求9所述的方法,其进一步包括:
确定与所述选定线相关联的所述分配位指示所述选定线不存在于所述X+1级高速缓冲存储器中并且无效位指示所述选定线是非无效的;以及
将所述选定线分配在所述X+1级高速缓冲存储器中。
12.根据权利要求9所述的方法,其进一步包括:
未断言的无效位指示所述选定线没有被修改。
13.根据权利要求9所述的方法,其进一步包括:
从所述X+1级高速缓冲存储器获取数据单元;以及
将与被分配在所述X级高速缓冲存储器中的所述高速缓冲存储器线相关联的所述分配位设置为表示所述数据单元存在于所述X+1级高速缓冲存储器中的状态。
14.根据权利要求9所述的方法,其进一步包括:
从存储器层级中高于所述X+1级高速缓冲存储器的级获取数据单元;以及
将与被分配在所述X级高速缓冲存储器中的所述高速缓冲存储器线相关联的所述分配位设置为表示所述数据单元不存在于所述X+1级高速缓冲存储器中的状态。
15.根据权利要求9所述的方法,其中所述选定线被分配在由所述X+1级高速缓冲存储器的最近最少使用策略确定的所述X+1级高速缓冲存储器中的地址处。
16.一种具有多个高速缓冲存储器级的存储器系统,其包括:
较低级高速缓冲存储器,其经配置以存储多个第一高速缓冲存储器线,所述多个第一高速缓冲存储器线每一者具有分配位,每一分配位指示与所述分配位相关联的所述第一高速缓冲存储器线中的一者是否被分配在下一个较高级高速缓冲存储器中;以及
掷出逻辑电路,其经配置以响应于在所述下一个较高级高速缓冲存储器中具有获取地址命中的存储器存取,基于与被选择用于从所述多个第一高速缓冲存储器线移位的第一高速缓冲存储器线相关联的所述分配位而确定所述选定的第一高速缓冲存储器线是否为对于所述下一个较高级高速缓冲存储器中的高速缓冲存储器线来说为冗余的高速缓冲存储器线,响应于所述选定第一高速缓冲存储器线的所述分配位而避免将所述选定第一高速缓冲存储器线掷出到所述下一个较高级高速缓冲存储器,所述选定第一高速缓冲存储器线的所述分配位指示所选定的第一高速缓冲存储器线对于所述下一个较高级高速缓冲存储器的高速缓冲存储器线来说为冗余的高速缓冲存储器线,并且针对在所述下一个较高级高速缓冲存储器中具有所述获取地址命中的所述存取,基于指示所述选定第一高速缓冲存储器线不存在于所述下一个较高级高速缓冲存储器中而将所述选定第一高速缓冲存储器线掷出到所述下一个较高级高速缓冲存储器,其中针对在所述下一个较高级高速缓冲存储器中具有所述获取地址命中的所述存取,高速缓冲存储器线和相关联的分配位被存储在所述较低级高速缓冲存储器中,所述相关联的分配位表示所述高速缓冲存储器线存在于所述下一个较高级高速缓冲存储器中。
17.根据权利要求16所述的存储器系统,其中所述下一个较高级高速缓冲存储器包括:
多个第二高速缓冲存储器线;以及
逻辑电路,其经配置以响应于所述较低级高速缓冲存储器中的未命中基于与所述未命中相关联的所述高速缓冲存储器线是否被分配在所述下一个较高级高速缓冲存储器中而产生分配信号,所述分配信号被传送到所述较低级高速缓冲存储器,以作为分配位而存储在与所述未命中相关联的所述高速缓冲存储器线中。
18.根据权利要求17所述的存储器系统,其中所述掷出逻辑电路进一步包括将所述分配位设置为所述分配信号的状态。
19.根据权利要求16所述的存储器系统,其中所述较低级高速缓冲存储器是数据高速缓冲存储器。
20.根据权利要求17所述的存储器系统,其中所述下一个较高级高速缓冲存储器是严格内含式高速缓冲存储器。
CN2008800033756A 2007-01-31 2008-01-30 用以减少多级高速缓冲存储器层级中的掷出的设备和方法 Expired - Fee Related CN101595462B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210029539.0A CN102693187B (zh) 2007-01-31 2008-01-30 用以减少多级高速缓冲存储器层级中的掷出的设备和方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/669,245 2007-01-31
US11/669,245 US8078803B2 (en) 2008-01-30 2008-01-30 Apparatus and methods to reduce castouts in a multi-level cache hierarchy
PCT/US2008/052507 WO2008095025A1 (en) 2007-01-31 2008-01-30 Apparatus and methods to reduce castouts in a multi-level cache hierarchy

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201210029539.0A Division CN102693187B (zh) 2007-01-31 2008-01-30 用以减少多级高速缓冲存储器层级中的掷出的设备和方法

Publications (2)

Publication Number Publication Date
CN101595462A CN101595462A (zh) 2009-12-02
CN101595462B true CN101595462B (zh) 2012-04-25

Family

ID=39512778

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2008800033756A Expired - Fee Related CN101595462B (zh) 2007-01-31 2008-01-30 用以减少多级高速缓冲存储器层级中的掷出的设备和方法
CN201210029539.0A Expired - Fee Related CN102693187B (zh) 2007-01-31 2008-01-30 用以减少多级高速缓冲存储器层级中的掷出的设备和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201210029539.0A Expired - Fee Related CN102693187B (zh) 2007-01-31 2008-01-30 用以减少多级高速缓冲存储器层级中的掷出的设备和方法

Country Status (10)

Country Link
US (2) US8078803B2 (zh)
EP (2) EP2527987A1 (zh)
JP (4) JP2010518487A (zh)
KR (1) KR101165132B1 (zh)
CN (2) CN101595462B (zh)
BR (1) BRPI0806865A2 (zh)
CA (1) CA2675046C (zh)
MX (1) MX2009008092A (zh)
RU (1) RU2438165C2 (zh)
WO (1) WO2008095025A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2675046C (en) 2007-01-31 2013-07-30 Qualcomm Incorporated Apparatus and methods to reduce castouts in a multi-level cache hierarchy
JP2010113593A (ja) 2008-11-07 2010-05-20 Sony Corp 情報処理装置、情報処理方法及び情報処理プログラム
WO2010052799A1 (ja) * 2008-11-10 2010-05-14 富士通株式会社 情報処理装置及びメモリ制御装置
US20110202727A1 (en) * 2010-02-18 2011-08-18 Qualcomm Incorporated Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache
US9201794B2 (en) 2011-05-20 2015-12-01 International Business Machines Corporation Dynamic hierarchical memory cache awareness within a storage system
US9021206B2 (en) 2011-08-25 2015-04-28 International Business Machines Corporation Use of cache statistics to ration cache hierarchy access
KR101862785B1 (ko) * 2011-10-17 2018-07-06 삼성전자주식회사 타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법
CN105228710B (zh) 2013-01-17 2018-04-27 索尼电脑娱乐公司 信息处理设备和文件管理方法
KR20150132099A (ko) 2013-03-20 2015-11-25 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 서로 다른 계층 레벨의 메모리 노드를 가진 메모리 시스템에서의 데이터 캐싱
US9854052B2 (en) * 2013-09-27 2017-12-26 Sap Se Business object attachments and expiring URLs
JP2015088146A (ja) * 2013-11-01 2015-05-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置
JP2015176245A (ja) 2014-03-13 2015-10-05 株式会社東芝 情報処理装置及びデータ構造
US10216640B2 (en) 2014-03-21 2019-02-26 Samsung Electronics Co., Ltd. Opportunistic cache injection of data into lower latency levels of the cache hierarchy
CN104932989B (zh) * 2014-03-21 2020-05-19 三星电子株式会社 数据到高速缓冲层次低延迟层级中的机会性高速缓冲注入
JP2016057763A (ja) 2014-09-08 2016-04-21 株式会社東芝 キャッシュ装置、及びプロセッサ
US9684602B2 (en) 2015-03-11 2017-06-20 Kabushiki Kaisha Toshiba Memory access control device, cache memory and semiconductor device
KR101697515B1 (ko) * 2015-12-15 2017-01-18 전남대학교산학협력단 캐시 라인의 태그 거리 상관관계를 이용한 캐시 교체 방법 및 임베디드 시스템
EP3572946B1 (en) * 2017-03-08 2022-12-07 Huawei Technologies Co., Ltd. Cache replacement method, device, and system
JP7139719B2 (ja) * 2018-06-26 2022-09-21 富士通株式会社 情報処理装置、演算処理装置及び情報処理装置の制御方法
US11782919B2 (en) * 2021-08-19 2023-10-10 International Business Machines Corporation Using metadata presence information to determine when to access a higher-level metadata table

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5564035A (en) * 1994-03-23 1996-10-08 Intel Corporation Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein
US5787478A (en) * 1997-03-05 1998-07-28 International Business Machines Corporation Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy
US6282615B1 (en) * 1999-11-09 2001-08-28 International Business Machines Corporation Multiprocessor system bus with a data-less castout mechanism
CN1499377A (zh) * 2002-10-29 2004-05-26 �Ҵ���˾ 访问高速缓存管线的方法和系统
CN1779664A (zh) * 2004-11-26 2006-05-31 富士通株式会社 存储器控制设备和存储器控制方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737751A (en) 1996-03-26 1998-04-07 Intellectual Business Machines Corporation Cache memory management system having reduced reloads to a second level cache for enhanced memory performance in a data processing system
US6374330B1 (en) 1997-04-14 2002-04-16 International Business Machines Corporation Cache-coherency protocol with upstream undefined state
US6202129B1 (en) 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
TW451132B (en) * 1998-12-15 2001-08-21 Nippon Electric Co System and method for cache processing
US6564301B1 (en) 1999-07-06 2003-05-13 Arm Limited Management of caches in a data processing apparatus
US7024519B2 (en) * 2002-05-06 2006-04-04 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
US20060155934A1 (en) * 2005-01-11 2006-07-13 Ramakrishnan Rajamony System and method for reducing unnecessary cache operations
US7330941B2 (en) 2005-03-23 2008-02-12 Qualcomm Incorporated Global modified indicator to reduce power consumption on cache miss
DE102005015116A1 (de) 2005-04-01 2006-10-05 Webasto Ag Kraftfahrzeugheizung
CA2675046C (en) 2007-01-31 2013-07-30 Qualcomm Incorporated Apparatus and methods to reduce castouts in a multi-level cache hierarchy
US20110202727A1 (en) 2010-02-18 2011-08-18 Qualcomm Incorporated Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5564035A (en) * 1994-03-23 1996-10-08 Intel Corporation Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein
US5787478A (en) * 1997-03-05 1998-07-28 International Business Machines Corporation Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy
US6282615B1 (en) * 1999-11-09 2001-08-28 International Business Machines Corporation Multiprocessor system bus with a data-less castout mechanism
CN1499377A (zh) * 2002-10-29 2004-05-26 �Ҵ���˾ 访问高速缓存管线的方法和系统
CN1779664A (zh) * 2004-11-26 2006-05-31 富士通株式会社 存储器控制设备和存储器控制方法

Also Published As

Publication number Publication date
RU2438165C2 (ru) 2011-12-27
JP2010518487A (ja) 2010-05-27
BRPI0806865A2 (pt) 2014-04-29
RU2009132554A (ru) 2011-03-10
CN101595462A (zh) 2009-12-02
KR101165132B1 (ko) 2012-07-12
EP2527987A1 (en) 2012-11-28
CN102693187B (zh) 2016-03-30
US20120059995A1 (en) 2012-03-08
US8078803B2 (en) 2011-12-13
KR20090115799A (ko) 2009-11-06
JP6009589B2 (ja) 2016-10-19
WO2008095025A1 (en) 2008-08-07
EP2118754B1 (en) 2013-07-03
CA2675046C (en) 2013-07-30
US8386716B2 (en) 2013-02-26
EP2118754A1 (en) 2009-11-18
JP2017033584A (ja) 2017-02-09
JP6392286B2 (ja) 2018-09-19
JP2015111435A (ja) 2015-06-18
CN102693187A (zh) 2012-09-26
MX2009008092A (es) 2009-08-12
JP2013069322A (ja) 2013-04-18
US20080183967A1 (en) 2008-07-31
CA2675046A1 (en) 2008-08-07

Similar Documents

Publication Publication Date Title
CN101595462B (zh) 用以减少多级高速缓冲存储器层级中的掷出的设备和方法
CN101097547B (zh) 用智能最近最少使用方案在高速缓存中进行功率性能调整
US20140208038A1 (en) Sectored cache replacement algorithm for reducing memory writebacks
EP1849081B1 (en) Methods and apparatus for dynamically managing banked memory
CN103383672B (zh) 高速缓存控制以减少事务回滚
CN103026346A (zh) 包括固态存储器设备的存储系统中的逻辑到物理地址映射
CN101719099B (zh) 减小固态硬盘写入放大的方法及装置
CN102968294B (zh) 用于低复杂性指令预取系统的方法和设备
CN101606134A (zh) 地址转换方法和设备
CN103959258A (zh) 背景重排序——具有有限开销的预防性的磨损控制机制
CN105378685A (zh) 数据存储装置和用于给数据存储装置分配数据的方法
CN107291630B (zh) 一种高速缓冲存储器处理方法及装置
WO2003083661A1 (en) Memory-access management method and system for synchronous dynamic random-access memory or the like
US20070266199A1 (en) Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache
CN103885890A (zh) 高速缓冲存储器cache中cache块的替换处理方法和装置
JP4210698B2 (ja) 置換に利用可能なキャッシュウェイを選択する方法と装置
TW201202929A (en) Apparatus and methods to reduce duplicate line fills in a victim cache
US7865691B2 (en) Virtual address cache and method for sharing data using a unique task identifier
JP5224959B2 (ja) キャッシュシステム
US9665494B2 (en) Parallel lookup in first and second value stores
CN114691541A (zh) 一种基于动态访问的dram-nvm混合内存预测器
CN105373490A (zh) 字长可切换缓存系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120425

Termination date: 20210130

CF01 Termination of patent right due to non-payment of annual fee