CN104679669B - 高速缓存cache存储器系统及访问缓存行cache line的方法 - Google Patents

高速缓存cache存储器系统及访问缓存行cache line的方法 Download PDF

Info

Publication number
CN104679669B
CN104679669B CN201410705991.3A CN201410705991A CN104679669B CN 104679669 B CN104679669 B CN 104679669B CN 201410705991 A CN201410705991 A CN 201410705991A CN 104679669 B CN104679669 B CN 104679669B
Authority
CN
China
Prior art keywords
cache line
caching
cache
data
state
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
CN201410705991.3A
Other languages
English (en)
Other versions
CN104679669A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410705991.3A priority Critical patent/CN104679669B/zh
Publication of CN104679669A publication Critical patent/CN104679669A/zh
Priority to PCT/CN2015/095795 priority patent/WO2016082793A1/zh
Priority to US15/606,428 priority patent/US10114749B2/en
Application granted granted Critical
Publication of CN104679669B publication Critical patent/CN104679669B/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/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/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/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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared 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/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • 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/314In storage network, e.g. network attached cache

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

高速缓存cache存储器系统及访问缓存行cache line的方法
技术领域
本发明涉及计算机技术,尤其涉及一种高速缓存cache存储器系统及在该cache存储器系统中访问缓存行cache line的方法。
背景技术
中央处理器(Central Process Unit,CPU)在运算时需要从主存(main memory)中读取数据,由于主存的读写速度比CPU的操作速度慢得多,使得CPU的处理能力不能充分发挥,为了缓和CPU的操作速度和主存读写速度不匹配的矛盾,通常在CPU和主存之间设置高速缓存(cache)存储器。
cache存储器与主存之间以缓存行(cache line)为单位进行数据交换,缓存行也可以称为缓存块(cache block)。当CPU读取数据或者指令时,将读取到的数据或指令保存到cache line中。当CPU第二次需要读取相同或相近的数据时可以从相应的cache line获得数据。由于CPU访问cache的速度远超过访问主存速度,从而大大提升了系统整体性能。
cache存储器包括标签随机接入存储器(Tag RAM)和数据随机接入存储器(DataRAM),其中,Tag RAM用于存储cache中cache line的索引地址(Index Address),Data RAM用于存放cache中cache line的数据。CPU访问cache工作流程为先访问Tag RAM来判断cache line是否在cache中,如果命中则直接去Data RAM中取数据;如果没命中,则去主存中取数据。
相干集线器接口(CHI,Coherent Hub Interface)是一种总线互连协议,用于连接多个片上系统(System on Chip,SoC),是一种可扩展的网络结构。CHI协议中将cache line状态分为5类,依次为无效(Invalid,I)状态、独占(Unique Clean,UC)状态、修改独占(Unique Dirty,UD)状态、共享(Shared Clean,SC)状态和修改共享(Shared Dirty,SD)状态,其中,I状态用于指示该cache line中不存在数据;UC状态用于指示该cache line只存在于一个缓存cache中且该cache line包括干净数据,干净数据是指该数据从主存中读出来后没有被修改,仍然与主存中的数据保持一致;UD状态用于指示该cache line只存在于一个cache中且该cache line包括脏(dirty)数据,脏数据是指该数据从主存中读出来后被修改,与主存中的数据不一致;SC状态用于指示该cache line存在于多个缓存cache中且该cache line包括干净数据;SD状态用于指示该cache line存在于多个cache中且该cacheline包括脏数据。
进一步,CHI协议中定义了cache line处于上述各种状态时要求方可以对该cacheline所执行的操作,该要求方通常为某一级缓存,以访问第二级缓存L2cache中cache line为例,这些操作具体包括:
1)在L2 cache中的cache line处于I状态时,无法访问该L2 cache中该cacheline的数据;
2)在L2 cache中的cache line处于UC状态时,如果要求方要求访问L2 cache中该cache line的数据,该L2cache可以选择性返回该cache line的数据给要求方,即返回或者不返回该cache line的数据给要求方;
3)在L2 cache中的cache line处于UD状态时,如果要求方要求访问L2 cache中该cache line的数据,该L2 cache必须返回该cache line的数据给要求方;
4)处于SC或SD状态的cache line的数据不能被修改,除非将处于SC或SD状态的cache line转化成其他状态,并且根据数据一致性原则,任意一级缓存中处于SC或SD状态的cache line的数据都是最新的。
在多核通信处理芯片中,一般使用多层级cache结构,即将cache分为多个层级,典型的是将cache分为三个层级,图1为三层cache的结构示意图,其中,第一层级cache(L1cache),第二层级cache(L2 cache)和第三层级cache(L3cache)的访问速度依次递减,容量依次递增,其中,L1 cache包括L1 cache 1、L1 cache 2、L1 cache 3和L1 cache 4,可分别被4个CPU访问,L2 cache包括L2 cache A和L2 cache B,L1 cache相对于L2 cache而言是上一级cache,L2 cache相对于L3 cache而言是上一级cache。
现有技术提供了一种采用独占型(Exclusive)结构设计的多级cache,它的特点是使不同层级的cache之间没有交集,即保证两级cache之间存放不同的cache line的数据,避免出现两级cache都存放相同的cache line的数据,从而实现cache容量的最大化。以L2cache和L3 cache为例,在L2 cache中存有某条cache line的数据,那么在L3 cache中将不再存放该条cache line的数据。在多核通信处理芯片中,假设L2 cache A中存有某条cacheline的数据而L2 cache B需要访问该条cache line的数据,则L2 cache B发出请求到L3cache后,由于在L3 cache line中没有存放该条cache line的数据,因此L3 cache需要向L2 cache A发出访问该条cache line的请求以从L2 cache A中获取该条cache line的数据。
然而,CHI协议中允许L2 cache A在接收到访问请求后不返回数据或者返回部分数据,比如,在L2 cache A中cache line处于UC状态时,L2 cache A接收到访问该条cacheline的请求后,可以不返回该cache line的数据给要求方,因此L2 cache B需要去主存中读取该cache line的数据,而去主存中读取数据延迟很大。因此,基于CHI协议,采用exclusive结构设计cache存储器系统将降低cache系统性能。
现有技术还提供了一种采用包容型(Inclusive)结构设计多级cache,它的特点是下一级cache备份存储上一级cache存放的所有cache line的数据,保证上一级cache存放的cache line的数据在下一级cache中存在备份。同样地,以L2 cache和L3 cache为例,在L2 cache中存放的cache line的数据,在L3 cache中将必然存放。在多核通信处理芯片中,假设L2 cache A存放某条cache line的数据而L2 cache B需要访问该条cache line的数据,则L2 cache B发出访问该条cache line的请求到L3 cache后,如果L3 cache中该条cache line的数据是最新的,则直接在L3 cache中读取该条cache line,而无需去L2cache A中读取该条cache line的数据;如果L3 cache中该条cache line的数据不是最新的,则需要向L2 cache A发出访问该条cache line的请求以从L2 cache A中获取该条cache line的数据。
在CHI协议中,虽然采用inclusive结构设计多级cache可以保证如果L2cache A不返回数据或返回部分数据,L2 cache B可以从L3 cache中得到cache line的数据,然而inclusive结构对容量的浪费很大,在上一级cache存放的所有cache line的数据在下一级cache中也有存放,特别是当CPU核数很多时,对下一级cache的容量要求很高。
发明内容
本发明实施例提供了一种高速缓存cache存储器系统及访问缓存行cacheline的方法,采用混合RAM结构设计的cache存储器系统能够提高cache存储器系统的性能。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明提供了一种cache存储器系统,包括:
多个上一级缓存,每个上一级缓存包括多个缓存行cache line;
本级缓存,该本级缓存包括独占型标签随机接入存储器Exclusive Tag RAM和包容型标签随机接入存储器Inclusive Tag RAM,其中,该Exclusive Tag RAM用于优先存储每个上一级缓存中状态为修改独占UD的第一cache line的索引地址,该Inclusive TagRAM用于存储每个上一级缓存中状态为独占UC、共享SC或修改共享SD的第二cache line的索引地址,该第二cache line的数据被备份存储于该本级缓存中。
结合第一方面,在第一种可能的实现方式中,该多个上一级缓存包括第一缓存和第二缓存,该本级缓存包括数据随机接入存储器Data RAM,第二cache line的数据具体被备份存储于所述Data RAM;
该第一缓存,用于向该本级缓存发送访问第三cache line的请求;
该本级缓存,用于在接收所该第一缓存发出的访问第三cache line的请求后,确定该第三cache line的索引地址位于Exclusive Tag RAM或Inclusive Tag RAM,并且确定该第三cache line的状态,根据该第三cache line的状态确定将从第二缓存中获取的该cache line的数据或者将该本级缓存的Data RAM中备份存储的该第三cache line的数据发送给第一缓存。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,该本级缓存具体用于:
在确定该第三cache line的状态为UD时,该本级缓存将从第二缓存中获取的该第三cache line的数据发送给第一缓存;或者,
在确定该第三cache line的状态为SC或SD时,该本级缓存将该本级缓存的DataRAM中备份存储的该第三cache line的数据发送给第一缓存;或者,
在确定该第三cache line的状态为UC时,该本级缓存向第二缓存发出访问该第三cache line的数据的请求,若接收到第二缓存发送的该第三cache line的数据,则该本级缓存将从第二缓存中获取的该第三cache line的数据发送给第一缓存;若接收到第二缓存发送的不发送该第三cache line的数据的指示,则该本级缓存将该本级缓存的Data RAM中备份存储的该第三cache line的数据发送给第一缓存。
结合第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,该本级缓存还包括状态随机接入存储器Status RAM,该Status RAM用于记录索引地址位于Exclusive Tag RAM或Inclusive Tag RAM中的cache line的状态,该本级缓存具体用于:根据Status RAM确定第三cache line的状态。
结合第一方面以及第一方面的第一或第二或第三种可能的实现方式,在第四种可能的实现方式中,在Exclusive Tag RAM中第一cache line的索引地址所占用的空间大小达到Exclusive Tag RAM的最大容量值时,Inclusive Tag RAM还用于存储每个上一级缓存中无法被存储在Exclusive Tag RAM中的状态为UD的第四cache line的索引地址,第四cache line的数据被备份存储于该本级缓存中。
结合第一方面以及第一方面的第一或第二或第三或第四种可能的实现方式,在第五种可能的实现方式中,UC状态用于指示处于UC状态的cache line只存在于该cache存储器系统中一个cache且处于UC状态的cache line包括干净数据;UD状态用于指示处于UD状态的cache line只存在于该cache存储器系统中一个cache且处于UD状态的cache line包括脏数据;SC状态用于指示处于SC状态的cache line存在于该cache存储器系统中多个cache且处于SC状态的cache line包括干净数据;SD状态用于指示处于SD状态的cacheline存在于该cache存储器系统中多个cache且处于SD状态的cache line包括脏数据。
结合第一方面以及第一方面的第一或第二或第三或第四或第五种可能的实现方式,在第六种可能的实现方式中,该上一级缓存为第N级缓存,该本级缓存为第N+1级缓存,N为自然数。
第二方面,本发明提供了一种在高速缓存cache存储器系统中访问缓存行cacheline的方法,该cache存储器系统包括多个上一级缓存和本级缓存,每个上一级缓存包括多个cache line,该多个上一级缓存包括第一缓存和第二缓存,该本级缓存包括ExclusiveTag RAM和Inclusive Tag RAM,其中,Exclusive Tag RAM用于优先存储每个上一级缓存中状态为修改独占UD的第一cache line的索引地址,Inclusive Tag RAM用于存储每个上一级缓存中状态为独占UC、共享SC或修改共享SD的第二cache line的索引地址,第二cacheline的数据被备份存储于所述本级缓存中,该访问cache line的方法包括:
第一缓存向本级缓存发送访问第三cache line的请求;
本级缓存在接收到访问第三cache line的请求后,确定第三cache line的索引地址位于Exclusive Tag RAM或Inclusive Tag RAM;
本级缓存确定所述第三cache line的状态;
本级缓存根据第三cache line的状态确定将从第二缓存中获取的所述第三cacheline的数据或者将本级缓存中备份存储的第三cache line的数据发送给第一缓存。
结合第二方面,在第一种可能的实现方式中,本级缓存根据第三cache line的状态确定将从第二缓存中获取的第三cache line的数据或者将本级缓存中备份存储的所述第三cache line的数据发送给第一缓存包括:
在确定第三cache line的状态为UD时,本级缓存将从第二缓存中获取的第三cache line的数据发送给第一缓存;或者,
在确定第三cache line的状态为SC或SD时,本级缓存将本级缓存中备份存储的第三cache line的数据发送给第一缓存;或者,
在确定第三cache line的状态为UC时,本级缓存向第二缓存发出访问第三cacheline的数据的请求,若接收到第二缓存发送的第三cache line的数据,则本级缓存将从第二缓存中获取的第三cache line的数据发送给第一缓存;若接收到第二缓存发送的不发送第三cache line的数据的指示,则本级缓存将本级缓存中备份存储的第三cache line的数据发送给第一缓存。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在确定第三cache line的状态为UD时,本级缓存将从第二缓存中获取的第三cacheline的数据发送给第一缓存包括:
本级缓存向第二缓存发送访问第三cache line的数据的请求;第二缓存在接收到访问第三cache line的数据的请求后,将第二缓存中存储的第三cache line的数据发送给本级缓存;本级缓存将接收到的第三cache line的数据发送给第一缓存。
结合第一方面以及第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,本级缓存确定第三cache line的状态包括:
本级缓存根据本级缓存的状态随机接入存储器Status RAM确定第三cache line的状态,该Status RAM用于记录索引地址位于Exclusive Tag RAM或Inclusive Tag RAM中的cache line的状态。
结合第一方面以及第一方面的第一或第二或第三种可能的实现方式,在第四种可能的实现方式中,该访问cache line的方法还包括:
在索引地址位于Exclusive Tag RAM中的第一cache line的状态由UD变为SC、SD或UC时,将第一cache line在多个上一级缓存中的一个缓存中的数据备份存储到本级缓存中,在Inclusive Tag RAM中建立第一cache line在本级缓存中的索引地址,并且将第一cache line在Exclusive Tag RAM中的索引地址删除;
在索引地址位于Inclusive Tag RAM中的第二cache line的状态由SC、SD或UC变为UD时,在Exclusive Tag RAM中建立第二cache line在上一级缓存中的索引地址,并且将第二cache line在本级缓存中备份存储的数据以及第二cache line在Inclusive Tag RAM中的索引地址删除。
结合第一方面以及第一方面的第一或第二或第三或第四种可能的实现方式,在第五种可能的实现方式中,UC状态用于指示处于UC状态的cache line只存在于该cache存储器系统中一个cache且处于UC状态的cache line包括干净数据;UD状态用于指示处于UD状态的cache line只存在于该cache存储器系统中一个cache且处于UD状态的cache line包括脏数据;SC状态用于指示处于SC状态的cache line存在于该cache存储器系统中多个cache且处于SC状态的cache line包括干净数据;SD状态用于指示处于SD状态的cacheline存在于该cache存储器系统中多个cache且处于SD状态的cache line包括脏数据。
结合第一方面以及第一方面的第一或第二或第三或第四或第五种可能的实现方式,在第六种可能的实现方式中,上一级缓存为第N级缓存,本级缓存为第N+1级缓存,N为自然数。
在本发明实施例提供的cache存储器系统和访问cache line的方法中,由于本级缓存采用混合RAM结构,即本级缓存包括Exclusive Tag RAM和Inclusive Tag RAM。由于Exclusive Tag RAM中存储的索引地址对应的cache line的数据存储于上一级缓存中,因此和完全采用Inclusive Tag RAM结构设计的本级缓存相比,采用混合RAM结构设计的cache存储器系统可以降低存储cache line的数据的容量;另外,由于该Inclusive TagRAM中存储的索引地址对应的cache line的数据在本级缓存和上一级缓存中均有存储,因此在要求访问本级缓存中该Inclusive Tag RAM中存储的索引地址对应的cache line的数据时,可以在该本级缓存或该上一级缓存中获取,和完全采用Exclusive Tag RAM结构设计的本级缓存相比,采用混合RAM结构设计的cache存储器系统可以提高获取cache line的数据的命中率,减少到主存中读取cache line的数据所造成的时延,提高了cache存储器系统的性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为多核通信处理芯片中三层cache的结构示意图;
图2为本发明实施例提供的一种cache存储器系统的结构图;
图3为本发明实施例提供的一种在cache存储器系统中访问cache line的方法;
图4为在待访问的cache line的状态为UD时获取该待访问的cache line的一种实现方式;
图5为在待访问的cache line的状态为UD时获取该待访问的cache line的又一种实现方式;
图6为在待访问的cache line的状态为SD或SD时获取该待访问的cache line的一种实现方式;
图7为在待访问的cache line的状态为UC时获取该待访问的cache line的一种实现方式;
图8为在待访问的cache line的状态为UC时获取该待访问的cache line的又一种实现方式。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中描述的cache存储器系统以包含两个等级的缓存为例,具体为多个上一级缓存和本级缓存,并不限制该cache存储器系统只包含两个等级的缓存,本发明提供的cache存储器系统还可以包括其他等级的缓存,以形成包含多个等级的cache存储器系统,比如三层或四层结构的cache存储器系统。
本发明描述的cache line的状态中,UC状态用于指示处于UC状态的cache line只存在于该cache存储器系统中一个cache且处于UC状态的cache line包括干净数据;UD状态用于指示处于UD状态的cache line只存在于该cache存储器系统中一个cache且处于UD状态的cache line包括脏数据;SC状态用于指示处于SC状态的cache line存在于该cache存储器系统中多个cache且处于SC状态的cache line包括干净数据;SD状态用于指示处于SD状态的cache line存在于该cache存储器系统中多个cache且处于SD状态的cache line包括脏数据。
为描述方便,本发明对不同的cache line的名称做了区分,包括第一cache line、第二cache line、第三cache line和第四cache line,关于第一cache line、第二cacheline、第三cache line和第四cache lined的含义具体见如下实施例中的描述。
图2描述了本发明实施例提供的一种高速缓存cache存储器系统,该cache存储器系统包括:
多个上一级缓存和本级缓存,每个上一级缓包括多个cache line;
该本级缓存包括独占型标签随机接入存储器(Exclusive Tag RAM)和包容型标签随机接入存储器(Inclusive Tag RAM),其中,该Exclusive Tag RAM用于优先存储每个上一级缓存中状态为UD的第一cache line的索引地址,该Inclusive Tag RAM用于存储每个上一级缓存中状态为UC、SC或SD的第二cache line的索引地址,第二cache line的数据还被备份存储于所述本级缓存中。
该本级缓存包括Exclusive Tag RAM,表明该本级缓存采用了背景技术部分中提到的Exclusive结构设计,因此,索引地址位于该Exclusive Tag RAM中的第一cache line的数据被存储于多个上一级缓存中的一个,该本级缓存中不会再备份存储第一cache line的数据;该本级缓存还包括Inclusive Tag RAM,表明该本级缓存也采用了背景技术部分中提到的Inclusive结构设计,因此,索引地址位于该Inclusive Tag RAM中的第二cacheline的数据除了被存储在上一级缓存之外,还被备份存储于该本级缓存中。
由于CHI协议中定义了在上一级缓存中的cache line处于UD状态时,若本级缓存向上一级缓存请求该cache line的数据,则上一级缓存必须返回该cache line的数据,因此,在本发明的cache存储器系统中,本级缓存的Exclusive Tag RAM用于优先存储上一级缓存中状态为UD的第一cache line的索引地址,以使得在本级缓存向上一级缓存请求处于UD状态的第一cache line的数据时,直接根据该Exclusive Tag RAM中存储的该第一cacheline的索引地址就可以获得上一级缓存中存储的该第一cache line的数据。
相应的,由于CHI协议中定义了在上一级缓存中的cache line处于UC状态时,若本级缓存向上一级缓存请求该cache line的数据,上一级缓存可以返回或者不返回该cacheline的数据,因此,在本发明的cache存储器系统中,将上一级缓存中处于UC状态的第二cache line的索引地址存储在本级缓存的Inclusive Tag RAM中,以保证在本级缓存中存储有处于UC状态的cache line的数据。
相应的,由于CHI协议中定义了处于SC或SD状态的cache line的数据不能被修改,除非将处于SC或SD状态的cache line转化成其他状态,并且根据数据一致性原则,任意一级缓存中处于SC或SD状态的cache line的数据都是最新的,因此,在本发明的cache存储器系统中,将上一级缓存中处于SC或SD状态的第二cache line的索引地址存储在本级缓存的Inclusive Tag RAM中,可以直接从本级缓存中获取处于SC或SD状态的cache line的数据,而无需去上一级缓存中获取。
需要说明的是,该cache存储器系统中该本级缓存的Exclusive Tag RAM优先存储每个上一级缓存中状态为UD的cache line的索引地址,即多个上一级缓存中处于UD状态的cache line的索引地址首先被存储在该Exclusive Tag RAM中,索引地址位于该ExclusiveTag RAM中的cache line即为第一cache line,且第一cache line的状态为UD,如果该Exclusive Tag RAM存储状态为UD的第一cache line的索引地址所占用的空间大小达到了该Exclusive Tag RAM的最大容量值,即该Exclusive Tag RAM无法再存储状态为UD的cache line的索引地址,则可以将这些无法被存储在该Exclusive Tag RAM中的状态为UD的第四cache line的索引地址存储在Inclusive Tag RAM,因此,该Inclusive Tag RAM除了可以存储上一级缓存中状态为UC、SC或SD的第二cache line的索引地址,还可以存储状态为UD的第四cache line的索引地址,且第四cache line的数据被备份存储于该本级缓存中。
进一步,该多个上一级缓存包括第一缓存和第二缓存,该本级缓存还包括数据随机接入存储器Data RAM,第二cache line的数据具体被备份存储于该Data RAM,
该第一缓存,用于向该本级缓存发送访问第三cache line的请求,第三cacheline即为待访问的cache line;
该本级缓存,用于在接收该第一缓存发出的访问第三cache line的请求,确定该第三cache line的索引地址位于Exclusive Tag RAM或Inclusive Tag RAM,并且确定该第三cache line的状态,根据确定的该第三cache line的状态确定将从第二缓存中获取的该第三cache line的数据或者将该本级缓存的Data RAM中备份存储的该第三cache line的数据发送给第一缓存。
进一步,该本级缓存还包括状态随机接入存储器Status RAM,该Status RAM用于记录索引地址位于该Exclusive Tag RAM或该Inclusive Tag RAM中的cache line的状态,这表明该Status RAM中记录的状态包括UD、UC、SC或SD,
该本级缓存具体用于:
根据该Status RAM确定该第三cache line的状态,即通过查询该Status RAM中记录的cache line的状态确定该第三cache line的状态。
进一步,该本级缓存具体用于:
在确定第三cache line的状态为UD时,该本级缓存将从第二缓存中获取的第三cache line的数据发送给第一缓存;或者,
在确定第三cache line的状态为SC或SD时,该本级缓存将该本级缓存的Data RAM中备份存储的第三cache line的数据发送给第一缓存;或者,
在确定第三cache line的状态为UC时,该本级缓存向第二缓存发出访问第三cache line的数据的请求,若接收到第二缓存发送的第三cache line的数据,则该本级缓存将从第二缓存中获取的第三cache line的数据发送给第一缓存;若接收到第二缓存发送的不发送第三cache line的数据的指示,则该本级缓存将该本级缓存的Data RAM中备份存储的第三cache line的数据发送给第一缓存。
需要说明的是,每个上一级缓存中也包含有Data RAM部分,可以将每个上一级缓存也看做本级缓存,本发明对每个上一级缓存中Data RAM存储的cache line的数据不做进一步说明。
本实施例提供的cache存储器系统中,由于本级缓存采用混合RAM结构,即本级缓存包括Exclusive Tag RAM和Inclusive Tag RAM。由于Exclusive Tag RAM中存储的索引地址对应的cache line的数据存储于上一级缓存中,因此和完全采用Inclusive Tag RAM结构设计的本级缓存相比,采用混合RAM结构设计的cache存储器系统可以降低存储cacheline的数据的容量;另外,由于该Inclusive Tag RAM中存储的索引地址对应的cache line的数据在本级缓存和上一级缓存中均有存储,因此在要求访问本级缓存中该InclusiveTag RAM中存储的索引地址对应的cache line的数据时,可以在该本级缓存或该上一级缓存中获取,和完全采用Exclusive Tag RAM结构设计的本级缓存相比,采用混合RAM结构设计的cache存储器系统可以提高获取cache line的数据的命中率,减少到主存中读取cacheline的数据所造成的时延,提高了cache存储器系统的性能。
图3描述了本发明另一个实施例提供的一种在cache存储器系统中访问cacheline的方法,该访问cache line的方法应用于本发明提供的cache存储器系统,其中,该cache存储器系统包括多个上一级缓存和本级缓存,每个上一级缓存包括多个cache line,该多个上一级缓存包括第一缓存和第二缓存,该本级缓存包括Exclusive Tag RAM和Inclusive Tag RAM,该Exclusive Tag RAM用于优先存储每个上一级缓存中状态为UD的第一cache line的索引地址,该Inclusive Tag RAM用于存储每个上一级缓存中状态为UC、SC或SD的第二cache line的索引地址,第二cache line的数据被备份存储于该本级缓存中,关于该cache存储器系统的进一步描述可参见图2所对应的实施例描述的cache存储器系统,此处不予赘述。
具体的,该访问cache line的方法包括:
S301、第一缓存向本级缓存发出访问第三cache line的请求;
S302、该本级缓存在接收到访问该第三cache line的请求后,确定该第三cacheline的索引地址位于该Exclusive Tag RAM或该Inclusive Tag RAM;
具体的,该本级缓存将该第三cache line的索引地址与该Exclusive Tag RAM或该Inclusive Tag RAM中记录的cache line的索引地址进行比较,以确定该第三cacheline的索引地址位于该Exclusive Tag RAM或该Inclusive Tag RAM。
S303、该本级缓存确定该第三cache line的状态;
由于该cache存储器系统的本级缓存中还存储有状态随机接入存储器StatusRAM,该Status RAM记录了索引地址位于该Exclusive Tag RAM或该Inclusive Tag RAM中的cache line的状态,因此该本级缓存具体根据该Status RAM中记录的cache line的状态就可以确定该第三cache line的状态。
需要说明的是,S303中确定该第三cache line的状态的过程和S302中确定该第三cache line位于哪个Tag RAM的过程没有先后顺序,这两个过程可以并列进行。
S304、该本级缓存根据该第三cache line的状态确定将从第二缓存中获取的该第三cache line的数据或者将该本级缓存中备份存储的该第三cache line的数据发送给第一缓存。
如下A、B和C三种情况详细地描述了在该第三cache line处于各种状态时,该本级缓存具体的执行过程:
A、在确定该第三cache line的状态为UD时,该本级缓存将从第二缓存中获取的该第三cache line的数据发送给第一缓存。
具体地,该本级缓存向第二缓存发送访问该第三cache line的数据的请求,第二缓存在接收到访问该第三cache line的数据的请求后,将第二缓存中存储的该第三cacheline的数据发送给该本级缓存,该本级缓存将接收到的该第三cache line的数据发送给第一缓存。
需要说明的是,由图2对应的cache存储器系统中实施例的描述可知,在该Exclusive Tag RAM存储状态为UD的第一cache line的索引地址所占用空间的大小达到了该Exclusive Tag RAM的最大容量值,即该Exclusive Tag RAM无法再存储状态为UD的cache line的索引地址时,该Inclusive Tag RAM也可以存储状态为UD的第四cache line的索引地址,因此,在确定该第三cache line的状态为UD时,该第三cache line的索引地址可能位于该Exclusive Tag RAM,也可能位于该Inclusive Tag RAM,此时,不管该第三cache line的索引地址位于该Exclusive Tag RAM或位于该Inclusive Tag RAM,该本级缓存都将从第二缓存中获取的该第三cache line的数据发送给第一缓存。
图4描述了在该第三cache line的状态为UD且该第三cache line的索引地址位于该Exclusive Tag RAM时第一缓存获取该第三cache line的具体过程,步骤(1)为第一缓存向该本级缓存发出访问该第三cache line的请求,该本级缓存确定该第三cache line的索引地址位于该Exclusive Tag RAM且该第三cache line的状态为UD;步骤(2)为该本级缓存向第二缓存发送访问该第三cache line的数据的请求;步骤(3)为该第二缓存在接收到访问该第三cache line的数据的请求后将第二缓存中存储的该第三cache line的数据发送给该本级缓存;步骤(4)为该本级缓存将接收的该第三cache line的数据发送给第一缓存。
图5描述了在该第三cache line的状态为UD且该第三cache line的索引地址位于该Inclusive Tag RAM时第一缓存获取该第三cache line的具体过程,步骤(1)为第一缓存向该本级缓存发出访问该第三cache line的请求,该本级缓存确定该第三cache line的索引地址位于该Inclusive Tag RAM且该第三cache line的状态为UD;步骤(2)为该本级缓存向第二缓存发送访问该第三cache line的数据的请求;步骤(3)为该第二缓存在接收到访问该第三cache line的数据的请求后将第二缓存中存储的该第三cache line的数据发送给该本级缓存;步骤(4)为该本级缓存将接收的该第三cache line的数据发送给第一缓存;
B、在确定该第三cache line的状态为SC或SD时,该本级缓存将该本级缓存中备份存储的该第三cache line的数据发送给第一缓存。
具体地,处于SC或SD状态的第二cache line的数据为共享态数据,基于该cache存储器系统中数据一致性的原则,处于SC或SD状态的第二cache line的数据在上一级缓存和本级缓存中是一致的。
因此,在该第三cache line的状态为SC或SD时,直接将该本级缓存中存储的该第三cache line的数据发送给第一缓存,而无需到上一级缓存中获取该第三cache line的数据,此种情况下,第一缓存获取该第三cache line的数据的具体过程可以参见图6所示,图6描述了在该第三cache line的状态为SC或SD时第一缓存获取该第三cache line的具体过程,显然地,处于SC或SD状态的第三cache line的索引地址位于该Inclusive Tag RAM中,步骤(1)为第一缓存向该本级缓存发出访问该第三cache line的请求,该本级缓存确定该第三cache line的索引地址位于该Inclusive Tag RAM且该第三cache line的状态为SC或SD;步骤(2)为该本级缓存通过该Inclusive Tag RAM中记录的该第三cache line的索引地址从该本级缓存的数据随机接入存储器Data RAM中获取该第三cache line的数据;步骤(3)为该本级缓存将获取的该第三cache line的数据发送给第一缓存;
C、在确定该第三cache line的状态为UC时,该本级缓存向第二缓存发出访问该第三cache line的数据的请求,若接收到第二缓存发送的该第三cache line的数据,则该本级缓存将从第二缓存中获取的该第三cache line的数据发送给第一缓存;若接收到第二缓存发送的不发送该第三cache line的数据的指示,则该本级缓存将该本级缓存中备份存储的该第三cache line的数据发送给第一缓存。
具体地,处于UC状态的第二cache line的数据为独占态数据,如果上一级缓存中处于UC状态的第二cache line的数据被修改过,则上一级缓存不会通知该本级缓存将该本级缓存中备份存储的第二cache line的数据作相应修改,此种情况只能从上一级缓存中获取该第二cache line的数据;如果上一级缓存中处于UC状态的第二cache line的数据没有被修改过,则上一级缓存和本级缓存中存储的第二cache line的数据保持一致,此种情况可以从本级缓存中获取第二cache line的数据而无需到上一级缓存中获取第二cacheline的数据。
因此,在该第三cache line的状态为UC时,该本级缓存不能直接将该本级缓存中备份存储的该第三cache line的数据发送给第一缓存,需要向上一级缓存中的第二缓存发出访问该第三cache line的数据的请求,根据接收到的第二缓存的响应作相应的处理,具体如下:
若该本级缓存接收到第二缓存发送的该第三cache line的数据,即表明第二缓存中该第三cache line的数据已经被修改,则该本级缓存将第二缓存发送的该第三cacheline的数据发送给第一缓存,此种情况下,第一缓存获取该第三cacheline的数据的具体过程可以参见图7所示,图7描述了在该第三cache line的状态为UC时第一缓存获取该第三cache line的一种实现过程,步骤(1)为第一缓存向该本级缓存发出访问该第三cacheline的请求,该本级缓存确定该第三cache line的索引地址位于Inclusive Tag RAM且该第三cache line的状态为UC;步骤(2)为该本级缓存向第二缓存发送访问该第三cacheline的数据的请求;步骤(3)为该第二缓存在接收到访问该第三cache line的数据的请求后,确定处于UC状态的该第三cache line的数据有被修改过,则向该本级缓存发送该第三cache line的数据;步骤(4)为该本级缓将接收到的该第三cache line的数据发送给第一缓存;或者,
若接收到第二缓存发送的不返回该第三cache line的数据的指示,即表明第二缓存中该第三cache line的数据没有被修改过,则该本级缓存将该本级缓存中存储的该第三cache line的数据发送给第一缓存,此种情况下,第一缓存获取该第三cache line的数据的具体过程可以参见图8所示,图8描述了在该第三cache line的状态为UC时第一缓存获取该第三cache line的另一种实现过程,步骤(1)为第一缓存向该本级缓存发出访问该第三cache line的请求,该本级缓存确定该第三cache line的索引地址位于Inclusive TagRAM且该cache line的状态为UC;步骤(2)为该本级缓存向第二缓存发送访问该第三cacheline的数据的请求;步骤(3)为该第二缓存在接收到访问该第三cache line的数据的请求后,确定处于UC状态的该第三cache line的数据没有被修改过,则向该本级缓存发送不返回该第三cache line的数据的指示;步骤(4)为该本级缓存在接收到不返回该第三cacheline的数据的指示后,将该本级缓存的Data RAM中备份存储的该第三cache line的数据发送给第一缓存。
进一步,由于该cache存储器系统中cache line的状态可以发生变化,当cacheline的状态发生变化时,则对应的也需要将cache line的索引地址在Exclusive Tag RAM和inclusive tag ram中进行转移,因此,该访问cache line的方法还可以包括:
在索引地址位于该Exclusive Tag RAM中的第一cache line的状态由UD变为SC、SD或UC时,将该第一cache line在该多个上一级缓存中的一个缓存中的数据备份存储到该本级缓存中,在该Inclusive Tag RAM中建立第一cache line在该本级缓存中的数据的索引地址,并且将第一cache line在该Exclusive Tag RAM中的索引地址删除;
在索引地址位于该Inclusive Tag RAM中的第二cache line的状态由SC、SD或UC变为UD时,在该Exclusive Tag RAM中建立第二cache line在上一级缓存中的索引地址,并且将该第二cache line在所述本级缓存中备份存储的数据以及该第二cache line在该Inclusive Tag RAM中的索引地址删除。
需要说明的是,上面两种转移方式针对的是在该Exclusive Tag RAM中存储状态为UD的第一cache line的索引地址所占用的空间大小没有达到该Exclusive Tag RAM的最大容量值时的情形,此种情况下,处于UD状态的cache line的索引地址只存储在该Exclusive Tag RAM中,该Inclusive Tag RAM中没有存储状态为UD的cache line的索引地址。
在出现该Exclusive Tag RAM中存储状态为UD的第一cache line的索引地址并且该Inclusive Tag RAM中存储有状态为UD的第四cache line的情形时,如果索引地址位于该Inclusive Tag RAM中的第二cache line的状态由SC、SD或UC变为UD时,则只需要在该本级缓存的状态随机存储器中将该第二cache line的状态由SC、SD或UC改为UD即可,而无需对该第二cache line的索引地址进行修改;如果索引地址位于该Inclusive Tag RAM中的第四cache line的状态由UD变为SC、SD或UC时,则只需要在该本级缓存的状态随机存储器中将该第四cache line的状态由UD改为SC、SD或UC即可,而无需对该第四cache line的索引地址进行修改。
需要说明的是,本实施例为描述方便只提供了在上一级缓存和本级缓存之间访问缓存行cache line的方法,实际中,该cache存储器系统中任意两个相邻等级的缓存之间都可以应用本发明提供的访问cache line的方法,本发明对此不做限制。
由于本级缓存采用混合RAM结构,即本级缓存包括Exclusive Tag RAM和Inclusive Tag RAM。由于Exclusive Tag RAM中存储的索引地址对应的cache line的数据存储于上一级缓存中,因此和完全采用Inclusive Tag RAM结构设计的本级缓存相比,采用混合RAM结构设计的cache存储器系统可以降低存储cache line的数据的容量;另外,由于该Inclusive Tag RAM中存储的索引地址对应的cache line的数据在本级缓存和上一级缓存中均有存储,因此在要求访问本级缓存中该Inclusive Tag RAM中存储的索引地址对应的cache line的数据时,可以在该本级缓存或该上一级缓存中获取,和完全采用ExclusiveTag RAM结构设计的本级缓存相比,采用混合RAM结构设计的cache存储器系统可以提高获取cache line的数据的命中率,减少到主存中读取cache line的数据所造成的时延,提高了cache存储器系统的性能。
需要说明的是,在本发明中,该上一级缓存为第N级缓存,该本级缓存为第N+1级缓存,N为自然数,本发明不限定上一级缓存和本级缓存具体为哪一层,只要上一级缓存和本级缓存为相邻等级的缓存即可。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (14)

