CN105988730B - 一种读取缓存数据的方法、旁路装置及缓存系统 - Google Patents

一种读取缓存数据的方法、旁路装置及缓存系统 Download PDF

Info

Publication number
CN105988730B
CN105988730B CN201510093236.9A CN201510093236A CN105988730B CN 105988730 B CN105988730 B CN 105988730B CN 201510093236 A CN201510093236 A CN 201510093236A CN 105988730 B CN105988730 B CN 105988730B
Authority
CN
China
Prior art keywords
grades
data
caching
reuse
bypass
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
CN201510093236.9A
Other languages
English (en)
Other versions
CN105988730A (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.)
Tsinghua University
Huawei Technologies Co Ltd
Original Assignee
Tsinghua University
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 Tsinghua University, Huawei Technologies Co Ltd filed Critical Tsinghua University
Priority to CN201510093236.9A priority Critical patent/CN105988730B/zh
Publication of CN105988730A publication Critical patent/CN105988730A/zh
Application granted granted Critical
Publication of CN105988730B publication Critical patent/CN105988730B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例提供了一种读取缓存数据的方法、旁路装置及缓存系统,其中方法包括:根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定i级缓存和i‑1级缓存间的旁路深度d,其中i是大于或等于3的整数,旁路特征值λ与缓存系统中i级缓存和i‑1级缓存的读写能耗有关;从i级缓存读取数据之前,查询数据的第一重用次数,并将第一重用次数与旁路深度d进行比较;若第一重用次数小于旁路深度d,则从i级缓存读取数据后,将数据写入i‑2级缓存,使所述数据从所述i‑2级缓存逐级加载到一级缓存,以减少读取所述数据所消耗的能量。本发明实施例适用于对称性缓存和非对称性缓存,能降低缓存系统的读写能耗,确保旁路决策能提高缓存系统的读写效率。

Description

