CN102662868B - 用于处理器的动态组相联高速缓存装置及其访问方法 - Google Patents

用于处理器的动态组相联高速缓存装置及其访问方法 Download PDF

Info

Publication number
CN102662868B
CN102662868B CN201210134204.5A CN201210134204A CN102662868B CN 102662868 B CN102662868 B CN 102662868B CN 201210134204 A CN201210134204 A CN 201210134204A CN 102662868 B CN102662868 B CN 102662868B
Authority
CN
China
Prior art keywords
cache
cache blocks
block
blocks
buffer 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
CN201210134204.5A
Other languages
English (en)
Other versions
CN102662868A (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
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
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, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201210134204.5A priority Critical patent/CN102662868B/zh
Publication of CN102662868A publication Critical patent/CN102662868A/zh
Priority to EP13784394.2A priority patent/EP2743834B1/en
Priority to PCT/CN2013/075092 priority patent/WO2013163956A1/zh
Priority to US14/328,173 priority patent/US9880937B2/en
Application granted granted Critical
Publication of CN102662868B publication Critical patent/CN102662868B/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/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/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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/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
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/601Reconfiguration of cache memory
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/10Technologies improving the efficiency by using switched-mode power supplies [SMPS], i.e. efficient power electronics conversion e.g. power factor correction or reduction of losses in power supplies or efficient standby modes
    • 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

用于处理器的动态组相联高速缓存装置及其访问方法
技术领域
本发明涉及处理器设计,尤其涉及处理器的高速缓存设计。
背景技术
长期以来,为了缓解处理器与内存之间的“存储墙”问题,即,处理器的处理速度远大于内存的供数速度,导致处理器常处于“饥饿”和等待状态,高速缓存被运用在了处理器的结构中。处理器的高速缓存利用程序访存的局部性原理,包括时间局部性——被访问的存储地址在较短时间内再次被访问,和空间局部性——某个存储地址被访问,与之临近的存储地址在较短的时间内也会被访问,弥补了处理器与内存的速度差距,从而大大提高了处理器的性能。一般讲来,对于多数程序,在一个给定的处理器结构上,更大的高速缓存装置往往也能显示出更高的程序性能。因此,近年来,处理器的高速缓存越做越大,2级甚至3级的多级缓存结构也被广泛使用。在多核处理器结构中,也常常配有私有缓存(只被单个处理器核使用)和共享缓存(被多个处理器核共享使用)。
然而,缓存装置的功耗也随之越来越大,在整个处理器***功耗中占的比例越来越高,有的甚至达到了40%-50%。功耗是当今处理器设计领域不可忽视的问题,过高的功耗会带来芯片散热及稳定性等诸多问题。因此,减小作为处理器的最重要的部件之一的高速缓存的功耗,可以有效降低处理器***的总功耗。然而现有的降低高速缓存功耗的方法,或者需要软件的支持;或者以性能的损失为代价;或者引入了过多的硬件开销,增加了实现复杂度。
发明内容
因此,本发明的目的在于解决上述技术问题,提供一种用于处理器的动态组相联高速缓存装置,能在不降低处理器性能的情况下减少处理器的整体功耗。
本发明的目的是通过以下技术方案实现的:
一方面,本发明提供了一种用于处理器的动态组相联高速缓存装置,该装置包括:
多个缓存路,每个缓存路含有相同数量的缓存块,每个缓存块包括标记块和数据块;以及
记录缓存块的有效位的表格单元,所述缓存块的有效位用于指示缓存块是有效还是无效。
上述技术方案中,所述表格单元独立于实现标记块阵列或数据块阵列的SRAM。所述表格单元可以是采用寄存器堆实现的。
上述技术方案中,在处理器对所述装置进行读访问时首先通过检查所述表格单元得到待访问的缓存组中的各个缓存块的有效位,并根据每个缓存块的有效位来设置该缓存块所在的缓存路的使能位;然后读出缓存组中有效缓存块,并从其标记块与访存地址中的标记段匹配的有效缓存块的数据块中读出数据。
上述技术方案中,对于无效的缓存块,将该缓存块所在的缓存路的使能位设置为不使能;对于有效的缓存块,将该缓存块所在的缓存路的使能位设置为使能。
另一方面,本发明提供了一种对上述技术方案中的装置进行读访问的方法,所述方法包括:
(1)根据访存地址的索引段定位待访问的缓存组;
(2)通过检查所述表格单元来得到所述缓存组中的各个缓存块的有效位;
(3)根据所述缓存组中的每个缓存块的有效位来设置该缓存块所处的缓存路的使能位;
(4)读出缓存组中有效缓存块,并从其标记块与访存地址中的标记段匹配的有效缓存块的数据块中读出数据。
上述方法中,在步骤(2)如果检查到待访问的缓存组中所有的缓存块均无效时,可以直接发送缺失消息。
上述方法中,在步骤(3)对于处于无效状态的缓存块,将其所处的缓存路的使能位设置为不使能;对于处于有效状态的缓存块,将其所处的缓存路的使能位设置为使能;
上述方法中,所述步骤(4)可以包括下列步骤:
读出缓存组中有效缓存块;
将访存地址中的标记段与所读出的各个缓存块的标记块进行比对;
如果命中,则根据访存地址的偏移段,从相应的缓存块的数据块中选择数据进行写回;如果未命中,则发送缺失消息。
与现有技术相比,本发明的优点在于:
在每次读访问发生时动态改变高速缓存装置的相联度,一个缓存组中无效缓存块所在的缓存路在读操作发生时,将不被使能,从而有效减少了缓存装置在读写过程中由于读操作引发的动态功耗。因此,可以在基本不增加设计复杂度和影响处理器性能的情况下,有效降低处理器缓存的功耗。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为现有的组相联高速缓存装置的一个示例结构示意图;
图2为现有的组相联高速缓存装置的访问过程示意图;
图3为组相联高速缓存装置在程序执行中的一个状态示意图;
图4为根据本发明实施例的用于处理器的动态组相联高速缓存装置的结构示意图;
图5为对根据本发明实施例的组相联高速缓存装置的读访问流程示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
高速缓存的功耗分为动态功耗和静态功耗。动态功耗是指电容充放电功耗和短路功耗,主要是在对高速缓存进行读写操作时由电路的翻转造成的。静态功耗是指漏电流功耗,是电路状态稳定时的功耗。
根据对SPEC(The Standard Performance Evaluation Corporation,标准性能评估公司)CPU2000测试程序的分析统计,程序中大约有三分之一的指令为访存指令或涉及访存操作,而读操作又大约是写操作的2倍。此外,当一个写操作发生时,首先要读出相应的缓存块,看是否命中,根据命中与否决定是否执行写操作。所以,每个写操作也伴随有一次读操作发生。由此可见,读操作是缓存装置最重要的动态功耗来源。
现有的高速缓存结构可以分为直接相联缓存,全相联缓存,和组相联缓存三种。组相联缓存由于可以比直接相联缓存有效减少冲突失效,提高命中率,并且比全相联缓存具有较少的查询时间,从而被最为广泛的使用。图1给出了现有的组相联缓存结构示意图。图1示出了一个4路组相联的缓存结构,包括4个缓存路:缓存路0、缓存路1、缓存路2、缓存路3。其中每个缓存路含有相同数量的缓存块(例如:128块),每个缓存块由标记(tag)段和数据(data)段(也可以称为tag块和data块)两部分组成。访存地址(32位地址)划分成标记(tag)段,索引(index)段和偏移(offset)段。缓存组是由每个缓存路中处于同一个index的缓存块相联而构成的。在图1所示的4路组相联的缓存结构中,一个缓存组由4个缓存块组成。如图1的阴影部分,由第0路,第1路,第2路,第3路中的处于同一个index索引的缓存块组成的相联组(set)就是缓存组。例如,由缓存路0中的tag0和data0、缓存路1中的tag1和data1,缓存路2中的tag2和data2组成,缓存路3中的tag3和data3相联组成的缓存组。
图2给出了图1所示的缓存结构的访问流程示意。对高速缓存装置的访问是以缓存组为单位的,也就是说读写访问都发生在一个缓存组上,即对同一个index索引的不同缓存路的各个缓存块进行操作。如图2所示,每个缓存路包括tag阵列(例如,可包括128个tag块)和data阵列(例如,可包括128个data块)。在具体硬件实现中,tag阵列或data阵列可以实现为SRAM块,所述SRAM块含有enable控制位,当enable为1(高点位)时,可以对该SRAM块进行读写;而没有访问发生时,enable位为0(拉低)。
传统的访存流程主要包括以下步骤:
a)在生成访存地址后,将所有缓存路的enable位都置上(电位拉高);
b)通过访存地址的index段索引到具体的某个缓存组(例如,如果共有128个缓存组,则index为7bits);
c)读出相应缓存组中各个缓存块(包括tag块和data块)及其有效标志位(valid/invalid位);
d)将访问地址的tag段与所读出的各个tag块进行比对,并对缓存块的有效标志位(也可简称有效位)进行检查;如果命中(即tag匹配)并且有效位有效,则根据访问地址中的offset段从相应的data块中选择数据进行操作,如果未命中则发出缺失消息。
例如,当一个读操作发生时,访存地址的index段被用来索引要访问的缓存组,访存地址的tag段被用来与从所读出的缓存组中的各个缓存块的tag比对,如果命中并且缓存块的数据有效则根据访存地址的offset段从该缓存块的相应的data块中选出需要的数据(如其中8bytes),并写回寄存器。
在上述访存过程中,缓存组是索引的基本单位,每次访问发生时,需要访问所有的缓存路。在图1所示的缓存结构中,缓存组由来自4个缓存路中的缓存块构成,因此在每次访问发生时,需要访问的缓存路数为4,也就是说该缓存结构的相联度为4。其中,相联度指每次访问发生时,需要访问的缓存路数。相联度越大,说明要读出的缓存块或需要进行匹配(如tag匹配)的缓存块越多,因此功耗也越大。
然而,实际上,每一次读操作发生时,要访问的缓存组中各缓存路的数据并不都是有效的。图3给出了组相联缓存在程序执行中的一个状态示例的示意图。如图3所示,其中在每个缓存路中,黑色块表示是有效数据,而空白块表示无效数据。例如对于一个4路组相联的缓存结构,当一个读访问发生时,要访问的缓存组中,或者4路数据全有效,或者3路数据有效,或者2路数据有效,或者只有1路数据有效,甚至所有路的数据都无效。造成缓存块中数据无效的原因可以例如:a)该缓存块还未被初始化,但不久会被初始化;b)程序的时间局部性和空间局部性很好,某些缓存块在较长时间都不会被初始化;c)该缓存块已被填充过,但数据被无效掉了。如单核环境中通过DMA(Direct Memory Access,直接内存存取)操作或者在多核环境中通过其它处理器发的invalid(无效)消息都会将某个缓存块的数据无效掉。
发明人通过对随机挑选的SPEC CPU2000测试程序进行分析发现,在不同的程序执行过程中,大约30%-70%的读操作是对无效缓存路的读操作,由此产生了很多不必要的动态功耗。
图4给出了根据本发明一个实施例的用于处理器的动态组相联高速缓存装置的结构示意图。其中缓存块的有效位是通过表格单元(如图4中的valid表)来记录,所述缓存块的有效位用于指示缓存块是有效还是无效。当缓存块第一次填入数据时,该缓存块在valid表中对应的有效标志位(简称有效位)被置上(例如,设为1)。当缓存块没有被填入数据时,有效标志位是无效的(例如,设为0)。缓存块中的数据也可以由本处理器核写回内存后置为无效;或由来自其它处理器核或DMA的无效消息置为无效。在本实施例中,该表格单元(简称valid表)是采用寄存器堆实现的,独立于实现tag阵列(也可以称为标记块阵列)或data阵列(也可以称为数据块阵列)的SRAM(静态随机存取存储器)。也就是说该表格单元不与tag阵列或data阵列的SRAM实现在一起或不与tag阵列或data阵列使用相同的SRAM。
如图4所示,在读访问发生时,该装置在通过访存地址的index段定位到某个具体的缓存组之后,首先,检查该缓存组中每个缓存块的有效位。例如通过检查图4所示的valid表来判断各缓存块的数据是否有效。接着,根据判断结果来设置缓存块所处的缓存路的使能位(enable/disable位),当发现某个缓存块无效(invalid)时,将该缓存块所处的缓存路的使能位设置为不使能(disable)(也就是将电位拉低或置于0);相反,当缓存块有效(valid)时,将该缓存块所处的缓存路的使能位设置为使能(enable)(也就是将电位拉高或置于1)。
然后,该装置在读取缓存组的各个缓存块时就可以只读取有效的缓存块,并将访存地址的tag段和所读出的tag块进行比对,如有命中(即tag匹配),则根据访存地址的offset段,对相应数据块(如32bytes,)进行选择(如其中8bytes)写回。如果没有命中,则发送缺失消息。这样,在每次读访问发生时动态改变高速缓存装置的相联度,无效缓存块所在的缓存路在读操作发生时,将不被使能,从而有效减少了缓存装置在读写过程中由于读操作引发的动态功耗。
图5给出了对根据本发明实施例的用于处理器的动态组相联高速缓存装置的读访问流程示意图。该读访问流程主要包括以下步骤:
(1)在经计算得到访存地址后,根据访存地址的index段定位待访问的缓存组;
(2)在valid表中检查待访问的缓存组中的各个缓存块的有效和无效状态;如果检查valid时,发现所有缓存块的有效位都无效,则直接发送缺失消息。
(3)根据每个缓存块的有效位来设置该缓存块所处的缓存路的使能位;例如,对于处于无效状态的缓存块,将其所处的缓存路的使能位设置为不使能,从而屏蔽掉对无效缓存块的访问;对于处于有效状态的缓存块,将其所处的缓存路的使能位设置为使能。
(4)读取缓存组中有效的缓存块(包括tag块和data块),
(5)将访存地址中的tag段与所读出的各个缓存块的tag块进行比对,如果命中,则根据访存地址的offset段,从相应数据块选择数据进行写回;如果未命中,则向外发缺失消息。
可见,在本发明的实施例中,在对所述高速缓存装置读操作时,通过事先检查无效的缓存块,并在访问时将无效缓存块所在的缓存路无效(disable)掉,以减少缓存路的访问,降低功耗。
应指出,上述实施例的组相联高速缓存装置仅是举例说明的目的,而不是进行限制。也就是说在本发明的高速缓存装置中对缓存路的数量没有限制,可以为任意多路组相联缓存,对其中的缓存块大小没有特殊限制,对缓存装置本身的大小也没有特殊限制。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。