1.一种高速缓存cache存储器系统,其特征在于,包括:
多个上一级缓存,每个上一级缓存包括多个缓存行cache line;
本级缓存,所述本级缓存包括独占型标签随机接入存储器Exclusive Tag RAM和包容型标签随机接入存储器Inclusive Tag RAM,其中,所述Exclusive Tag RAM用于优先存储每个上一级缓存中状态为修改独占UD的第一cache line的索引地址,所述Inclusive TagRAM用于存储每个上一级缓存中状态为独占UC、共享SC或修改共享SD的第二cache line的索引地址,所述第二cache line的数据被备份存储于所述本级缓存中。
2.如权利要求1所述的cache存储器系统,其特征在于,所述多个上一级缓存包括第一缓存和第二缓存,所述本级缓存包括数据随机接入存储器Data RAM,所述第二cache line的数据具体被备份存储于所述Data RAM;
所述第一缓存,用于向所述本级缓存发送访问第三cache line的请求;
所述本级缓存,用于在接收所述第一缓存发出的访问第三cache line的请求后,确定所述第三cache line的索引地址位于所述Exclusive Tag RAM或所述Inclusive Tag RAM,并且确定所述第三cache line的状态,根据所述第三cache line的状态确定将从第二缓存中获取的所述cache line的数据或者将所述本级缓存的Data RAM中备份存储的所述第三cache line的数据发送给第一缓存。
3.如权利要求2所述的cache存储器系统,其特征在于,所述本级缓存具体用于:
在确定所述第三cache line的状态为UD时,所述本级缓存将从第二缓存中获取的所述第三cache line的数据发送给第一缓存;或者,
在确定所述第三cache line的状态为SC或SD时,所述本级缓存将所述本级缓存的DataRAM中备份存储的所述第三cache line的数据发送给第一缓存;或者,
在确定所述第三cache line的状态为UC时,所述本级缓存向第二缓存发出访问所述第三cache line的数据的请求,若接收到第二缓存发送的所述第三cache line的数据,则所述本级缓存将从第二缓存中获取的所述第三cache line的数据发送给第一缓存;若接收到第二缓存发送的不发送所述第三cache line的数据的指示,则所述本级缓存将所述本级缓存的Data RAM中备份存储的所述第三cache line的数据发送给第一缓存。
4.如权利要求2或3所述的cache存储器系统,其特征在于,所述本级缓存还包括状态随机接入存储器Status RAM,所述Status RAM用于记录索引地址位于所述Exclusive TagRAM或所述Inclusive Tag RAM中的cache line的状态,
所述本级缓存具体用于:
根据所述Status RAM确定所述第三cache line的状态。
5.如权利要求1-3任一所述的cache存储器系统,其特征在于,在所述Exclusive TagRAM中第一cache line的索引地址所占用的空间大小达到所述Exclusive Tag RAM的最大容量值时,所述Inclusive Tag RAM还用于存储每个上一级缓存中无法被存储在所述Exclusive Tag RAM中的状态为UD的第四cache line的索引地址,所述第四cache line的数据被备份存储于所述本级缓存中。
6.如权利要求1-3任一所述的cache存储器系统,其特征在于,
所述UC状态用于指示处于UC状态的cache line只存在于所述cache存储器系统中一个cache且处于UC状态的cache line包括干净数据;
所述UD状态用于指示处于UD状态的cache line只存在于所述cache存储器系统中一个cache且处于UD状态的cache line包括脏数据;
所述SC状态用于指示处于SC状态的cache line存在于所述cache存储器系统中多个cache且处于SC状态的cache line包括干净数据;
所述SD状态用于指示处于SD状态的cache line存在于所述cache存储器系统中多个cache且处于SD状态的cache line包括脏数据。
7.如权利要求1-3任一所述的cache存储器系统,其特征在于,
所述上一级缓存为第N级缓存,所述本级缓存为第N+1级缓存,N为自然数。
8.一种在高速缓存cache存储器系统中访问缓存行cache line的方法,其特征在于,所述cache存储器系统包括多个上一级缓存和本级缓存,每个上一级缓存包括多个cacheline,所述多个上一级缓存包括第一缓存和第二缓存,所述本级缓存包括独占型标签随机接入存储器Exclusive Tag RAM和包容型标签随机接入存储器Inclusive Tag RAM,其中,所述Exclusive Tag RAM用于优先存储每个上一级缓存中状态为修改独占UD的第一cacheline的索引地址,所述Inclusive Tag RAM用于存储每个上一级缓存中状态为独占UC、共享SC或修改共享SD的第二cache line的索引地址,所述第二cache line的数据被备份存储于所述本级缓存中,
所述方法包括:
所述第一缓存向所述本级缓存发送访问第三cache line的请求;
所述本级缓存在接收到访问所述第三cache line的请求后,确定所述第三cache line的索引地址位于所述Exclusive Tag RAM或所述Inclusive Tag RAM;
所述本级缓存确定所述第三cache line的状态;
所述本级缓存根据所述第三cache line的状态确定将从第二缓存中获取的所述第三cache line的数据或者将所述本级缓存中备份存储的所述第三cache line的数据发送给第一缓存。
9.如权利要求8所述的方法,其特征在于,所述本级缓存根据所述第三cache line的状态确定将从第二缓存中获取的所述第三cache line的数据或者将所述本级缓存中备份存储的所述第三cache line的数据发送给第一缓存包括:
在确定所述第三cache line的状态为UD时,所述本级缓存将从第二缓存中获取的所述第三cache line的数据发送给第一缓存;或者,
在确定所述第三cache line的状态为SC或SD时,所述本级缓存将所述本级缓存中备份存储的所述第三cache line的数据发送给第一缓存;或者,
在确定所述第三cache line的状态为UC时,所述本级缓存向第二缓存发出访问所述第三cache line的数据的请求,若接收到第二缓存发送的所述第三cache line的数据,则所述本级缓存将从第二缓存中获取的所述第三cache line的数据发送给第一缓存;若接收到第二缓存发送的不发送所述第三cache line的数据的指示,则所述本级缓存将所述本级缓存中备份存储的所述第三cache line的数据发送给第一缓存。
10.如权利要求9所述的方法,其特征在于,在确定所述第三cache line的状态为UD时,所述本级缓存将从第二缓存中获取的所述第三cache line的数据发送给第一缓存包括:
所述本级缓存向第二缓存发送访问所述第三cache line的数据的请求;
第二缓存在接收到访问所述第三cache line的数据的请求后,将第二缓存中存储的所述第三cache line的数据发送给所述本级缓存;
所述本级缓存将接收到的所述第三cache line的数据发送给第一缓存。
11.如权利要求8-10任一所述的方法,其特征在于,所述本级缓存确定所述第三cacheline的状态包括:
所述本级缓存根据所述本级缓存的状态随机接入存储器Status RAM确定所述第三cache line的状态,所述Status RAM用于记录索引地址位于所述Exclusive Tag RAM或所述Inclusive Tag RAM中的cache line的状态。
12.如权利要求8-10任一所述的方法,其特征在于,所述方法还包括:
在索引地址位于所述Exclusive Tag RAM中的第一cache line的状态由UD变为SC、SD或UC时,将所述第一cache line在所述多个上一级缓存中的一个缓存中的数据备份存储到所述本级缓存中,在所述Inclusive Tag RAM中建立第一cache line在所述本级缓存中的索引地址,并且将第一cache line在所述Exclusive Tag RAM中的索引地址删除;
在索引地址位于所述Inclusive Tag RAM中的第二cache line的状态由SC、SD或UC变为UD时,在所述Exclusive Tag RAM中建立第二cache line在上一级缓存中的索引地址,并且将所述第二cache line在所述本级缓存中备份存储的数据以及所述第二cache line在所述Inclusive Tag RAM中的索引地址删除。
13.如权利要求8-10任一所述的方法,其特征在于,
所述UC状态用于指示处于UC状态的cache line只存在于所述cache存储器系统中一个cache且处于UC状态的cache line包括干净数据;
所述UD状态用于指示处于UD状态的cache line只存在于所述cache存储器系统中一个cache且处于UD状态的cache line包括脏数据;
所述SC状态用于指示处于SC状态的cache line存在于所述cache存储器系统中多个cache且处于SC状态的cache line包括干净数据;
所述SD状态用于指示处于SD状态的cache line存在于所述cache存储器系统中多个cache且处于SD状态的cache line包括脏数据。
14.如权利要求8-10任一所述的方法,其特征在于,
所述上一级缓存为第N级缓存,所述本级缓存为第N+1级缓存,N为自然数。
CN201410705991.3A 2014-11-27 2014-11-27 高速缓存cache存储器系统及访问缓存行cache line的方法 Active CN104679669B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410705991.3A CN104679669B (zh) 2014-11-27 2014-11-27 高速缓存cache存储器系统及访问缓存行cache line的方法
PCT/CN2015/095795 WO2016082793A1 (zh) 2014-11-27 2015-11-27 高速缓存cache存储器系统及访问缓存行cache line的方法
US15/606,428 US10114749B2 (en) 2014-11-27 2017-05-26 Cache memory system and method for accessing cache line

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410705991.3A CN104679669B (zh) 2014-11-27 2014-11-27 高速缓存cache存储器系统及访问缓存行cache line的方法