一种读取缓存数据的方法、旁路装置及缓存系统
技术领域
本发明涉及存储技术领域,尤其涉及一种读取缓存数据的方法、旁路装置及缓存系统。
背景技术
缓存(Cache)是可以进行高速数据交换的存储器,缓存的出现主要是为了解决CPU运算速率与内存读写速率不匹配的问题。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,由此能够加快读取速率。
缓存通常分为一级高速缓存(L1Cache)、二级高速缓存(L2Cache)或三级高速缓存(L3Cache)。为了改善缓存性能和功耗,现有技术提出一种末级高速缓存旁路的方法,在三级高速缓存中,当CPU想访问的数据A不在一级缓存中时便产生失效,若数据A在第三级高速缓存中,通过记录数据A和数据B的访问顺序决定将数据A与二级缓存的数据B替换,或者旁路数据A,即绕过二级缓存,将数据A直接调入一级缓存。记录访问顺序的方法可通过计算数据的重用距离实现,重用距离是指同一数据的相邻两次访问之间所间隔的数据的访问个数。若数据A在第二次访问时被先访问,例如图1所示,CPU访问数据的顺序如下:DBACGAEFEB,则数据A的重用距离为2,数据B的重用距离为7,说明数据A的重用距离小于数据B的重用距离,则可将数据A与数据B直接替换;若数据B在第二次访问时被先访问,说明数据A的重用距离大于数据B的重用距离,则可直接旁路数据A,将数据A直接调入一级缓存;若数据A与数据B的重用距离都为无穷大,或者数据A与数据B的重用距离相同,则依然直接旁路数据A。
然而,现有技术仅仅根据记录数据的访问顺序来决定是否旁路该数据,而不关心每个访问的数据的重用次数。在数据A的重用距离小于数据B的重用距离的情况下,若数据A的重用次数小于数据B的重用次数,将数据A与数据B直接替换会导致重用次数多的数据B反而被排除,使得旁路效率下降。此外,替换过程中也会带来读写能量的额外开销,导致缓存的性能降低。
发明内容
本发明提供一种读取缓存数据的方法及旁路装置,可提高缓存效率,降低读写操作消耗的能量。
本发明实施例第一方面提供一种读取缓存数据的方法,应用于缓存系统,所述缓存系统包括N级缓存和至少一个旁路装置,所述方法可包括:
根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定所述i级缓存和i-1级缓存间的旁路深度d,其中i是大于或等于3的整数,所述旁路特征值λ与所述缓存系统中所述i级缓存和所述i-1级缓存的读写能耗有关,所述i级缓存中一块数据的重用概率为在所述i级缓存中与所述一块数据的重用次数相同的数据量占所述i级缓存的总数据量的比例,所述旁路深度d表示从所述i级缓存读取所述数据后,当将所述数据写入i-2级缓存所消耗的能量小于将所述数据写入i-1级缓所消耗的能量时,所述数据的最大重用次数;
从所述i级缓存读取数据之前,向所述i级缓存查询所述数据的第一重用次数,并将所述第一重用次数与所述旁路深度d进行比较,其中所述第一重用次数为所述数据放置入所述i级缓存之后在所述i级缓存中被访问的次数;
若所述第一重用次数小于所述旁路深度d,则从所述i级缓存读取所述数据后,将所述数据写入i-2级缓存,使所述数据从所述i-2级缓存逐级加载到一级缓存,以减少读取所述数据所消耗的能量。
结合第一方面,在第一种可能的实现方式中,所述将所述第一重用次数与所述旁路深度d进行比较之后,所述方法还包括:
若所述第一重用次数大于或等于所述旁路深度d,则从所述i级缓存读取所述数据后,将所述数据写入i-1级缓存,使所述数据从所述i-1级缓存逐级加载到所述一级缓存。
结合第一方面,在第二种可能的实现方式中,所述将所述数据写入i-2级缓存之后,所述方法还包括:
统计每个数据的第二重用次数,其中一个数据的第二重用次数为所述一个数据在所述缓存系统的所有缓存层中的总重用次数;
统计第二重用次数大于或等于所述旁路深度d的数据第一数量N≥d、第二重用次数大于或等于d+n的数据的第二数量N≥d+n、以及第二重用次数大于或等于d-m的数据的第三数量N≥d-m,其中n和m为正整数;
根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d,包括:
则将所述旁路深度d至少加1;
则将所述旁路深度d至少减1。
结合第一方面以及第一方面的第一至第三种可能的实现方式中的任一项,在第四种可能的实现方式中,
所述旁路特征值
其中所述Ri为从所述i级缓存读取所述数据所消耗的能量,所述R(i-1)tag为检测所述i-1级缓存未存储有所述数据所消耗的能量,所述Ri-1为从所述i-1级缓存加载所述数据所消耗的能量,所述Wi-1为将所述数据写入所述i-1级缓存所消耗的能量,所述Ri、所述R(i-1)tag、所述Ri-1和所述Wi-1是预先测量的定值。
结合第一方面的第二种可能的实现方式,在第五种可能的实现方式中,所述根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d,具体为:
在每一段时间间隔,根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系判断是否需要调整所述旁路深度d,并在判断结果为“是”时调整所述旁路深度d;
所述方法还包括:
若判断为需要调整所述旁路深度d,则缩短所述时间间隔;
若判断为不需要调整所述旁路深度d,则延长所述时间间隔。
本发明实施例第二方面提供了一种旁路装置,可包括输入装置、输出装置和处理器,其中所述所述处理器用于:
根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定所述i级缓存和i-1级缓存间的旁路深度d,其中i是大于或等于3的整数,所述旁路特征值λ与所述缓存系统中所述i级缓存和所述i-1级缓存的读写能耗有关,所述i级缓存中一块数据的重用概率为在所述i级缓存中与所述一块数据的重用次数相同的数据量占所述i级缓存的总数据量的比例,所述旁路深度d表示从所述i级缓存读取所述数据后,当将所述数据写入i-2级缓存所消耗的能量小于将所述数据写入i-1级缓所消耗的能量时,所述数据的最大重用次数;
从所述i级缓存读取数据之前,向所述i级缓存查询所述数据的第一重用次数,并将所述第一重用次数与所述旁路深度d进行比较,其中所述第一重用次数为所述数据放置入所述i级缓存之后在所述i级缓存中被访问的次数;
当所述第一重用次数小于所述旁路深度d时,从所述i级缓存读取所述数据后,将所述数据写入i-2级缓存,使所述数据从所述i-2级缓存逐级加载到一级缓存,以减少读取所述数据所消耗的能量。
结合第二方面,在第一种可能的实现方式中,将所述第一重用次数与所述旁路深度d进行比较之后,所述处理器还用于:
当所述第一重用次数大于或等于所述旁路深度d时,从所述i级缓存读取所述数据后,将所述数据写入i-1级缓存,使所述数据从所述i-1级缓存逐级加载到所述一级缓存。
结合第二方面,在第二种可能的实现方式中,所述将所述数据写入i-2级缓存之后,所述处理器还用于:
通过计数器统计每个数据的第二重用次数,其中一个数据的第二重用次数为所述一个数据在所述缓存系统的所有缓存层中的总重用次数;
统计第二重用次数大于或等于所述旁路深度d的数据的第一数量N≥d、第二重用次数大于或等于d+n的数据的第二数量N≥d+n、以及第二重用次数大于或等于d-m的数据的第三数量N≥d-m,其中n和m为正整数;
调整模块,用于根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述调整模块,具体用于:
则在所述旁路深度d的预设范围内将所述旁路深度d至少加1;
则在所述旁路深度d的预设范围内将所述旁路深度d至少减1。
结合第二方面以及第二方面的第一至第三种可能的实现方式中的任一项,在第四种可能的实现方式中,
所述旁路特征值
其中所述Ri为从所述i级缓存读取所述数据所消耗的能量,所述R(i-1)tag为检测所述i-1级缓存未存储有所述数据所消耗的能量,所述Ri-1为从所述i-1级缓存加载所述数据所消耗的能量,所述Wi-1为将所述数据写入所述i-1级缓存所消耗的能量,所述Ri、所述R(i-1)tag、所述Ri-1和所述Wi-1是预先测量的定值。
结合第二方面的第二种可能的实现方式,在第五种可能的实现方式中,所述处理器根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d,具体为:
在每一段时间间隔,根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系判断是否需要调整所述旁路深度d,并在所述判断的结果为“是”时调整所述旁路深度d;
所述处理器还用于:
在所述判断的结果为“是”时,缩短所述时间间隔;
在所述判断的结果为“否”时,延长所述时间间隔。
本发明实施例第三方面提供了一种缓存系统,所述缓存系统包括至少一个旁路装置以及N级缓存,其中所述至少一个旁路装置为第二方面以及第二方面的第一至第六种可能的实现方式中任一项所述的旁路装置,用于在处理核心请求从i级缓存读取数据时,决定所述数据从所述i级缓存到一级缓存的路径,其中i和N都是整数并且3≤i≤N。
本发明实施例中,根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定旁路深度d,查询待读取的数据在i级缓存的第一重用次数,如果该数据在i级缓存的第一重用次数小于旁路深度d,则旁路该数据,即从i级缓存读取该数据后,绕开i-1级缓存,直接将该数据写入i-2级缓存。由于旁路特征值λ是结合缓存系统中i级缓存和i-1级缓存的写能耗和读能耗来计算得到的,根据旁路特征值λ确定旁路深度d并结合旁路深度d和数据的第一重用次数进行旁路决策,不仅适用于一般的对称性缓存,还能为非对称缓存提供准确的判断依据以判断将数据旁路是否确实能降低缓存系统的读写能耗,确保旁路决策能提高缓存系统的读写效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中数据的重用距离的示意图;
图2是本发明实施例提供的读取缓存数据的方法的第一实施例流程示意图;
图3是本发明实施例提供的读取缓存数据的方法的第二实施例流程示意图;
图4是本发明实施例的缓存系统中数据被访问时的情况示意图;
图5是本发明实施例提供的旁路装置的第一实施例结构示意图;
图6是本发明实施例提供的缓存系统的第一实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
贯穿本说明书,术语“重用”指的是数据在初始放置入缓存系统之后被访问。
贯穿本说明书,术语“第一重用次数”指的是数据在初始放置入某一缓存层后在该缓存层中被访问的次数。
贯穿本说明书,术语“第二重用次数”指的是数据在初始放置入缓存系统后在该缓存系统的所有缓存层中被访问的次数。
贯穿本说明书,术语“重用概率”指的是在某一缓存层中第一重用次数相同的一些数据占该缓存层中总数据量的比例。
贯穿本说明书,术语“旁路”指的是从低级缓存读取数据时,绕过与该低级缓存相邻的一层或多层较高级缓存,将数据直接写入到更高级的缓存。
贯穿本说明书,术语“旁路特征值”是缓存系统的固有属性,用于计算将数据旁路是否比不旁路所消耗的能量更少。
贯穿本说明书,术语“旁路深度”指的是当数据旁路所消耗的能量少于不旁路所消耗的能量时,该数据的最大重用次数。
贯穿本说明书,术语“读写能耗”指的是缓存系统对数据进行读操作所消耗的能量以及缓存系统对数据进行写操作所消耗的能量。
本发明实施例提供了一种读取缓存数据的方法、旁路装置及缓存系统,可做出正确的旁路决策以提高缓存系统的读写效率。以下将结合附图进行详细说明。
请参阅图2,图2是本发明实施例提供的读取缓存数据的方法的第一实施例流程示意图。该方法由旁路装置执行,可应用于包括N级缓存和至少一个上述旁路装置的缓存系统,如图2所示,该方法可以包括以下步骤。
S200,根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定所述i级缓存和i-1级缓存间的旁路深度d。
其中i和N都是整数并且3≤i≤N,例如在如今应用的大多数缓存系统中,N最多等于3,但随着存储技术的发展,或者在如今的一些的缓存系统中,N也可能大于3,例如N=4。本发明实施例中,旁路深度d表示从所述i级缓存读取所述数据后,当将所述数据写入i-2级缓存所消耗的能量小于将所述数据写入i-1级缓所消耗的能量时,所述数据的最大重用次数。
在一些可行的实施方式中,i级缓存中任意一块数据的重用概率可以用i级缓存中与该块数据的重用次数相同的数据量占i级缓存中总数据量的比例来表示。假设在i级缓存中重用次数为j的数据量占i级缓存总数据量的比例为Pj,j为大于或等于0的整数,则旁路深度d可根据公式得到。
所述旁路特征值λ与所述缓存系统中所述i级缓存和所述i-1级缓存的读写能耗有关。具体地,λ可以根据从i级缓存读取所述数据所需的能量、将所述数据写入i-1级缓存所需的能量、从i-1级缓存至二级缓存取所述数据所需的能量和/或检测确定i-1级缓存至二级缓存都未存储有所述数据所需的能量等参数计算得到。
可选地,本发明实施例中的数据,可以是以块为单位的大小相等的数据块,也可以是以文件为单位的大小不等的数据。
S201,从所述i级缓存读取数据之前,向所述i级缓存查询所述数据的第一重用次数,并将所述第一重用次数与所述旁路深度d进行比较。
本发明实施例中,所述数据的所述第一重用次数为所述数据放置入所述i级缓存之后在所述i级缓存中被访问的次数,所述数据若在其他缓存层中被重用,不计入所述第一重用次数。本发明实施例中,第一重用次数用DRC(Data Reuse count,数据重用计数)来表示。
在一些可行的实施方式中,各缓存层可通过计数器统计每个数据的第一重用次数。当一块数据被初始放置到某一级缓存时,该数据在该级缓存的DRC值为0。此后该数据每在该级缓存中被访问一次,该级缓存的计数器则将该数据的DRC值加1。
当确定了需要从i级缓存读取的数据后,可以向i级缓存层查询该数据在i级缓存中的DRC值,并将该数据的DRC值与旁路深度d进行比较。
S202,若所述第一重用次数小于所述旁路深度d,则从所述i级缓存读取所述数据后,将所述数据写入i-2级缓存,使所述数据从所述i-2级缓存逐级加载到一级缓存,以减少读取所述数据所消耗的能量。
本发明实施例中,旁路深度d是自定义的用于筛选需要旁路的数据的一个参数。当i级缓存中某些数据的DRC值小于旁路深度d时,认为将该数据旁路更加节能,即读取该数据所花的代价更小,此时可作出旁路决策:从i级缓存读取该数据后应将该数据直接写入i-2级缓存。本发明实施例中,旁路表示数据绕过某一级缓存直接写入到更高级的缓存,例如从三级缓存读取的数据绕过二级缓存而直接写入到一级缓存。
具体实施中,将数据写入i-2级缓存之后,该数据可以从i-2级缓存逐级加载到一级缓存(即按照i-2、i-3、……1的顺序逐级加载),处理核心最终从一级缓存读取该数据。
考虑到对一些缓存器而言,读操作和写操作的所花的代价是不一样的,例如非易失存储技术中,写操作的延迟和能耗是读操作的数倍,而旁路特征值λ是结合缓存系统中一些缓存级的写能耗和读能耗来计算得到的,根据旁路特征值λ确定旁路深度d,能更加准确地判断一些数据是否旁路能更加节能。
本发明实施例中,根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定旁路深度d,查询待读取的数据在i级缓存的第一重用次数,如果该数据在i级缓存的第一重用次数小于旁路深度d,则旁路该数据,即从i级缓存读取该数据后,绕开i-1级缓存,直接将该数据写入i-2级缓存。由于旁路特征值λ是结合缓存系统中i级缓存和i-1级缓存的写能耗和读能耗来计算得到的,根据旁路特征值λ确定旁路深度d并结合旁路深度d和数据的第一重用次数进行旁路决策,不仅适用于一般的对称性缓存,还能为非对称缓存提供准确的判断依据以判断将数据旁路是否确实能降低缓存系统的读写能耗,确保旁路决策能提高缓存系统的读写效率。
请参阅图3,图3是本发明实施例提供的读取缓存数据的方法的第二实施例流程示意图。该方法由旁路装置执行,可应用于包括N级缓存和至少一个上述旁路装置的缓存系统,如图3所示,该方法可以包括以下步骤。
S300,根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定所述i级缓存和i-1级缓存间的旁路深度d。
其中i和N都是整数并且3≤i≤N,例如在如今应用的大多数缓存系统中,i最多等于3,但随着存储技术的发展,或者在如今的一些缓存系统中,i也可能大于3,例如i=4。本发明实施例中,旁路深度d表示从所述i级缓存读取所述数据后,当将所述数据写入i-2级缓存所消耗的能量小于将所述数据写入i-1级缓所消耗的能量时,所述数据的最大重用次数。
在一些可行的实施方式中,i级缓存中任意一块数据的重用概率可以用i级缓存中与该块数据的重用次数相同的数据量占i级缓存中总数据量的比例来表示。假设在i级缓存中重用次数为j的数据量占i级缓存总数据量的比例为Pj,j为大于或等于0的整数,则旁路深度d可根据公式得到。
所述旁路特征值λ与所述缓存系统中所述i级缓存和所述i-1级缓存的读写能耗有 关。具体地,λ可以根据从i级缓存读取所述数据所需的能量、将所述数据写入i-1级缓存所 需的能量、从i-1级缓存至二级缓存取所述数据所需的能量和/或检测确定i-1级缓存至二 级缓存都未存储有所述数据所需的能量等参数计算得到。在一些可行的实施方式中,所述 旁路特征值λ可以根据公式计算得到。
其中所述Ri为从所述i级缓存读取所述数据所消耗的能量,所述R(i-1)tag为检测所述i-1级缓存未存储有所述数据所消耗的能量,所述Ri-1为从所述i-1级缓存加载所述数据所消耗的能量,所述Wi-1为将所述数据写入所述i-1级缓存所消耗的能量,所述Ri、所述R(i-1)tag、所述Ri-1和所述Wi-1是预先测量的定值。
可选地,本发明实施例中的数据,可以是以块为单位的大小相等的数据块,也可以是以文件为单位的大小不等的数据。
S301,从所述i级缓存读取数据之前,向所述i级缓存查询所述数据的第一重用次数,并将所述第一重用次数与所述旁路深度d进行比较。
可选地,步骤S301的具体实施方式可以参照图2所示实施例中的步骤S201,在此不赘述。
S302,若所述第一重用次数小于所述旁路深度d,则从所述i级缓存读取所述数据后,将所述数据写入i-2级缓存,使所述数据从所述i-2级缓存逐级加载到一级缓存,以减少读取所述数据所消耗的能量。
可选地,步骤S302的具体实施方式可以参照图2所示实施例中的步骤S202,在此不赘述。
S303,若所述第一重用次数大于或等于所述旁路深度d,则从所述i级缓存读取所述数据后,将所述数据写入i-1级缓存,使所述数据从所述i-1级缓存逐级加载到所述一级缓存。
本发明实施例中,若i级缓存中待读取的数据的DRC值大于或等于旁路深度d,可认为将该数据旁路并不能减少缓存系统的能量消耗,此时做出的决策是:将从i级缓存读取的数据写入i-i级缓存,然后从i-1级缓存加载到i-2级缓存,逐级加载,直到最后将该数据写入一级缓存。
S304,统计每个数据的第二重用次数,其中一个数据的第二重用次数为所述一个数据在所述缓存系统的所有缓存层中的总重用次数。
具体实施中,可通过计数器统计每个数据的第二重用次数。当一个数据初始放置入缓存系统时,其第二重用次数为0,此后该数据每被访问一次,其第二重用次数加1。第二重用次数为该数据在缓存系统的所有缓存层中被访问的次数。
S305,在每一段时间间隔,统计第二重用次数大于或等于所述旁路深度d的数据的第一数量N≥d、第二重用次数大于或等于d+n的数据的第二数量N≥d+n、以及第二重用次数大于或等于d-m的数据的第三数量N≥d-m,其中n和m为正整数。
在一些可行的实施方式中,可以通过3个计数器,在每一段时间间隔内分别统计一次整个缓存系统中第二重用次数大于或等于旁路深度d的数据的第一数量N≥d、第二重用次数大于或等于d+n的数据的第二数量N≥d+n以及第二重用次数大于或等于d-m的数据的第三数量N≥d-m。可选地,所述一段时间间隔的长度可以在10ks~100ks范围内变化。
请一并参阅图4,下面将结合图4举例说明缓存系统中数据被访问时的情况。如图4所示,假设三级缓存L3和二级缓存L2之间的旁路深度d=2,n和m都等于1。
(a)初始状态下,三级缓存L3中各数据的第一重用次数DRC都为0,第一数量N≥d、第二数量N≥d+n和第三数量N≥d-m均为0。
(b)处理核心第一次请求访问数据C,由于C的第一重用次数小于旁路深度d,数据C从L2旁路,直接传输给一级缓存L1。之后数据C的第一重用次数变为DRC=1。
(c)处理核心第一次请求访问数据D,由于D的第一重用次数小于旁路深度d,数据D从L2旁路,直接传输给L1。之后数据D的第一重用次数变为DRC=1。
(d)处理核心第二次请求访问数据C,此时C的第一重用次数DRC=1,仍然小于旁路深度d,数据C从L2旁路,直接传输给L1。由于有1个数据(数据C)的第二重用次数大于或等于d-m,第三数量N≥d-m加1,之后数据C的第一重用次数变为DRC=2。
(e)处理核心第二次请求访问数据D,此时D的第一重用次数DRC=1,仍然小于旁路深度d,数据D从L2旁路,直接传输给L1。由于多了1个数据(数据D)的第二重用次数大于或等于d-m,第三数量N≥d-m再加1,之后数据D的第一重用次数变为DRC=2。
(f)处理核心第三次请求访问数据C,此时C的第一重用次数DRC等于旁路深度2,数据C先传输到L2,再从L2传输到L1。由于有1个数据(数据C)的第二重用次数大于或等于d,第一数量N≥d加1。之后可以删除L3中的数据C,将数据C替换到L2,同时L2中数据C的第一重用次数DRC=0。
(g)处理核心第三次请求访问数据D,此时D的第一重用次数DRC等于旁路深度2,数据D先传输到L2,再从L2传输到L1。由于多了1个数据(数据D)的第二重用次数大于或等于d,第一数量N≥d再加1,之后可以删除L3中的数据D,将数据D替换到L2,同时L2中数据D的第一重用次数DRC=0。
(h)处理核心第四次请求访问数据C,数据C从L2传输给L1,之后L2中数据C的第一重用次数DRC=1,第二数量N≥d+n加1。
(i)处理核心第五次请求访问数据C,数据C从L2传输给L1,L2中数据C的第一重用次数和第二数量N≥d+n均保持不变。
S306,在每一段时间间隔,根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系判断是否需要调整所述旁路深度d,若判断结果为是,转到S307,否则转到S309。
具体实施中,旁路深度d与各数据的重用概率有关,随着数据的重用概率的变化,旁路深度d也应适当进行调整。可选地,每次统计完第一数量N≥d、第二数量N≥d+n和第三数量N≥d-m之后,可以判断是否需要调整旁路深度d。调整旁路深度d的原则是:随着各数据的重用概率发生变化,若加大旁路深度d的值可以进一步减小缓存系统的读写能耗时,则加大旁路深度d的值,若当前的旁路深度d已经不能减小缓存系统的读写能耗,则减小旁路深度d的值。
具体地,可以判断是否大于λ,若是,则认为应该增大旁路深度d;此外还可以判断是否小于λ,若是,则认为应该减小旁路深度d。
n和m都是正整数,可选地,n和m可以都等于1。
S307,调整所述旁路深度d。
具体实施中,调整所述旁路深度d可包括:
则在所述旁路深度d的预设范围内将所述旁路深度d至少加1;
则在所述旁路深度d的预设范围内将所述旁路深度d至少减1。
具体实施中,在所述旁路深度d的预设范围内,对所述旁路深度d的调整幅度可以自由设定,旁路深度d的预设范围也可以自由设定。在一些可行的实施方式总,可以设定旁路深度d的预设范围为1≤d≤220
S308,缩短所述时间间隔。
具体实现中,若旁路深度d在一段时间内发生了变化,说明i级缓存中各数据的重用概率可能经常发生变化,为了适应各数据的重用概率的变化及时调整旁路深度d,可适当缩短上述时间间隔,从而增加判断是否要调整旁路深度d的次数。
在一些可行的实施方式中,每次缩短所述时间间隔时,可以按比例缩短所述时间间隔,例如,若原有的时间间隔为215s,若需要缩短所述时间间隔,可以缩短为214s。在另一些可行的实施方式中,还可以按照预先设置好的时间长度缩短所述时间间隔,例如每次缩短10s。具体实施中,上述时间间隔的变化可控制在一定范围内,不会无限地缩短。
S309,延长所述时间间隔。
具体实现中,若旁路深度d在一段时间内没有发生变化,说明i级缓存中各数据的重用概率在当前时间段内比较稳定,此时无需频繁地调整旁路深度d,因此可以延长所述时间间隔以减少判断是否要调整旁路深度d的频率。
在一些可行的实施方式中,每次延长所述时间间隔时,可以按比例延长所述时间间隔,例如,若原有的时间间隔为215s,若需要延长所述时间间隔,可以延长为216s。在另一些可行的实施方式中,还可以按照预先设置好的时间长度延长所述时间间隔,例如每次延长10s。具体实施中,上述时间间隔的变化可控制在一定范围内,不会无限地延长。
本发明实施例中,根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定旁路深度d,查询待读取的数据在i级缓存的第一重用次数,如果该数据在i级缓存的第一重用次数小于旁路深度d,则从i级缓存读取该数据后,绕开i-1级缓存,直接将该数据写入i-2级缓存;如果该数据在i级缓存的第一重用次数小于旁路深度d,则逐级加载所述数据。由于旁路特征值λ是结合缓存系统中i级缓存和i-1级缓存的写能耗和读能耗来计算得到的,根据旁路特征值λ确定旁路深度d并结合旁路深度d和数据的第一重用次数进行旁路决策,不仅适用于一般的对称性缓存,还能为非对称缓存提供准确的判断依据以判断将数据旁路是否确实能降低缓存系统的读写能耗,确保旁路决策能提高缓存系统的读写效率。此外,本发明实施例还可随数据的重用概率的变化调整旁路深度d,并根据旁路深度d的变化改变其调整频率,使旁路深度d能自适应调整,无论缓存系统的数据访问情况如何改变,都能做出正确的旁路决策。
参阅图5,为本发明实施例提供的旁路装置的第一实施例结构示意图。所述旁路装置可应用于缓存系统,所述缓存系统包括N级缓存和至少一个所述旁路装置。如图5所示,所述旁路装置可包括输入装置501、输出装置502和处理器503,其中所述输入装置501、所述输出装置502和所述处理器503可通过总线或其他方式进行连接,本发明实施例以通过总线连接为例进行说明。
所述输入装置501可用于接收用户或其他设备输入的指令或数据。
所述输出装置502可用于将指令或数据输出给其他设备,例如输出指令给缓存系统中的各级缓存。
所述处理器503可用于:
根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定所述i级缓存和i-1级缓存间的旁路深度d。
其中i和N都是整数并且3≤i≤N,例如在如今应用的大多数缓存系统中,N最多等于3,但随着存储技术的发展,或者在如今的一些的缓存系统中,N也可能大于3,例如N=4。本发明实施例中,旁路深度d表示从所述i级缓存读取所述数据后,当将所述数据写入i-2级缓存所消耗的能量小于将所述数据写入i-1级缓所消耗的能量时,所述数据的最大重用次数。
在一些可行的实施方式中,i级缓存中任意一块数据的重用概率可以用i级缓存中与该块数据的重用次数相同的数据量占i级缓存中总数据量的比例来表示。假设在i级缓存中重用次数为j的数据量占i级缓存总数据量的比例为Pj,j为大于或等于0的整数,则旁路深度d可根据公式推导得到。
所述旁路特征值λ与所述缓存系统中所述i级缓存和所述i-1级缓存的读写能耗有关。具体地,λ可以根据从i级缓存读取所述数据所需的能量、将所述数据写入i-1级缓存所需的能量、从i-1级缓存至二级缓存取所述数据所需的能量和/或检测确定i-1级缓存至二级缓存都未存储有所述数据所需的能量等参数计算得到。
可选地,本发明实施例中的数据,可以是以块为单位的大小相等的数据块,也可以是以文件为单位的大小不等的数据。
处理器503还用于在从所述i级缓存读取数据之前,向所述i级缓存查询所述数据的第一重用次数,并将所述第一重用次数与所述旁路深度d进行比较,其中所述第一重用次数为所述数据放置入所述i级缓存之后在所述i级缓存中被访问的次数。
本发明实施例中,所述数据的所述第一重用次数为所述数据放置入所述i级缓存之后在所述i级缓存中被访问的次数,所述数据若在其他缓存层中被重用,不计入所述第一重用次数。本发明实施例中,第一重用次数用DRC(Data Reuse count,数据重用计数)来表示。
在一些可行的实施方式中,各缓存层可通过计数器统计每个数据的第一重用次数。当一块数据被初始放置到某一级缓存时,该数据在该级缓存的DRC值为0。此后该数据每在该级缓存中被访问一次,该级缓存的计数器则将该数据的DRC值加1。
当确定了需要从i级缓存读取的数据后,可以向i级缓存层查询该数据在i级缓存中的DRC值,并将该数据的DRC值与旁路深度d进行比较。
处理器503还用于当所述第一重用次数小于所述旁路深度d时,从所述i级缓存读取所述数据后,将所述数据写入i-2级缓存,使所述数据从所述i-2级缓存逐级加载到一级缓存,以减少读取所述数据所消耗的能量。
本发明实施例中,旁路深度d是自定义的用于筛选需要旁路的数据的一个参数。当i级缓存中某些数据的DRC值小于旁路深度d时,认为将该数据旁路更加节能,即读取该数据所花的代价更小,此时决策模块403可做出旁路决策:从i级缓存读取该数据后应将该数据直接写入i-2级缓存。本发明实施例中,旁路表示数据绕过某一级缓存直接写入到更高级的缓存,例如从三级缓存读取的数据绕过二级缓存而直接写入到一级缓存。
具体实施中,将数据写入i-2级缓存之后,该数据可以从i-2级缓存逐级加载到一级缓存(即按照i-2、i-3、……1的顺序逐级加载),处理核心最终从一级缓存读取该数据。
考虑到对一些缓存器而言,读操作和写操作的所花的代价是不一样的,例如非易失存储技术中,写操作的延迟和能耗是读操作的数倍,而旁路特征值λ是结合缓存系统中一些缓存级的写能耗和读能耗来计算得到的,根据旁路特征值λ确定旁路深度d,能更加准确地判断一些数据是否旁路能更加节能。
本发明实施例中,根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定旁路深度d,查询待读取的数据在i级缓存的第一重用次数,如果该数据在i级缓存的第一重用次数小于旁路深度d,则旁路该数据,即从i级缓存读取该数据后,绕开i-1级缓存,直接将该数据写入i-2级缓存。由于旁路特征值λ是结合缓存系统中i级缓存和i-1级缓存的写能耗和读能耗来计算得到的,根据旁路特征值λ确定旁路深度d并结合旁路深度d和数据的第一重用次数进行旁路决策,不仅适用于一般的对称性缓存,还能为非对称缓存提供准确的判断依据以判断将数据旁路是否确实能降低缓存系统的读写能耗,确保旁路决策能提高缓存系统的读写效率。
在一些可行的实施方式中,旁路特征值λ可以根据公式计算得到。
其中所述Ri为从所述i级缓存读取所述数据所消耗的能量,所述R(i-1)tag为检测所述i-1级缓存未存储有所述数据所消耗的能量,所述Ri-1为从所述i-1级缓存加载所述数据所消耗的能量,所述Wi-1为将所述数据写入所述i-1级缓存所消耗的能量,所述Ri、所述R(i-1)tag、所述Ri-1和所述Wi-1是预先测量的定值。
在一些可行的实施方式中,处理器503将第一重用次数与旁路深度d进行比较之后,还可以执行如下操作:
当所述第一重用次数大于或等于所述旁路深度d时,从所述i级缓存读取所述数据后,将所述数据写入i-1级缓存,使所述数据从所述i-1级缓存逐级加载到所述一级缓存。
本发明实施例中,若i级缓存中待读取的数据的DRC值大于或等于旁路深度d,可认为将该数据旁路并不能减少缓存系统的能量消耗,此时做出的决策是:将从i级缓存读取的数据写入i-i级缓存,然后从i-1级缓存加载到i-2级缓存,逐级加载,直到最后将该数据写入一级缓存。
在一些可行的实施方式中,处理器503将数据从i级缓存加载到i-2级缓存或i-1级缓存之后,还可以执行如下操作:
通过计数器统计每个数据的第二重用次数,其中一个数据的第二重用次数为所述一个数据在所述缓存系统的所有缓存层中的总重用次数。
统计第二重用次数大于或等于所述旁路深度d的数据的第一数量N≥d、第二重用次数大于或等于d+n的数据的第二数量N≥d+n、以及第二重用次数大于或等于d-m的数据的第三数量N≥d-m,其中n和m为正整数。
根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d。
具体实施中,可通过计数器统计每个数据的第二重用次数。当一个数据初始放置入缓存系统时,其第二重用次数为0,此后该数据每被访问一次,其第二重用次数加1。第二重用次数为该数据在缓存系统的所有缓存层中被访问的次数。
在一些可行的实施方式中,可以通过3个计数器,在每一段时间间隔内分别统计一次整个缓存系统中第二重用次数大于或等于旁路深度d的数据的第一数量N≥d、第二重用次数大于或等于d+n的数据的第二数量N≥d+n以及第二重用次数大于或等于d-m的数据的第三数量N≥d-m。可选地,所述一段时间间隔的长度可以在10ks~100ks范围内变化。
在一些可行的实施方式中,处理器503根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d,具体为:
在每一段时间间隔,根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系判断是否需要调整所述旁路深度d,并在所述判断的结果为“是”时调整所述旁路深度d;
具体实施中,旁路深度d与各数据的重用概率有关,随着数据的重用概率的变化,旁路深度d也应适当进行调整。可选地,每次统计完第一数量N≥d、第二数量N≥d+n和第三数量N≥d-m之后,可以判断是否需要调整旁路深度d。调整旁路深度d的原则是:随着各数据的重用概率发生变化,若加大旁路深度d的值可以进一步减小缓存系统的读写能耗时,则加大旁路深度d的值,若当前的旁路深度d已经不能减小缓存系统的读写能耗,则减小旁路深度d的值。
具体地,可以判断是否大于λ,若是,则认为应该增大旁路深度d;此外还可以判断是否小于λ,若是,则认为应该减小旁路深度d。
n和m都是正整数,可选地,n和m可以都等于1。
具体实施中,在一些可行的实施方式中,处理器503根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d,可包括:
则在所述旁路深度d的预设范围内将所述旁路深度d至少加1;
则在所述旁路深度d的预设范围内将所述旁路深度d至少减1。
具体实施中,在所述旁路深度d的预设范围内,对所述旁路深度d的调整幅度可以自由设定,旁路深度d的预设范围也可以自由设定。在一些可行的实施方式总,可以设定旁路深度d的预设范围为1≤d≤220
处理器503还用于:
在所述判断的结果为“是”时,缩短所述时间间隔;
在所述判断的结果为“否”时,延长所述时间间隔。
具体实现中,若旁路深度d在一段时间内发生了变化,说明i级缓存中各数据的重用概率可能经常发生变化,为了适应各数据的重用概率的变化及时调整旁路深度d,可适当缩短上述时间间隔,从而增加判断是否要调整旁路深度d的次数。
在一些可行的实施方式中,每次缩短所述时间间隔时,可以按比例缩短所述时间间隔,例如,若原有的时间间隔为215s,若需要缩短所述时间间隔,可以缩短为214s。在另一些可行的实施方式中,还可以按照预先设置好的时间长度缩短所述时间间隔,例如每次缩短10s。具体实施中,上述时间间隔的变化可控制在一定范围内,不会无限地缩短。
具体实现中,若旁路深度d在一段时间内没有发生变化,说明i级缓存中各数据的重用概率在当前时间段内比较稳定,此时无需频繁地调整旁路深度d,因此可以延长所述时间间隔以减少判断是否要调整旁路深度d的频率。
在一些可行的实施方式中,每次延长所述时间间隔时,可以按比例延长所述时间间隔,例如,若原有的时间间隔为215s,若需要延长所述时间间隔,可以延长为216s。在另一些可行的实施方式中,还可以按照预先设置好的时间长度延长所述时间间隔,例如每次延长10s。具体实施中,上述时间间隔的变化可控制在一定范围内,不会无限地延长。
本发明实施例中,根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定旁路深度d,查询待读取的数据在i级缓存的第一重用次数,如果该数据在i级缓存的第一重用次数小于旁路深度d,则从i级缓存读取该数据后,绕开i-1级缓存,直接将该数据写入i-2级缓存;如果该数据在i级缓存的第一重用次数小于旁路深度d,则逐级加载所述数据。由于旁路特征值λ是结合缓存系统中i级缓存和i-1级缓存的写能耗和读能耗来计算得到的,根据旁路特征值λ确定旁路深度d并结合旁路深度d和数据的第一重用次数进行旁路决策,不仅适用于一般的对称性缓存,还能为非对称缓存提供准确的判断依据以判断将数据旁路是否确实能降低缓存系统的读写能耗,确保旁路决策能提高缓存系统的读写效率。此外,本发明实施例还可随数据的重用概率的变化调整旁路深度d,并根据旁路深度d的变化改变其调整频率,使旁路深度d能自适应调整,无论缓存系统的数据访问情况如何改变,都能做出正确的旁路决策。
参阅图6,为本发明实施例提供的缓存系统的第一实施例结构示意图。如图6所示,该缓存系统可包括至少一个旁路装置601以及N级缓存602,其中所述至少一个旁路装置601为图5所示实施例中所描述的旁路装置,用于在处理核心请求从所述至少i级缓存读取数据时,决定所述数据从所述i级缓存层到一级缓存的路径,其中i和N都是整数并且3≤i≤N。
根据图5所示实施例的相关描述,可知本发明实施例的缓存系统,根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定旁路深度d,查询待读取的数据在i级缓存的第一重用次数,如果该数据在i级缓存的第一重用次数小于旁路深度d,则旁路该数据,即从i级缓存读取该数据后,绕开i-1级缓存,直接将该数据写入i-2级缓存。由于旁路特征值λ是结合缓存系统中i级缓存和i-1级缓存的写能耗和读能耗来计算得到的,根据旁路特征值λ确定旁路深度d并结合旁路深度d和数据的第一重用次数进行旁路决策,不仅适用于一般的对称性缓存,还能为非对称缓存提供准确的判断依据以判断将数据旁路是否确实能降低缓存系统的读写能耗,确保旁路决策能提高缓存系统的读写效率。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例装置中的模块或单元可以根据实际需要进行合并、划分和删减。
本发明实施例的模块或单元,可以以通用集成电路(如中央处理器CPU),或以专用集成电路(ASIC)来实现。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。