Claims (7)

1.一种用于处理器的动态组相联高速缓存装置,所述装置包括:
多个缓存路,每个缓存路含有相同数量的缓存块,每个缓存块包括标记块和数据块;以及
记录缓存块的有效位的表格单元,所述缓存块的有效位用于指示缓存块是有效还是无效;
所述表格单元采用寄存器堆实现;
在处理器对所述装置进行读访问时首先通过检查所述表格单元得到待访问的缓存组中的各个缓存块的有效位,并根据每个缓存块的有效位来设置该缓存块所在的缓存路的使能位;读出缓存组中有效缓存块,并从其标记块与访存地址中的标记段匹配的有效缓存块的数据块中读出数据。
2.如权利要求1所述的装置,其中所述表格单元独立于实现标记块阵列或数据块阵列的SRAM。
3.根据权利要求1所述的装置,其中对于无效的缓存块,将该缓存块所在的缓存路的使能位设置为不使能;对于有效的缓存块,将该缓存块所在的缓存路的使能位设置为使能。
4.一种对动态组相联高速缓存装置进行读访问的方法,所述方法包括:
(1)根据访存地址的索引段定位待访问的缓存组,所述缓存组由每个缓存路中处于同一个索引段的缓存块相联而构成;
(2)通过检查表格单元来得到所述缓存组中的各个缓存块的有效位,所述表格单元记录缓存块的有效位,所述缓存块的有效位用于指示缓存块是有效还是无效;
(3)根据所述缓存组中的每个缓存块的有效位来设置该缓存块所处的缓存路的使能位;
(4)读出缓存组中有效缓存块,并从其标记块与访存地址中的标记段匹配的有效缓存块的数据块中读出数据。
5.根据权利要求4所述的方法,在步骤(2)如果检查到待访问的缓存组中所有的缓存块均无效时,直接发送缺失消息。
6.根据权利要求4所述的方法,在步骤(3)对于处于无效状态的缓存块,将其所处的缓存路的使能位设置为不使能;对于处于有效状态的缓存块,将其所处的缓存路的使能位设置为使能。
7.根据权利要求4所述的方法,所述步骤(4)包括以下步骤:
读出缓存组中有效缓存块;
将访存地址中的标记段与所读出的各个缓存块的标记块进行比对;
如果命中,则根据访存地址的偏移段,从相应的缓存块的数据块中选择数据进行写回;如果未命中,则发送缺失消息。
CN201210134204.5A 2012-05-02 2012-05-02 用于处理器的动态组相联高速缓存装置及其访问方法 Active CN102662868B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201210134204.5A CN102662868B (zh) 2012-05-02 2012-05-02 用于处理器的动态组相联高速缓存装置及其访问方法
EP13784394.2A EP2743834B1 (en) 2012-05-02 2013-05-02 Dynamic set-associative cache apparatus for processor and visiting method thereof
PCT/CN2013/075092 WO2013163956A1 (zh) 2012-05-02 2013-05-02 用于处理器的动态组相联高速缓存装置及其访问方法
US14/328,173 US9880937B2 (en) 2012-05-02 2014-07-10 Dynamic set associative cache apparatus for processor and access method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210134204.5A CN102662868B (zh) 2012-05-02 2012-05-02 用于处理器的动态组相联高速缓存装置及其访问方法

