CN104375955A - 高速缓冲存储器设备及其控制方法 - Google Patents
高速缓冲存储器设备及其控制方法 Download PDFInfo
- Publication number
- CN104375955A CN104375955A CN201410400789.XA CN201410400789A CN104375955A CN 104375955 A CN104375955 A CN 104375955A CN 201410400789 A CN201410400789 A CN 201410400789A CN 104375955 A CN104375955 A CN 104375955A
- Authority
- CN
- China
- Prior art keywords
- group
- cache memory
- path
- memory device
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
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
相关申请的交叉引用
本申请要求2013年8月16日提交的申请号为10-2013-00097042的韩国专利申请的优先权,其全部内容通过引用合并于此。
技术领域
各种实施例总体而言涉及一种高速缓冲存储器设备及其控制方法。
背景技术
在处理器和半导体存储器设备之间使用高速缓冲存储器设备以减少用于半导体存储器设备的访问时间。
例如,当使用具有4GB容量的半导体存储器设备和具有2MB容量的高速缓冲存储器设备时,半导体存储器设备的全部地址的1/2048可以储存在高速缓冲存储器设备中。
然而,当读请求或写请求集中于半导体存储器设备的一部分地址时,可能要从高速缓冲存储器设备的一些组中频繁地逐出(evict)数据,从而降低了高速缓冲存储器设备和包括其的系统的性能。
发明内容
在一个实施例中,一种高速缓冲存储器设备可以包括:第一高速缓冲存储器,其包括第一组和与第一组相对应的多个路径;以及第二高速缓冲存储器,其包括第二组和与第二组相对应的多个路径,其中第二组根据第一组的路径的空缺而与第一组相关。
在一个实施例中,一种系统可以包括:处理器核心、储存设备、以及耦接在处理器核心和储存设备之间并且被配置成高速缓存储存设备的数据的高速缓冲存储器设备。高速缓冲存储器设备可以包括:第一高速缓冲存储器,其包括第一组和与第一组相对应的多个路径;以及第二高速缓冲存储器,其包括第二组和与第二组相对应的多个路径,其中第二组根据第一组的路径的空缺而与第一组相关。
在一个实施例中,一种高速缓冲存储器的控制方法可以包括:确定在第一高速缓冲存储器的第一组中是否存在与读请求地址相对应的第一路径;以及当不存在第一路径时,检查在第二组中是否存在与第一组相关的第二组。高速缓冲存储器设备的控制方法还可以包括:当存在第二组时,检查在第二组中是否存在与读请求地址相对应的第二路径,以及当在第二组中存在第二路径时,从第二路径中读取读请求地址的数据。
在一个实施例中,一种高速缓冲存储器的控制方法可以包括:当不存在第一路径时,检查在第一高速缓冲存储器的第一组中是否存在与写请求地址相对应的第一路径,以及检查在第二高速缓冲存储器中是否存在与第一组相关的第二组。高速缓冲存储器设备的控制方法还可以包括:当存在第二组时,检查在第二组中是否存在与写请求地址相对应的第二路径,以及当存在第二路时,储存写请求数据。
在一个实施例中,提供了一种高速缓冲存储器设备的控制方法,所述高速缓冲存储器设备可以包括:第一高速缓冲存储器,其包括具有多个路径的第一组;以及第二高速缓冲存储器,其包括具有多个路径且根据第一组的路径的空缺而与第一组相关的第二组,且储存指示第二组的访问频率的计数。控制方法可以包括:当对第二组执行读操作或写操作时增加第二组的计数,以及在预定的时间段减少计数。
在一个实施例中,一种高速缓冲存储器设备可以包括:第一高速缓冲存储器,其包括第一组和与第一组相对应的多个路径;以及第二高速缓冲存储器,其包括多个第二组和与第二组相对应的多个路径,其中,所述多个第二组中的任何一组可以用于扩展第一高速缓冲存储器的第一组。
在一个实施例中,一种系统可以包括:处理器核心、储存设备、以及耦接在处理器核心和储存设备之间且被配置成高速缓存储存设备的数据的高速缓冲存储器设备。高速缓冲存储器设备可以包括:第一高速缓冲存储器,其包括第一组和与第一组相对应的多个路径;以及第二高速缓冲存储器,其包括多个第二组和与第二组相对应的多个路径,其中,所述多个第二组中的任何一组可以用于扩展第一高速缓冲存储器的第一组。
附图说明
图1是表示包括根据一个实施例的高速缓冲存储器设备的系统的框图;
图2是表示根据一个实施例的高速缓冲存储器设备的框图;
图3是说明表示根据一个实施例的高速缓冲存储器设备的路径数据结构的图;
图4是说明表示根据一个实施例的高速缓冲存储器设备的读操作的流程图;
图5是说明表示根据一个实施例的高速缓冲存储器设备的写操作的流程图;
图6是说明表示根据一个实施例的控制高速缓冲存储器设备中的第二高速缓冲存储器的计数的方法的流程图。
具体实施方式
以下将参照附图更详细地描述各种实施例。然而,实施例可以实施为不同的形式,而不应当解释为局限于本文中提出的实施例。更确切地说,提供这些实施例,使得本公开充分且完整,并且将实施例的范围更全面地传达给本领域技术人员。在本公开中,相似的附图标记在各附图和实施例中表示相似的部分。
各种实施例可针对即使当请求集中于半导体存储器设备的一些地址时也能够降低性能退化的高速缓冲存储器设备及其控制方法。
图1是表示包括根据一个实施例的高速缓冲存储器设备100的系统的框图。
为了改善系统的性能,可以在处理器核心10和储存设备30之间使用高速缓冲存储器设备。如在图1中所示,高速缓冲存储器设备100例如耦接在处理器核心10和储存设备30之间。
在一个实施例中,储存设备30可以包括诸如DRAM的易失性半导体存储器设备、诸如SSD的非易失性半导体存储器设备、诸如硬盘的磁储存设备、和/或诸如光盘的光储存设备。
根据一个实施例的高速缓冲存储器设备100可以包括第一高速缓冲存储器110和第二高速缓冲存储器120。根据一个实施例的高速缓冲存储器控制器200可以对包括第一高速缓冲存储器110和第二高速缓冲存储器120的高速缓冲存储器设备100执行控制操作。
根据一个实施例的高速缓冲存储器设备100可以包括第一高速缓冲存储器110和第二高速缓冲存储器120。
第二高速缓冲存储器120的每个组可以与第一高速缓冲存储器110的任何一组相关。当第一高速缓冲存储器110的特定组的全部路径都被使用时(即,被填满、没有空缺、或没有空的路径),第二高速缓冲存储器120的任何一组可以用来扩展第一高速缓冲存储器110的所述特定组。
当请求集中于第一高速缓冲存储器110的所述特定组时,第二高速缓冲存储器120可以防止由于在第一高速缓冲存储器110中缺乏储存空间而发生频繁的逐出。
将详细地描述根据一个实施例的高速缓冲存储器100及其操作方法。
图2是表示根据一个实施例的高速缓冲存储器设备100的框图。
根据一个实施例的高速缓冲存储器设备100可以包括第一高速缓冲存储器110和第二高速缓冲存储器120。
第一高速缓冲存储器110和第二高速缓冲存储器120中的每个可以包括多个组。每个组可以包括多个路径。
根据从处理器核心10(见图1)请求的地址,可以自动地确定使用第一高速缓冲存储器110的哪个组。如在图3中所示,每个路径中可以包括标签地址、污染标记(dirty flag)和数据。
从处理器核心10请求的地址可以被产生为组号和标签地址的组合。因而,为了检查在高速缓冲存储器设备100中是否储存有从处理器核心10请求的地址的值,可以搜索由请求的地址自动确定的组中所包括的多个路径的标签地址。此外,可以为标签地址指定特定值(例如,“0”),以便指示相对应的路径是空的。
污染标记指示储存在高速缓冲存储器设备中的数据是否被储存在储存设备30(见图1)中。例如,激活的污染标记可以指示储存在相对应的路径中的数据曾被更新,但未被储存在储存设备30中。因而,当从高速缓冲存储器设备逐出的路径的污染标记被激活时,可以使用储存在所述路径中的数据来更新储存设备30。
第二高速缓冲存储器120可以包括多个组。每个组可以与第一高速缓冲存储器110所包括的组中的任何一个相关。第一高速缓冲存储器110所包括的组与第二高速缓冲存储器120所包括的的组之间的关系可以频繁地改变。
当第一高速缓冲存储器110的特定组(例如,组0)没有空的路径时,相对应的组可以与第二高速缓冲存储器120的可用组中的任何一个(例如,组1)相关。通过这种操作,第一高速缓冲存储器的组0所包括的路径的数量可以从N(其中,N是自然数)扩展成(N+L)。
在第二高速缓冲存储器120的组之中,可以将与第一高速缓冲存储器110的任何组没有关系的组与第一高速缓冲存储器110的组相关。
在第二高速缓冲存储器120的组之中,也可以将具有低使用频率的组与第一高速缓冲存储器110的组相关。针对此操作,第二高速缓冲存储器120可以包括用于每个组的计数。所述计数可以指示与相对应的组的请求(诸如读请求或写请求)的频率有关的信息。
例如,所述计数可以控制为每当对相对应的组执行读操作或写操作时增加,以及在每个预定的时间段减少。
当所述计数具有特定值(例如,0)时,相对应的组可以被确定为具有低使用频率,并且不将其与第一高速缓冲存储器110的当前相关组相关,而将其与第一高速缓冲存储器120的另一个组相关。
第一高速缓冲存储器110的每个组可以包括标记。标记可以指示相对应的组是否与第二高速缓冲存储器120的组中的任何一个相关。第一高速缓冲存储器110的每个组可以包括指针,所述指针指示第二高速缓冲存储器120中的与所述相对应的组相关的组。
因而,当从处理器核心10(见图1)产生读请求或写请求时,通过第一高速缓冲存储器110的由相对应的地址自动确定的组所包括的标记和指针,也可以使用第二高速缓冲存储器120的储存空间。
将参照图4至图5来详细地描述通过高速缓冲存储器控制器200来处理用于图2中示出的高速缓冲存储器100的读请求或写请求的方法。
图4是说明表示根据一个实施例的高速缓冲存储器设备的读操作的流程图。
首先,在步骤S110,高速缓冲存储器控制器200(见图1)可以从处理器核心10接收读请求。
在步骤S120,高速缓冲存储器控制器200可以利用与读请求相对应的地址(在下文中称为读请求地址)来搜索第一高速缓冲存储器110中的第一组。可以由读请求地址自动地指定第一高速缓冲存储器110的第一组。
在步骤S130,高速缓冲存储器控制器200可以将第一组所包括的多个路径的标签地址与读请求地址比较,并且确定是否存在与读请求地址相对应的第一路径(即,“在第一组中命中?”)。
当存在第一路径时(即,“是”),高速缓冲存储器控制器200可以从相对应的路径中读取数据、将读取的数据提供至处理器核心10、以及结束处理。
当在步骤S130确定不存在第一路径时(即,“否”),高速缓冲存储器控制器200可以将用于储存设备30的读请求发送至储存控制器20(见图1)。然后,在步骤S140和步骤S150,高速缓冲存储器控制器200可以检查在第二高速缓冲存储器120中是否存在与第一高速缓冲存储器110的第一组相关的第二组。可以通过第一组的标记来检查是否存在与第一组相关的第二组,以及可以通过第一组的指针来检查与第一组相关的第二组的地址。
在步骤S160,当存在第二组时(即,“是”),高速缓冲存储器控制器200可以检查在第二组所包括的多个路径之中,是否存在与读请求地址相对应的第二路径(即,“在第二组中命中?”)。
当存在第二路径时(即,“是”),高速缓冲存储器控制器200可以将第二路径的数据发送至处理器核心10。此外,由于由高速缓冲存储器设备100完成了用于读请求的处理,所以从储存控制器20发送的读请求不需要被执行。因而,高速缓冲存储器控制器200可以将在步骤S161发送的用于读请求的取消请求提供至储存控制器20。
然后,高速缓冲存储器控制器200可以在步骤S162增加与第二高速缓冲存储器120的第二组相对应的计数。
在第一高速缓冲存储器110的第一组和与第一组相关的第二组所包括的全部路径中,最近访问的路径可以储存在第一组中。然而,由于第一组没有空的路径,所以第一组所包括的多个路径中的任何一个可被逐出。在一个实施例中,最近最少使用的路径被选中作为逐出的路径。当该路径被逐出时,可以被检查该路径的污染标记。在这些情况下,当污染标记被激活时,可以将该路径的数据储存在储存设备30中。然后,在步骤S163,可以将提供至处理器核心10的数据储存在第一组的空的路径中。
在一个实施例中,在步骤S163,第一组的路径被逐出至储存设备30。然而,在一个实施例中,从第一组逐出的路径可以被储存在第二组的空的路径中。
当在步骤S150确定不存在第二组时(即,“否”),在步骤S170,高速缓冲存储器控制器200可以从储存设备30中读取数据且将读取的数据提供至处理器核心10,而不用确定在第二组中是否存在第二路径。
然后,在步骤S171,高速缓冲存储器控制器200可以检查第一组是否具有空的路径(即,“第一组满了?”)。当第一组具有空的路径时(即,“否”,第一组未满),在步骤S172,高速缓冲存储器控制器200可以将从储存设备30读取的数据储存在第一组的空的路径中,然后结束处理。
在步骤S163,当第一组没有空的组时(即,“是”,第一组满了),高速缓冲存储器控制器200可以将最近最少使用的路径从第一高速缓冲存储器110的第一组中逐出,以及可以将从储存设备30中读取的数据储存在第一组的空的路径中。
当在步骤S160确定在第二组中不存在与读请求地址相对应的第二路径时(即,“否”),高速缓冲存储器控制器200可以将从储存设备30中读取的数据提供至处理器核心10。
在这些情况下,由于第一组没有空的路径,所以在步骤S163,高速缓冲存储器控制器200可以从第一组中逐出最近最少使用的路径,以及将从储存设备30中读取的数据储存在第一组的空的路径中。在一个实施例中,从第一组中逐出的路径可以被移动至第二组的空的路径。
当根据一个实施例的高速缓冲存储器设备100用于处理读请求时,可以通过第二高速缓冲存储器120来补偿由于用于第一高速缓冲存储器110的特定组的读请求的集中而引起的路径缺乏。因而,高速缓冲存储器设备100可以防止与频繁逐出相关的性能下降。
图5是说明表示根据一个实施例的高速缓冲存储器设备100的写操作的流程图。
首先,在步骤S210,高速缓冲存储器控制器200(见图1)可以从处理器核心10中接收写请求。
在步骤S220,高速缓冲存储器控制器200可以利用与写请求相对应的地址(在下文中,称为写请求地址)来搜索第一高速缓冲存储器110中的第一组。第一高速缓冲存储器110的第一组可以由写请求地址自动地指定。
然后,在步骤S230,高速缓冲存储器控制器200可以检查在第一组中是否存在与写请求地址相对应的第一路径(即,“在第一组中命中?”)。
当存在第一路径时(即,“是”),高速缓冲存储器控制器200可以将与写请求相对应的数据(在下文中,称为写请求数据)储存在第一路径中。此外,高速缓冲存储器控制器200可以将第一路径的污染标记激活。然后,在步骤S231,当将来要逐出相对应的路径时,高速缓冲存储器控制器200可以将数据更新成储存数据30(即,“将数据更新至第一组的命中路径中”)。
在步骤S240,当不存在第一路径时(即,“否”),高速缓冲存储器控制器200可以检查在第二高速缓冲存储器120中是否存在与第一组相关的第二组。可以通过第一组的标记来检查是否存在与第一组相关的第二组,以及可以通过第一组的指针来检查与第一组相关的第二组的地址。
在步骤S250,当存在第二组时(即,“是”),高速缓冲存储器控制器200可以检查在第二组中是否包括与写请求地址相对应的第二路径(即,“在第二组中命中?”)。可以通过将第二组所包括的路径的标签地址与写请求地址比较来执行此操作。
当在第二组中存在与写请求地址相对应的第二路径时(即,“是”),高速缓冲存储器控制器200可以将最近最少使用(LRU)的路径从第一组中逐出至储存设备30。然后,在步骤S251,高速缓冲存储器控制器200可以将第二组的第二路径移动至第一组的空的路径中,并且利用写请求数据来更新数据。
在一个实施例中,最近最少使用的路径可以从第一组中逐出至储存设备30。然而,在一个实施例中,最近最少使用的路径可以被移动至第二组的空的路径中。
然后,在步骤S252,高速缓冲存储器控制器200可以增加第二组的计数。
当在步骤S250确定不存在与写请求地址相对应的第二路径时(即,“否”),高速缓冲存储器控制器200可以将最近最少使用的路径从第一组逐出至第二组的空的路径。此外,在步骤S253,高速缓冲存储器控制器200可以将第二组的第二路径移动至第一组的空的路径中,并且利用写请求数据来更新数据。
当第二组没有空的路径时,从第一组逐出的路径可以被移动至储存设备30中。
然后,在步骤S252,高速缓冲存储器控制器200可以增加第二组的计数。
当在步骤S240确定不存在与第一组相关的第二组时(即,“否”),高速缓冲存储器控制器200可以检查第一组是否具有空的路径。该检查可以在步骤S260(即,“第一组满了?”)执行。
当第一组具有空的路径时(即,“否”),在步骤S261,高速缓冲存储器控制器200可以将写请求数据储存在空的路径中(即,“写在第一组的路径中”)。
当第一组不具有空的路径时,在步骤S262,高速缓冲存储器控制器200可以检查在第二高速缓冲存储器120中是否存在与第一组相关的第三组。
与第一组相关的第三组可以包括与第一高速缓冲存储器110的任何组都不相关的组,或与第一高速缓冲存储器110的任何一组相关但包括具有特定值(例如,0)的计数的组。
当存在第三组时(即,“是”),高速缓冲存储器控制器200可以将第三组与第一组关联。这时,高速缓冲存储器控制器200可以将第一组的标记激活,以及将第三组的地址写入第一组的指针中。
当第三组已经与第一高速缓冲存储器110的另一个组相关时,高速缓冲存储器控制器200必须首先逐出第三组所包括的路径之中的不空的路径。在步骤S263,当路径被逐出时,可以将污染标记被激活的路径的数据重写至储存设备30。
然后,高速缓冲存储器控制器200可以将最近最少使用的路径从第一组中逐出,并且将逐出的路径移动至第三组的空的路径。然后,在步骤S253,高速缓冲存储器控制器200可以将写请求数据写入第一组的空的路径中。
然后,在步骤S252,高速缓冲存储器控制器200可以增加第三组的计数。
当在步骤S262确定在第二高速缓冲存储器120中不存在与第一组相关的第三组时(即,“否”),在步骤S264,高速缓冲存储器控制器200可以将最近最少使用的路径从第一组中逐出。
然后,高速缓冲存储器控制器200可以将写请求数据储存在第一组的空的路径中,并且结束处理。
图6是说明表示根据一个实施例的用于控制高速缓冲存储器设备中的第二高速缓冲存储器的计数的方法的流程图。
如上所述,在第二高速缓冲存储器120的每个组中存在第二高速缓冲存储器120的计数。当访问第二组来处理读请求或写请求时,计数增加。
在步骤S310,高速缓冲存储器控制器200可以在每个预定时间段减少设置在第二高速缓冲存储器120的每个组中的计数。这时,所述时间段和所述减少可以根据实施例而不同。
高速缓冲存储器控制器200可以将第二高速缓冲存储器中的计数例如为0的组看作是可以与第一高速缓冲存储器所包括的组相关的组。这已结合图4的步骤S263进行了详细描述。
随着计数的减少,第二高速缓冲存储器120中的较少使用的组可以用于扩展第一高速缓冲存储器110中的具有高使用频率的组的路径。通过此操作,可以动态地控制第一高速缓冲存储器110的尺寸,同时第二高速缓冲存储器120的尺寸不显著增加。
照此,在步骤S320,通过以例如0来设置计数且确定在第二高速缓冲存储器中是否存在具有该计数的组来执行检查。如果是,则在步骤S330,具有零计数的组被认为是空闲的或可用的。
根据实施例,高速缓冲存储器设备可以增加用于请求集中的地址的储存空间,从而改善高速缓冲存储器设备的操作性能。
尽管已出于说明性的目的描述了各种实施例,但对于本领域的技术人员显然的是,在不脱离所附权利要求所限定的本发明的主旨和范围的情况下,可以进行各种变化和修改。
通过以上实施例可以看出,本申请提供了以下的技术方案。
技术方案1.一种高速缓冲存储器设备,包括:
第一高速缓冲存储器,其包括第一组和与所述第一组相对应的多个路径;以及
第二高速缓冲存储器,其包括多个第二组和与所述第二组相对应的多个路径,
其中,所述多个第二组中的任何一组可以用于扩展所述第一高速缓冲存储器的所述第一组。
技术方案2.如技术方案1所述的高速缓冲存储器设备,其中,所述第一高速缓冲存储器包括第一数据,所述第一数据指示所述第一组和所述第二组之间的关系。
技术方案3.如技术方案2所述的高速缓冲存储器设备,其中,所述第一数据包括:
标记,其指示是否存在与所述第一组相关的第二组;以及
指针,其指示与所述第一组相关的所述第二组的地址。
技术方案4.如技术方案1所述的高速缓冲存储器设备,其中,所述第二高速缓冲存储器包括第二数据,所述第二数据与所述第二组的使用频率相关。
技术方案5.如技术方案1所述的高速缓冲存储器设备,其中,当所述第一组的全部路径都被使用或没有空的路径时,所述多个第二组中的任何一组可以用于扩展所述第一高速缓冲存储器的所述第一组。
技术方案6.如技术方案4所述的高速缓冲存储器设备,其中,当所述第二数据具有特定值时,结束所述第二组和所述第一组之间的关系。
技术方案7.一种系统,包括:
处理器核心;
储存设备;以及
高速缓冲存储器设备,其耦接在所述处理器核心和所述储存设备之间,并且被配置成高速缓存所述储存设备的数据,
其中,所述高速缓冲存储器设备包括:
第一高速缓冲存储器,其包括第一组和与所述第一组相对应的多个路径;以及
第二高速缓冲存储器,其包括多个第二组和与所述第二组相对应的多个路径,
其中,所述多个第二组中的任何一组可以用于扩展所述第一高速缓冲存储器的所述第一组。
技术方案8.如技术方案7所述的系统,其中,所述第一高速缓冲存储器包括第一数据,所述第一数据指示所述第一组和所述第二组之间的关系。
技术方案9.如技术方案8所述的系统,其中,所述第一数据包括:
标记,其指示是否存在与所述第一组相关的第二组;以及
指针,其指示与所述第一组相关的所述第二组的地址。
技术方案10.如技术方案7所述的系统,其中,所述第二高速缓冲存储器包括第二数据,所述第二数据与所述第二组的使用频率相关。
技术方案11.如技术方案7所述的系统,其中,当所述第一组的全部路径都被使用或没有空的路径时,所述多个第二组中的任何一组可以用于扩展所述第一高速缓冲存储器的所述第一组。
技术方案12.如技术方案10所述的系统,其中,所述第二组和所述第一组之间的关系根据所述第二数据的值而结束。
技术方案13.一种高速缓冲存储器设备的控制方法,包括以下步骤:
确定在第一高速缓冲存储器的第一组中是否存在与读请求地址相对应的第一路径;
当不存在所述第一路径时,检查在第二组中是否存在与所述第一组相关的第二组;
当存在所述第二组时,检查在所述第二组中是否存在与所述读请求地址相对应的第二路径;以及
当在所述第二组中存在所述第二路径时,从所述第二路径中读取所述读请求地址的数据。
技术方案14.如技术方案13所述的控制方法,其中,当在所述第二组中存在所述第二路径时:
从所述第一组中逐出任何一个路径;以及
将所述第二路径的数据储存在所述第一组的空的路径中。
技术方案15.如技术方案13所述的控制方法,还包括以下步骤:当在所述第二组中存在所述第二路径时,将所述第一组的任何一个路径的数据与所述第二路径的数据交换。
技术方案16.如技术方案13所述的控制方法,其中,当不存在与所述第一组相关的第二组时:
从储存设备中读取所述读请求地址的数据;
当所述第一组没有空的路径时,将所述第一组所包括的多个路径中的任何一个路径逐出,且形成空的路径;以及
将读取的数据写在所述空的路径中。
技术方案17.如技术方案13所述的控制方法,其中,当不存在所述第一路径时,
将所述读请求发送至所述储存设备;以及
当存在所述第二路径时,发送用于所述读请求的取消请求。
技术方案18.一种高速缓冲存储器设备的控制方法,包括以下步骤:
检查在第一高速缓冲存储器的第一组中是否存在与写请求地址相对应的第一路径;
当不存在所述第一路径时,检查在第二高速缓冲存储器中是否存在与所述第一组相关的第二组;
当存在所述第二组时,检查在所述第二组中是否存在与所述写请求地址相对应的第二路径;以及
当存在所述第二路径时,储存所述写请求数据。
技术方案19.如技术方案18所述的控制方法,其中,储存所述写请求数据包括以下步骤:
将所述第一组所包括的任何一个路径逐出;以及
将所述写请求数据储存至所述第一组的空的路径中。
技术方案20.如技术方案18所述的控制方法,其中,储存所述写请求数据包括以下步骤:
将所述第一组所包括的任何一个路径移动至所述第二组的空的路径中;以及
将所述写请求数据储存至所述第一组的空的路径中。
技术方案21.如技术方案18所述的控制方法,其中,当不存在所述第二路径时:
将所述第一组所包括的任何一个路径移动至所述第二组中;以及
将所述写请求数据储存至所述第一组的空的路径中。
技术方案22.如技术方案18所述的控制方法,其中,当不存在相关的第二组时:
检查所述第一组是否具有空的路径;以及
当所述第一组具有空的路径时,将所述写请求数据写在所述空的路径中。
技术方案23.如技术方案22所述的控制方法,其中,当所述第一组没有空的路径时:
检查在所述第二高速缓冲存储器中是否存在可与所述第一组相关的第三组;
当存在所述第三组时,将所述第三组与所述第一组相关;
将所述第一组的任何一个路径移动至所述第三组中;以及
将所述写请求数据储存至所述第一组的空的路径中。
技术方案24.如技术方案23所述的控制方法,其中,检查是否存在所述第三组包括以下步骤:检查在所述第二高速缓冲存储器中是否存在与所述第一高速缓冲存储器的任何组都不相关的组或计数具有特定值的组。
技术方案25.如技术方案24所述的控制方法,其中,当将所述第二高速缓冲存储器中的计数具有特定值的组选中作为所述第三组时:
将所述第三组所包括的路径之中的污染标记被激活的路径逐出至储存设备中;以及
将所述第三组所包括的全部路径设置成空的路径。
技术方案26.一种高速缓冲存储器设备的控制方法,所述高速缓冲存储器设备包括:第一高速缓冲存储器,其包括具有多个路径的第一组;以及第二高速缓冲存储器,其包括具有多个路径且根据所述第一组的路径的空缺而与所述第一组相关的第二组,且储存指示所述第二组的访问频率的计数,所述控制方法包括以下步骤:
当对所述第二组执行读操作或写操作时,增加所述第二组的所述计数;以及
在预定的时间段减少所述计数。
技术方案27.如技术方案26所述的控制方法,还包括以下步骤:将所述第一组与计数具有特定值的所述第二组相关。
Claims (10)
1.一种高速缓冲存储器设备,包括:
第一高速缓冲存储器,其包括第一组和与所述第一组相对应的多个路径;以及
第二高速缓冲存储器,其包括多个第二组和与所述第二组相对应的多个路径,
其中,所述多个第二组中的任何一组可以用于扩展所述第一高速缓冲存储器的所述第一组。
2.如权利要求1所述的高速缓冲存储器设备,其中,所述第一高速缓冲存储器包括第一数据,所述第一数据指示所述第一组和所述第二组之间的关系。
3.如权利要求2所述的高速缓冲存储器设备,其中,所述第一数据包括:
标记,其指示是否存在与所述第一组相关的第二组;以及
指针,其指示与所述第一组相关的所述第二组的地址。
4.如权利要求1所述的高速缓冲存储器设备,其中,所述第二高速缓冲存储器包括第二数据,所述第二数据与所述第二组的使用频率相关。
5.如权利要求1所述的高速缓冲存储器设备,其中,当所述第一组的全部路径都被使用或没有空的路径时,所述多个第二组中的任何一组可以用于扩展所述第一高速缓冲存储器的所述第一组。
6.如权利要求4所述的高速缓冲存储器设备,其中,当所述第二数据具有特定值时,结束所述第二组和所述第一组之间的关系。
7.一种系统,包括:
处理器核心;
储存设备;以及
高速缓冲存储器设备,其耦接在所述处理器核心和所述储存设备之间,并且被配置成高速缓存所述储存设备的数据,
其中,所述高速缓冲存储器设备包括:
第一高速缓冲存储器,其包括第一组和与所述第一组相对应的多个路径;以及
第二高速缓冲存储器,其包括多个第二组和与所述第二组相对应的多个路径,
其中,所述多个第二组中的任何一组可以用于扩展所述第一高速缓冲存储器的所述第一组。
8.一种高速缓冲存储器设备的控制方法,包括以下步骤:
确定在第一高速缓冲存储器的第一组中是否存在与读请求地址相对应的第一路径;
当不存在所述第一路径时,检查在第二组中是否存在与所述第一组相关的第二组;
当存在所述第二组时,检查在所述第二组中是否存在与所述读请求地址相对应的第二路径;以及
当在所述第二组中存在所述第二路径时,从所述第二路径中读取所述读请求地址的数据。
9.一种高速缓冲存储器设备的控制方法,包括以下步骤:
检查在第一高速缓冲存储器的第一组中是否存在与写请求地址相对应的第一路径;
当不存在所述第一路径时,检查在第二高速缓冲存储器中是否存在与所述第一组相关的第二组;
当存在所述第二组时,检查在所述第二组中是否存在与所述写请求地址相对应的第二路径;以及
当存在所述第二路径时,储存所述写请求数据。
10.一种高速缓冲存储器设备的控制方法,所述高速缓冲存储器设备包括:第一高速缓冲存储器,其包括具有多个路径的第一组;以及第二高速缓冲存储器,其包括具有多个路径且根据所述第一组的路径的空缺而与所述第一组相关的第二组,且储存指示所述第二组的访问频率的计数,所述控制方法包括以下步骤:
当对所述第二组执行读操作或写操作时,增加所述第二组的所述计数;以及
在预定的时间段减少所述计数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2013-0097042 | 2013-08-16 | ||
KR20130097042A KR20150019788A (ko) | 2013-08-16 | 2013-08-16 | 캐시 장치 및 그 제어 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104375955A true CN104375955A (zh) | 2015-02-25 |
CN104375955B CN104375955B (zh) | 2019-05-03 |
Family
ID=52467677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410400789.XA Active CN104375955B (zh) | 2013-08-16 | 2014-08-14 | 高速缓冲存储器设备及其控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9846647B2 (zh) |
KR (1) | KR20150019788A (zh) |
CN (1) | CN104375955B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108459970A (zh) * | 2017-02-17 | 2018-08-28 | 华为技术有限公司 | 一种查询缓存信息的方法及装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018133038A (ja) * | 2017-02-17 | 2018-08-23 | Necプラットフォームズ株式会社 | 情報処理装置、制御装置、制御方法及びプログラム |
KR20200008759A (ko) * | 2018-07-17 | 2020-01-29 | 에스케이하이닉스 주식회사 | 캐시 메모리 및 이를 포함하는 메모리 시스템, 캐시 메모리의 축출 방법 |
US11086791B2 (en) | 2019-08-29 | 2021-08-10 | Micron Technology, Inc. | Methods for supporting mismatched transaction granularities |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652092A (zh) * | 2003-12-09 | 2005-08-10 | 国际商业机器公司 | 不同高速缓存级上具有关联集重叠同余组的多级高速缓存 |
US20130073812A1 (en) * | 2011-09-16 | 2013-03-21 | Kabushiki Kaisha Toshiba | Cache memory device, processor, and information processing apparatus |
CN103019954A (zh) * | 2011-09-22 | 2013-04-03 | 瑞昱半导体股份有限公司 | 高速缓存装置与高速缓存数据存取方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7395373B2 (en) * | 2005-09-20 | 2008-07-01 | International Business Machines Corporation | Set-associative cache using cache line decay counts and set overflow |
US20070094450A1 (en) * | 2005-10-26 | 2007-04-26 | International Business Machines Corporation | Multi-level cache architecture having a selective victim cache |
US7856532B2 (en) * | 2006-11-03 | 2010-12-21 | Arm Limited | Cache logic, data processing apparatus including cache logic, and a method of operating cache logic |
JP5791529B2 (ja) * | 2012-01-19 | 2015-10-07 | ルネサスエレクトロニクス株式会社 | メモリ制御装置及び制御方法並びに情報処理装置 |
WO2013148872A1 (en) * | 2012-03-28 | 2013-10-03 | Huawei Technologies Co., Ltd. | Concurrently accessed set associative overflow cache |
-
2013
- 2013-08-16 KR KR20130097042A patent/KR20150019788A/ko not_active Application Discontinuation
-
2014
- 2014-07-16 US US14/333,185 patent/US9846647B2/en active Active
- 2014-08-14 CN CN201410400789.XA patent/CN104375955B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652092A (zh) * | 2003-12-09 | 2005-08-10 | 国际商业机器公司 | 不同高速缓存级上具有关联集重叠同余组的多级高速缓存 |
US20130073812A1 (en) * | 2011-09-16 | 2013-03-21 | Kabushiki Kaisha Toshiba | Cache memory device, processor, and information processing apparatus |
CN103019954A (zh) * | 2011-09-22 | 2013-04-03 | 瑞昱半导体股份有限公司 | 高速缓存装置与高速缓存数据存取方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108459970A (zh) * | 2017-02-17 | 2018-08-28 | 华为技术有限公司 | 一种查询缓存信息的方法及装置 |
CN108459970B (zh) * | 2017-02-17 | 2021-02-12 | 华为技术有限公司 | 一种查询缓存信息的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20150052310A1 (en) | 2015-02-19 |
US9846647B2 (en) | 2017-12-19 |
KR20150019788A (ko) | 2015-02-25 |
CN104375955B (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8745334B2 (en) | Sectored cache replacement algorithm for reducing memory writebacks | |
US8688894B2 (en) | Page based management of flash storage | |
US7594067B2 (en) | Enhanced data access in a storage device | |
US9639481B2 (en) | Systems and methods to manage cache data storage in working memory of computing system | |
US9223694B2 (en) | Data storage device and operating method thereof | |
KR20170098187A (ko) | 저장 서브시스템을 위한 연관적 및 원자적 라이트-백 캐싱 시스템 및 방법 | |
US10635581B2 (en) | Hybrid drive garbage collection | |
TW201301030A (zh) | 在一記憶體裝置中減少次要位址表檢查之快速轉譯指示器 | |
US20120297140A1 (en) | Expandable data cache | |
KR102453192B1 (ko) | 다른 캐시에서의 엔트리들의 가용성을 기반으로 한 캐시 엔트리 교체 | |
CN110413211B (zh) | 存储管理方法、电子设备以及计算机可读介质 | |
CN103383672A (zh) | 高速缓存控制以减少事务回滚 | |
US20140223072A1 (en) | Tiered Caching Using Single Level Cell and Multi-Level Cell Flash Technology | |
CN103383666B (zh) | 改善缓存预取数据局部性的方法和系统及缓存访问方法 | |
US20180113815A1 (en) | Cache entry replacement based on penalty of memory access | |
CN104375955A (zh) | 高速缓冲存储器设备及其控制方法 | |
US9792228B2 (en) | Enhancing lifetime of non-volatile cache by injecting random replacement policy | |
CN109478164B (zh) | 用于存储用于高速缓存条目传输的高速缓存位置信息的系统和方法 | |
CN110244906B (zh) | 存储系统及其操作方法 | |
US9959212B2 (en) | Memory system | |
CN110727610B (zh) | 高速缓存存储器、存储系统和高速缓存存储器的逐出方法 | |
WO2015011435A1 (en) | Improving performance of access from multiple processors to a same memory location | |
US11593276B2 (en) | Data caching methods of cache systems | |
US11138125B2 (en) | Hybrid cache memory and method for reducing latency in the same | |
CN109478163B (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 |