Claims (13)

1.一种读取缓存数据的方法,其特征在于,应用于缓存系统,所述缓存系统包括N级缓存和至少一个旁路装置,所述方法包括:
根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定所述i级缓存和i-1级缓存间的旁路深度d,其中i和N都是整数并且3≤i≤N,所述旁路特征值λ与所述缓存系统中所述i级缓存和所述i-1级缓存的读写能耗有关,所述i级缓存中一块数据的重用概率为在所述i级缓存中与所述一块数据的重用次数相同的数据量占所述i级缓存的总数据量的比例,所述旁路深度d表示从所述i级缓存读取所述i级缓存的数据后,当将所述i级缓存的数据写入i-2级缓存所消耗的能量小于将所述i级缓存的数据写入i-1级缓所消耗的能量时,所述i级缓存的数据的最大重用次数;
从所述i级缓存读取数据之前,向所述i级缓存查询所述i级缓存的数据的第一重用次数,并将所述第一重用次数与所述旁路深度d进行比较,其中所述第一重用次数为所述i级缓存的数据放置入所述i级缓存之后在所述i级缓存中被访问的次数;
若所述第一重用次数小于所述旁路深度d,则从所述i级缓存读取所述i级缓存的数据后,将所述i级缓存的数据写入i-2级缓存,使所述i级缓存的数据从所述i-2级缓存逐级加载到一级缓存,以减少读取所述i级缓存的数据所消耗的能量。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一重用次数与所述旁路深度d进行比较之后,所述方法还包括:
若所述第一重用次数大于或等于所述旁路深度d,则从所述i级缓存读取所述i级缓存的数据后,将所述i级缓存的数据写入i-1级缓存,使所述i级缓存的数据从所述i-1级缓存逐级加载到所述一级缓存。
3.根据权利要求1所述的方法,其特征在于,所述将所述i级缓存的数据写入i-2级缓存之后,所述方法还包括:
统计每个数据的第二重用次数,其中一个数据的第二重用次数为所述一个数据在所述缓存系统的所有缓存层中的总重用次数;
统计第二重用次数大于或等于所述旁路深度d的数据的第一数量N≥d、第二重用次数大于或等于d+n的数据的第二数量N≥d+n、以及第二重用次数大于或等于d-m的数据的第三数量N≥d-m,其中n和m为正整数;
根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d,包括:
则在所述旁路深度d的预设范围内将所述旁路深度d至少加1;
则在所述旁路深度d的预设范围内将所述旁路深度d至少减1。
5.根据权利要求1或4任一项所述的方法,其特征在于:
所述旁路特征值
其中所述Ri为从所述i级缓存读取所述i级缓存的数据所消耗的能量,所述R(i-1)tag为检测所述i-1级缓存未存储有所述i级缓存的数据所消耗的能量,所述Ri-1为从所述i-1级缓存加载所述i级缓存的数据所消耗的能量,所述Wi-1为将所述i级缓存的数据写入所述i-1级缓存所消耗的能量,所述Ri、所述R(i-1)tag、所述Ri-1和所述Wi-1是预先测量的定值。
6.根据权利要求3所述的方法,其特征在于,所述根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d,具体为:
在每一段时间间隔,根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系判断是否需要调整所述旁路深度d,并在判断结果为“是”时,调整所述旁路深度d;
所述方法还包括:
若判断为需要调整所述旁路深度d,则缩短所述时间间隔;
若判断为不需要调整所述旁路深度d,则延长所述时间间隔。
7.一种旁路装置,其特征在于,应用于缓存系统,所述缓存系统包括N级缓存和至少一个所述旁路装置,所述旁路装置包括输入装置、输出装置和处理器,其中所述处理器用于:
根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定所述i级缓存和i-1级缓存间的旁路深度d,其中i和N都是整数并且3≤i≤N,所述旁路特征值λ与所述缓存系统中所述i级缓存和所述i-1级缓存的读写能耗有关,所述i级缓存中一块数据的重用概率为在所述i级缓存中与所述一块数据的重用次数相同的数据量占所述i级缓存的总数据量的比例,所述旁路深度d表示从所述i级缓存读取所述i级缓存的数据后,当将所述i级缓存的数据写入i-2级缓存所消耗的能量小于将所述i级缓存的数据写入i-1级缓所消耗的能量时,所述i级缓存的数据的最大重用次数;
从所述i级缓存读取数据之前,向所述i级缓存查询所述i级缓存的数据的第一重用次数,并将所述第一重用次数与所述旁路深度d进行比较,其中所述第一重用次数为所述i级缓存的数据放置入所述i级缓存之后在所述i级缓存中被访问的次数;
当所述第一重用次数小于所述旁路深度d时,从所述i级缓存读取所述i级缓存的数据后,将所述i级缓存的数据写入i-2级缓存,使所述i级缓存的数据从所述i-2级缓存逐级加载到一级缓存,以减少读取所述i级缓存的数据所消耗的能量。
8.根据权利要求7所述的旁路装置,其特征在于,将所述第一重用次数与所述旁路深度d进行比较之后,所述处理器还用于:
当所述第一重用次数大于或等于所述旁路深度d时,从所述i级缓存读取所述i级缓存的数据后,将所述i级缓存的数据写入i-1级缓存,使所述i级缓存的数据从所述i-1级缓存逐级加载到所述一级缓存。
9.根据权利要求7所述的旁路装置,其特征在于,所述将所述i级缓存的数据写入i-2级缓存之后,所述处理器还用于:
通过计数器统计每个数据的第二重用次数,其中一个数据的第二重用次数为所述一个数据在所述缓存系统的所有缓存层中的总重用次数;
统计第二重用次数大于或等于所述旁路深度d的数据的第一数量N≥d、第二重用次数大于或等于d+n的数据的第二数量N≥d+n、以及第二重用次数大于或等于d-m的数据的第三数量N≥d-m,其中n和m为正整数;
根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d。
10.根据权利要求9所述的旁路装置,其特征在于,所述处理器根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d,包括:
则在所述旁路深度d的预设范围内将所述旁路深度d至少加1;
则在所述旁路深度d的预设范围内将所述旁路深度d至少减1。
11.根据权利要求7-10任一项所述的旁路装置,其特征在于:
所述旁路特征值
其中所述Ri为从所述i级缓存读取所述i级缓存的数据所消耗的能量,所述R(i-1)tag为检测所述i-1级缓存未存储有所述i级缓存的数据所消耗的能量,所述Ri-1为从所述i-1级缓存加载所述i级缓存的数据所消耗的能量,所述Wi-1为将所述i级缓存的数据写入所述i-1级缓存所消耗的能量,所述Ri、所述R(i-1)tag、所述Ri-1和所述Wi-1是预先测量的定值。
12.根据权利要求9所述的旁路装置,其特征在于,所述处理器根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系调整所述旁路深度d,具体为:
在每一段时间间隔,根据所述第一数量N≥d、所述第二数量N≥d+n和所述第三数量N≥d-m之间的比例关系判断是否需要调整所述旁路深度d,并在所述判断的结果为“是”时调整所述旁路深度d;
所述处理器还用于:
在所述判断的结果为“是”时,缩短所述时间间隔;
在所述判断的结果为“否”时,延长所述时间间隔。
13.一种缓存系统,其特征在于,所述缓存系统包括至少一个旁路装置以及N级缓存,其中所述至少一个旁路装置为如权利要求7-12任一项所述的旁路装置,用于在处理核心请求从i级缓存读取数据时,决定所述数据从所述i级缓存到一级缓存的路径,其中i和N都是整数并且3≤i≤N。
CN201510093236.9A 2015-03-02 2015-03-02 一种读取缓存数据的方法、旁路装置及缓存系统 Expired - Fee Related CN105988730B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510093236.9A CN105988730B (zh) 2015-03-02 2015-03-02 一种读取缓存数据的方法、旁路装置及缓存系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510093236.9A CN105988730B (zh) 2015-03-02 2015-03-02 一种读取缓存数据的方法、旁路装置及缓存系统