Publications (2)

Publication Number Publication Date
CN104679669A CN104679669A (zh) 2015-06-03
CN104679669B true CN104679669B (zh) 2018-04-27

Family

ID=53314746

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410705991.3A Active CN104679669B (zh) 2014-11-27 2014-11-27 高速缓存cache存储器系统及访问缓存行cache line的方法

Country Status (3)

Country Link
US (1) US10114749B2 (zh)
CN (1) CN104679669B (zh)
WO (1) WO2016082793A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679669B (zh) * 2014-11-27 2018-04-27 华为技术有限公司 高速缓存cache存储器系统及访问缓存行cache line的方法
US9747041B2 (en) * 2015-12-23 2017-08-29 Intel Corporation Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device
CN107315694B (zh) * 2016-04-22 2020-12-15 华为技术有限公司 一种缓存一致性管理方法及节点控制器
CN106776373B (zh) * 2017-01-12 2020-10-16 合肥速显微电子科技有限公司 一种面向移动设备的基于闪存的高速缓存系统及方法
CN108804020B (zh) * 2017-05-05 2020-10-09 华为技术有限公司 一种存储处理方法及装置
US10585800B2 (en) 2017-06-16 2020-03-10 International Business Machines Corporation Reducing cache transfer overhead in a system
US10831664B2 (en) 2017-06-16 2020-11-10 International Business Machines Corporation Cache structure using a logical directory
US10698836B2 (en) 2017-06-16 2020-06-30 International Business Machines Corporation Translation support for a virtual cache
US10606762B2 (en) 2017-06-16 2020-03-31 International Business Machines Corporation Sharing virtual and real translations in a virtual cache
CN107273310A (zh) * 2017-06-30 2017-10-20 浙江大华技术股份有限公司 一种多媒体数据的读取方法、装置、介质及设备
CN109597776B (zh) * 2017-09-30 2020-12-08 华为技术有限公司 一种数据操作方法、内存控制器以及多处理器系统
KR102287758B1 (ko) * 2018-03-05 2021-08-09 삼성전자주식회사 부채널 공격으로부터 캐시를 보호하는 시스템
US10901902B2 (en) 2019-03-21 2021-01-26 International Business Machines Corporation Efficient inclusive cache management
CN113934364A (zh) * 2020-07-13 2022-01-14 华为技术有限公司 数据访问的方法和处理器系统
US11379367B2 (en) * 2020-11-19 2022-07-05 Micron Technology, Inc. Enhancement for activation and deactivation of memory address regions
CN112508617B (zh) * 2020-12-14 2023-07-07 中国联合网络通信集团有限公司 用户互动的处理方法、装置及系统
CN114036084B (zh) * 2021-11-17 2022-12-06 海光信息技术股份有限公司 一种数据访问方法、共享缓存、芯片系统和电子设备
CN116775509B (zh) * 2023-05-31 2024-03-22 合芯科技有限公司 一种缓存一致性验证方法、装置、设备以及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149706A (zh) * 2006-09-19 2008-03-26 国际商业机器公司 支持掷出的一致性管理的处理器、数据处理系统和方法
US7552288B2 (en) * 2006-08-14 2009-06-23 Intel Corporation Selectively inclusive cache architecture
CN101576927A (zh) * 2009-06-18 2009-11-11 浙江大学 移动终端基于索引的信息检索方法
US7861055B2 (en) * 2005-06-07 2010-12-28 Broadcom Corporation Method and system for on-chip configurable data ram for fast memory and pseudo associative caches
CN102591800A (zh) * 2011-12-31 2012-07-18 龙芯中科技术有限公司 一种弱一致性存储模型的数据访存系统和方法
CN102789483A (zh) * 2012-06-30 2012-11-21 华为技术有限公司 数据验证方法、装置和系统
CN103885890A (zh) * 2012-12-21 2014-06-25 华为技术有限公司 高速缓冲存储器cache中cache块的替换处理方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519682B2 (en) * 1998-12-04 2003-02-11 Stmicroelectronics, Inc. Pipelined non-blocking level two cache system with inherent transaction collision-avoidance
US7277992B2 (en) * 2005-03-22 2007-10-02 Intel Corporation Cache eviction technique for reducing cache eviction traffic
US7711902B2 (en) * 2006-04-07 2010-05-04 Broadcom Corporation Area effective cache with pseudo associative memory
US9058272B1 (en) * 2008-04-25 2015-06-16 Marvell International Ltd. Method and apparatus having a snoop filter decoupled from an associated cache and a buffer for replacement line addresses
US9477600B2 (en) * 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US20130318308A1 (en) * 2012-05-24 2013-11-28 Sonics, Inc. Scalable cache coherence for a network on a chip
CN104679669B (zh) * 2014-11-27 2018-04-27 华为技术有限公司 高速缓存cache存储器系统及访问缓存行cache line的方法
GB2557254B (en) * 2016-12-02 2020-02-12 Advanced Risc Mach Ltd Filtering coherency protocol transactions

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7861055B2 (en) * 2005-06-07 2010-12-28 Broadcom Corporation Method and system for on-chip configurable data ram for fast memory and pseudo associative caches
US7552288B2 (en) * 2006-08-14 2009-06-23 Intel Corporation Selectively inclusive cache architecture
CN101149706A (zh) * 2006-09-19 2008-03-26 国际商业机器公司 支持掷出的一致性管理的处理器、数据处理系统和方法
CN101576927A (zh) * 2009-06-18 2009-11-11 浙江大学 移动终端基于索引的信息检索方法
CN102591800A (zh) * 2011-12-31 2012-07-18 龙芯中科技术有限公司 一种弱一致性存储模型的数据访存系统和方法
CN102789483A (zh) * 2012-06-30 2012-11-21 华为技术有限公司 数据验证方法、装置和系统
CN103885890A (zh) * 2012-12-21 2014-06-25 华为技术有限公司 高速缓冲存储器cache中cache块的替换处理方法和装置