Publications (2)

Publication Number Publication Date
CN102662868A CN102662868A (zh) 2012-09-12
CN102662868B true CN102662868B (zh) 2015-08-19

Family

ID=46772364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210134204.5A Active CN102662868B (zh) 2012-05-02 2012-05-02 用于处理器的动态组相联高速缓存装置及其访问方法

Country Status (4)

Country Link
US (1) US9880937B2 (zh)
EP (1) EP2743834B1 (zh)
CN (1) CN102662868B (zh)
WO (1) WO2013163956A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662868B (zh) * 2012-05-02 2015-08-19 中国科学院计算技术研究所 用于处理器的动态组相联高速缓存装置及其访问方法
US9244837B2 (en) * 2012-10-11 2016-01-26 Texas Instruments Incorporated Zero cycle clock invalidate operation
CN102999443B (zh) * 2012-11-16 2015-09-09 广州优倍达信息科技有限公司 一种计算机缓存***的管理方法
US9965274B2 (en) * 2013-10-15 2018-05-08 Mill Computing, Inc. Computer processor employing bypass network using result tags for routing result operands
CN104636268B (zh) * 2013-11-08 2019-07-26 上海芯豪微电子有限公司 一种可重构缓存产品与方法
CN104657285B (zh) * 2013-11-16 2020-05-05 上海芯豪微电子有限公司 一种数据缓存***和方法
CN104750423B (zh) * 2013-12-25 2018-01-30 中国科学院声学研究所 一种优化pcm内存写的方法和装置
CN105094953B (zh) * 2014-05-09 2018-09-07 华为技术有限公司 数据访问方法及装置
WO2016097812A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Cache memory budgeted by chunks based on memory access type
CN104778130B (zh) * 2015-04-28 2018-05-22 杭州中天微***有限公司 一种支持容量与组相联度灵活可配的核外高速缓存装置
EP3296880B1 (en) 2015-06-02 2022-09-21 Huawei Technologies Co., Ltd. Access system and method for data storage
CN105005537A (zh) * 2015-08-13 2015-10-28 广州优倍达信息科技有限公司 一种计算机缓存***的管理方法
CN105095114A (zh) * 2015-08-13 2015-11-25 广州优倍达信息科技有限公司 一种计算机缓存***的管理方法
CN105068942A (zh) * 2015-08-13 2015-11-18 广州优倍达信息科技有限公司 一种计算机缓存***的管理方法
CN106776366B (zh) * 2016-11-18 2019-11-22 华为技术有限公司 地址访问方法及装置
CN109857681B (zh) * 2017-11-30 2023-07-18 华为技术有限公司 高速缓存cache地址映射方法以及相关设备
KR20200008759A (ko) * 2018-07-17 2020-01-29 에스케이하이닉스 주식회사 캐시 메모리 및 이를 포함하는 메모리 시스템, 캐시 메모리의 축출 방법
GB2578924B (en) * 2018-11-14 2021-09-29 Advanced Risc Mach Ltd An apparatus and method for controlling memory accesses
US11200166B2 (en) 2019-07-31 2021-12-14 Micron Technology, Inc. Data defined caches for speculative and normal executions
US10908915B1 (en) * 2019-07-31 2021-02-02 Micron Technology, Inc. Extended tags for speculative and normal executions
US11194582B2 (en) 2019-07-31 2021-12-07 Micron Technology, Inc. Cache systems for main and speculative threads of processors
US10915326B1 (en) 2019-07-31 2021-02-09 Micron Technology, Inc. Cache systems and circuits for syncing caches or cache sets
US11048636B2 (en) * 2019-07-31 2021-06-29 Micron Technology, Inc. Cache with set associativity having data defined cache sets
US11010288B2 (en) 2019-07-31 2021-05-18 Micron Technology, Inc. Spare cache set to accelerate speculative execution, wherein the spare cache set, allocated when transitioning from non-speculative execution to speculative execution, is reserved during previous transitioning from the non-speculative execution to the speculative execution
CN111259384B (zh) * 2020-01-17 2022-06-14 中国科学院计算技术研究所 一种基于缓存随机无效的处理器瞬态攻击防御方法
US20210365204A1 (en) * 2020-05-20 2021-11-25 Micron Technology, Inc. Sort in memory using index and key tables
CN116150046B (zh) * 2023-04-21 2023-07-14 无锡沐创集成电路设计有限公司 一种高速缓存电路

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860110A (en) * 1995-08-22 1999-01-12 Canon Kabushiki Kaisha Conference maintenance method for cache memories in multi-processor system triggered by a predetermined synchronization point and a predetermined condition
US6041396A (en) * 1996-03-14 2000-03-21 Advanced Micro Devices, Inc. Segment descriptor cache addressed by part of the physical address of the desired descriptor
US6378047B1 (en) * 1997-07-07 2002-04-23 Micron Technology, Inc. System and method for invalidating set-associative cache memory with simultaneous set validity determination
US6185657B1 (en) * 1998-04-20 2001-02-06 Motorola Inc. Multi-way cache apparatus and method
EP1182565B1 (en) * 2000-08-21 2012-09-05 Texas Instruments France Cache and DMA with a global valid bit
CN1165000C (zh) * 2001-12-20 2004-09-01 中国科学院计算技术研究所 动态索引的微处理器高速缓存方法
CN100449504C (zh) * 2005-01-05 2009-01-07 华为技术有限公司 一种基于bitmap表的缓存管理方法
US20070043965A1 (en) * 2005-08-22 2007-02-22 Intel Corporation Dynamic memory sizing for power reduction
GB2458295B (en) 2008-03-12 2012-01-11 Advanced Risc Mach Ltd Cache accessing using a micro tag
US8095831B2 (en) * 2008-11-18 2012-01-10 Freescale Semiconductor, Inc. Programmable error actions for a cache in a data processing system
US8156357B2 (en) * 2009-01-27 2012-04-10 Freescale Semiconductor, Inc. Voltage-based memory size scaling in a data processing system
CN102306092B (zh) * 2011-07-29 2014-04-09 北京北大众志微***科技有限责任公司 超标量处理器实现指令缓存路选择的方法及装置
CN102662868B (zh) * 2012-05-02 2015-08-19 中国科学院计算技术研究所 用于处理器的动态组相联高速缓存装置及其访问方法
US9003130B2 (en) * 2012-12-19 2015-04-07 Advanced Micro Devices, Inc. Multi-core processing device with invalidation cache tags and methods