Publications (2)

Publication Number Publication Date
CN105988730A CN105988730A (zh) 2016-10-05
CN105988730B true CN105988730B (zh) 2019-03-08

Family

ID=57038035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510093236.9A Expired - Fee Related CN105988730B (zh) 2015-03-02 2015-03-02 一种读取缓存数据的方法、旁路装置及缓存系统

Country Status (1)

Country Link
CN (1) CN105988730B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11113207B2 (en) * 2018-12-26 2021-09-07 Samsung Electronics Co., Ltd. Bypass predictor for an exclusive last-level cache
CN112540933A (zh) * 2020-11-26 2021-03-23 华云数据控股集团有限公司 缓存读写方法、装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356980B1 (en) * 1999-11-09 2002-03-12 International Business Machines Corporation Method and system for bypassing cache levels when casting out from an upper level cache
US6728823B1 (en) * 2000-02-18 2004-04-27 Hewlett-Packard Development Company, L.P. Cache connection with bypassing feature
CN102110073A (zh) * 2011-02-01 2011-06-29 中国科学院计算技术研究所 一种片上共享高速缓存的替换装置和方法以及相应处理器
CN102662863A (zh) * 2012-03-22 2012-09-12 北京北大众志微系统科技有限责任公司 粗粒度的末级高速缓存旁路方法
CN104346294A (zh) * 2013-07-31 2015-02-11 华为技术有限公司 基于多级缓存的数据读/写方法、装置和计算机系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356980B1 (en) * 1999-11-09 2002-03-12 International Business Machines Corporation Method and system for bypassing cache levels when casting out from an upper level cache
US6728823B1 (en) * 2000-02-18 2004-04-27 Hewlett-Packard Development Company, L.P. Cache connection with bypassing feature
CN102110073A (zh) * 2011-02-01 2011-06-29 中国科学院计算技术研究所 一种片上共享高速缓存的替换装置和方法以及相应处理器
CN102662863A (zh) * 2012-03-22 2012-09-12 北京北大众志微系统科技有限责任公司 粗粒度的末级高速缓存旁路方法
CN104346294A (zh) * 2013-07-31 2015-02-11 华为技术有限公司 基于多级缓存的数据读/写方法、装置和计算机系统