Also Published As

Publication number Publication date
WO2016082793A1 (zh) 2016-06-02
US10114749B2 (en) 2018-10-30
US20170262372A1 (en) 2017-09-14
CN104679669A (zh) 2015-06-03

Similar Documents

Publication Publication Date Title
CN104679669B (zh) 高速缓存cache存储器系统及访问缓存行cache line的方法
CN105740164B (zh) 支持缓存一致性的多核处理器、读写方法、装置及设备
US7814279B2 (en) Low-cost cache coherency for accelerators
KR100978156B1 (ko) 스누프 필터에서의 실효를 감소시키기 위한 라인 스와핑 스킴을 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능 기록 매체
CN103324584B (zh) 用于多核处理器中非一致性高速缓存的系统和方法
US10402327B2 (en) Network-aware cache coherence protocol enhancement
US20060277366A1 (en) System and method of managing cache hierarchies with adaptive mechanisms
US20140032854A1 (en) Coherence Management Using a Coherent Domain Table
CN102307206A (zh) 基于云存储的快速访问虚拟机镜像的缓存系统及其方法
CN104169892A (zh) 并发访问的组相联溢出缓存
CN110196818A (zh) 缓存数据的方法、缓存设备和存储系统
CN107341114A (zh) 一种目录管理的方法、节点控制器和系统
CN110442533A (zh) 一种提高访问性能的方法、设备及存储介质
CN105354153B (zh) 一种紧耦合异构多处理器数据交换缓存的实现方法
US8732404B2 (en) Method and apparatus for managing buffer cache to perform page replacement by using reference time information regarding time at which page is referred to
CN102855213B (zh) 一种网络处理器指令存储装置及该装置的指令存储方法
JP2021522608A (ja) ストリーミングデータ転送のためのフロー圧縮を用いたデータ処理ネットワーク
CN109656730A (zh) 一种访问缓存的方法和装置
CN103729309B (zh) 一种目录Cache一致性方法
CN108664217A (zh) 一种降低固态盘存储系统写性能抖动的缓存方法及系统
CN106326143B (zh) 一种缓存分配、数据访问、数据发送方法、处理器及系统
CN108664214A (zh) 用于固态存储设备的分布式缓存的掉电处理方法与装置
CN109213425A (zh) 利用分布式缓存在固态存储设备中处理原子命令
CN106951190A (zh) 数据存储及访问方法、节点和服务器集群
CN105630690B (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
GR01 Patent grant
GR01 Patent grant