Also Published As

Publication number Publication date
US9880937B2 (en) 2018-01-30
US20140344522A1 (en) 2014-11-20
EP2743834B1 (en) 2017-06-28
WO2013163956A1 (zh) 2013-11-07
EP2743834A1 (en) 2014-06-18
EP2743834A4 (en) 2014-11-26
CN102662868A (zh) 2012-09-12

Similar Documents

Publication Publication Date Title
CN102662868B (zh) 用于处理器的动态组相联高速缓存装置及其访问方法
KR101902650B1 (ko) 완전삭제-인식 디램 컨트롤러
CN101088075B (zh) 用于多核处理器中非一致性高速缓存的***和方法
CN106528454B (zh) 一种基于闪存的内存***缓存方法
CN101105772B (zh) 控制计算机可读存储器的方法和管理数据单元的装置
US20160098353A1 (en) Methods and systems for memory de-duplication
CN102859504B (zh) 复制数据的方法和***以及获得数据副本的方法
CN105095116A (zh) 缓存替换的方法、缓存控制器和处理器
US10176107B2 (en) Methods and systems for dynamic DRAM cache sizing
CN105677580A (zh) 访问缓存的方法和装置
US9552301B2 (en) Method and apparatus related to cache memory
CN110297787B (zh) I/o设备访问内存的方法、装置及设备
US20130173834A1 (en) Methods and apparatus for injecting pci express traffic into host cache memory using a bit mask in the transaction layer steering tag
US10467138B2 (en) Caching policies for processing units on multiple sockets
CN107015923A (zh) 用于管理探听操作的一致性互连和包括其的数据处理装置
CN102681792B (zh) 一种固态盘内存分区方法
CN109478164A (zh) 用于存储用于高速缓存条目传输的高速缓存位置信息的***和方法
US20170046278A1 (en) Method and apparatus for updating replacement policy information for a fully associative buffer cache
CN104714898A (zh) 一种Cache的分配方法和装置
CN104346295A (zh) 一种缓存刷新方法和装置
Zhang et al. Design and optimization of large size and low overhead off-chip caches
US20040078544A1 (en) Memory address remapping method
CN103176753A (zh) 存储设备及其数据管理方法
CN104850508A (zh) 基于数据局部性的访存方法
CN104778130B (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
ASS Succession or assignment of patent right

Owner name: HUAWEI TECHNOLOGY CO., LTD.

Effective date: 20121219

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20121219

Address after: 100190 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Applicant after: Institute of Computing Technology, Chinese Academy of Sciences

Applicant after: Huawei Technologies Co., Ltd.

Address before: 100190 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Applicant before: Institute of Computing Technology, Chinese Academy of Sciences

C14 Grant of patent or utility model
GR01 Patent grant