Also Published As

Publication number Publication date
CN105988730A (zh) 2016-10-05

Similar Documents

Publication Publication Date Title
US11483129B2 (en) Method and apparatus for reaching blockchain consensus
CN108829350A (zh) 基于区块链的数据迁移方法和装置
US9031826B2 (en) Method and apparatus for simulating operation in a data processing system
US20100030877A1 (en) Virtual server system and physical server selecting method
CN103368867B (zh) 高速缓存经网络与辅助站点通信的对象的方法和系统
CN103514046B (zh) 一种虚拟机放置方法及集群管理服务器
CN106648456A (zh) 基于用户访问量以及预测机制的动态副本文件访问方法
US7398489B2 (en) Advanced standard cell power connection
CN106445629A (zh) 一种负载均衡的方法及其装置
CN108182508A (zh) 一种电动汽车充电站规划的方法及系统
US9189512B2 (en) Device and method for acquiring resource lock
CN103399781B (zh) 云服务器及其虚拟机管理方法
CN107851042A (zh) 使用命令流提示来表征gpu工作负载和电力管理
CN107515663A (zh) 调整中央处理器内核运行频率的方法和装置
CN110096350B (zh) 基于集群节点负载状态预测的冷热区域划分节能存储方法
CN103500213B (zh) 基于预读取的页面热点资源更新方法和装置
CN103150245B (zh) 确定数据实体的访问特性的方法和存储控制器
CN104699629B (zh) 共享片上缓存划分装置
CN105988730B (zh) 一种读取缓存数据的方法、旁路装置及缓存系统
CN105247498B (zh) 通用的基于主机的控制器延迟方法和装置
CN111177892B (zh) 一种分布式仿真系统
CN106201839A (zh) 一种业务对象的信息加载方法和装置
CN110489418A (zh) 一种数据聚合方法和系统
CN109031371A (zh) 一种基于持续定位信息的路线平滑方法及系统
US20130332465A1 (en) Database management device and database management method

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190308

Termination date: 20200302