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

文档序号:10624516阅读:472来源:国知局
一种读取缓存数据的方法、旁路装置及缓存系统的制作方法
【专利摘要】本发明实施例提供了一种读取缓存数据的方法、旁路装置及缓存系统,其中方法包括:根据i级缓存中各数据的重用概率以及缓存系统的旁路特征值λ确定i级缓存和i-1级缓存间的旁路深度d,其中i是大于或等于3的整数,旁路特征值λ与缓存系统中i级缓存和i-1级缓存的读写能耗有关;从i级缓存读取数据之前,查询数据的第一重用次数,并将第一重用次数与旁路深度d进行比较;若第一重用次数小于旁路深度d,则从i级缓存读取数据后,将数据写入i-2级缓存,使所述数据从所述i-2级缓存逐级加载到一级缓存,以减少读取所述数据所消耗的能量。本发明实施例适用于对称性缓存和非对称性缓存,能降低缓存系统的读写能耗,确保旁路决策能提高缓存系统的读写效率。
【专利说明】
-种读取缓存数据的方法、旁路装置及缓存系统
技术领域
[0001] 本发明设及存储技术领域,尤其设及一种读取缓存数据的方法、旁路装置及缓存 系统。
【背景技术】
[0002] 缓存(Cache)是可W进行高速数据交换的存储器,缓存的出现主要是为了解决 CPU运算速率与内存读写速率不匹配的问题。在缓存中的数据是内存中的一小部分,但运一 小部分是短时间内CPU即将访问的,由此能够加快读取速率。
[0003] 缓存通常分为一级高速缓存化ICache)、二级高速缓存化2Cache)或Ξ级高速缓 存化3Cache)。为了改善缓存性能和功耗,现有技术提出一种末级高速缓存旁路的方法,在 Ξ级高速缓存中,当CPU想访问的数据A不在一级缓存中时便产生失效,若数据A在第Ξ级 高速缓存中,通过记录数据A和数据B的访问顺序决定将数据A与二级缓存的数据B替换, 或者旁路数据A,即绕过二级缓存,将数据A直接调入一级缓存。记录访问顺序的方法可通 过计算数据的重用距离实现,重用距离是指同一数据的相邻两次访问之间所间隔的数据的 访问个数。若数据A在第二次访问时被先访问,例如图1所示,CPU访问数据的顺序如下: DBACGAE阳B,则数据A的重用距离为2,数据B的重用距离为7,说明数据A的重用距离小于 数据B的重用距离,则可将数据A与数据B直接替换;若数据B在第二次访问时被先访问, 说明数据A的重用距离大于数据B的重用距离,则可直接旁路数据A,将数据A直接调入一 级缓存;若数据A与数据B的重用距离都为无穷大,或者数据A与数据B的重用距离相同, 则依然直接旁路数据A。
[0004] 然而,现有技术仅仅根据记录数据的访问顺序来决定是否旁路该数据,而不关屯、 每个访问的数据的重用次数。在数据A的重用距离小于数据B的重用距离的情况下,若数 据A的重用次数小于数据B的重用次数,将数据A与数据B直接替换会导致重用次数多的 数据B反而被排除,使得旁路效率下降。此外,替换过程中也会带来读写能量的额外开销, 导致缓存的性能降低。

【发明内容】

[0005] 本发明提供一种读取缓存数据的方法及旁路装置,可提高缓存效率,降低读写操 作消耗的能量。
[0006] 本发明实施例第一方面提供一种读取缓存数据的方法,应用于缓存系统,所述缓 存系统包括N级缓存和至少一个旁路装置,所述方法可包括:
[0007] 根据i级缓存中各数据的重用概率W及缓存系统的旁路特征值λ确定所述i级 缓存和i-1级缓存间的旁路深度d,其中i是大于或等于3的整数,所述旁路特征值λ与所 述缓存系统中所述i级缓存和所述i-1级缓存的读写能耗有关,所述i级缓存中一块数据 的重用概率为在所述i级缓存中与所述一块数据的重用次数相同的数据量占所述i级缓存 的总数据量的比例,所述旁路深度d表示从所述i级缓存读取所述数据后,当将所述数据写 入i-2级缓存所消耗的能量小于将所述数据写入i-1级缓所消耗的能量时,所述数据的最 大重用次数;
[0008] 从所述i级缓存读取数据之前,向所述i级缓存查询所述数据的第一重用次数,并 将所述第一重用次数与所述旁路深度d进行比较,其中所述第一重用次数为所述数据放置 入所述i级缓存之后在所述i级缓存中被访问的次数;
[0009] 若所述第一重用次数小于所述旁路深度d,则从所述i级缓存读取所述数据后,将 所述数据写入i-2级缓存,使所述数据从所述i-2级缓存逐级加载到一级缓存,W减少读取 所述数据所消耗的能量。
[0010] 结合第一方面,在第一种可能的实现方式中,所述将所述第一重用次数与所述旁 路深度d进行比较之后,所述方法还包括:
[0011] 若所述第一重用次数大于或等于所述旁路深度d,则从所述i级缓存读取所述数 据后,将所述数据写入i-1级缓存,使所述数据从所述i-1级缓存逐级加载到所述一级缓 存。
[0012] 结合第一方面,在第二种可能的实现方式中,所述将所述数据写入i-2级缓存之 后,所述方法还包括:
[0013] 统计每个数据的第二重用次数,其中一个数据的第二重用次数为所述一个数据在 所述缓存系统的所有缓存层中的总重用次数;
[0014] 统计第二重用次数大于或等于所述旁路深度d的数据第一数量d、第二重用次 数大于或等于d+n的数据的第二数量d+。、W及第二重用次数大于或等于d-m的数据的第 Ξ数量d m,其中η和m为正整数;
[0015] 根据所述第一数量d、所述第二数量d+。和所述第Ξ数量N > d m之间的比例关 系调整所述旁路深度d。
[0016] 结合第一方面的第二种可能的实现方式,在第Ξ种可能的实现方式中,所述根据 所述第一数量d、所述第二数量d+。和所述第Ξ数量N > d m之间的比例关系调整所述旁 路深度d,包括:
[0017] 若
则将所述旁路深度d至少加1 ;
[0018] 重
则将所述旁路深度d至少减1。
[0019] 结合第一方面W及第一方面的第一至第Ξ种可能的实现方式中的任一项,在第四 种可能的实现方式中,
[0020] 所述旁路特征值
[0021] 其中所述Ri为从所述i级缓存读取所述数据所消耗的能量,所述R α mw为检测所 述i-1级缓存未存储有所述数据所消耗的能量,所述Ri 1为从所述i-1级缓存加载所述数 据所消耗的能量,所述Wi 1为将所述数据写入所述i-1级缓存所消耗的能量,所述Ri、所述 R。lUag、所述Ri郝所述W i 1是预先测量的定值。
[0022] 结合第一方面的第二种可能的实现方式,在第五种可能的实现方式中,所述根据 所述第一数量d、所述第二数量d+。和所述第Ξ数量N > d m之间的比例关系调整所述旁 路深度d,具体为:
[0023] 在每一段时间间隔,根据所述第一数量N > t所述第二数量N > d+n和所述第Ξ 数量N > d-m之间的比例关系判断是否需要调整所述旁路深度山并在判断结果为"是"时 调整所述旁路深度d ;
[0024] 所述方法还包括:
[00巧]若判断为需要调整所述旁路深度d,则缩短所述时间间隔;
[00%] 若判断为不需要调整所述旁路深度d,则延长所述时间间隔。
[0027] 本发明实施例第二方面提供了一种旁路装置,可包括输入装置、输出装置和处理 器,其中所述所述处理器用于:
[0028] 根据i级缓存中各数据的重用概率W及缓存系统的旁路特征值λ确定所述i级 缓存和i-1级缓存间的旁路深度d,其中i是大于或等于3的整数,所述旁路特征值λ与所 述缓存系统中所述i级缓存和所述i-1级缓存的读写能耗有关,所述i级缓存中一块数据 的重用概率为在所述i级缓存中与所述一块数据的重用次数相同的数据量占所述i级缓存 的总数据量的比例,所述旁路深度d表示从所述i级缓存读取所述数据后,当将所述数据写 入i-2级缓存所消耗的能量小于将所述数据写入i-1级缓所消耗的能量时,所述数据的最 大重用次数;
[0029] 从所述i级缓存读取数据之前,向所述i级缓存查询所述数据的第一重用次数,并 将所述第一重用次数与所述旁路深度d进行比较,其中所述第一重用次数为所述数据放置 入所述i级缓存之后在所述i级缓存中被访问的次数;
[0030] 当所述第一重用次数小于所述旁路深度d时,从所述i级缓存读取所述数据后,将 所述数据写入i-2级缓存,使所述数据从所述i-2级缓存逐级加载到一级缓存,W减少读取 所述数据所消耗的能量。
[0031] 结合第二方面,在第一种可能的实现方式中,将所述第一重用次数与所述旁路深 度d进行比较之后,所述处理器还用于:
[0032] 当所述第一重用次数大于或等于所述旁路深度d时,从所述i级缓存读取所述数 据后,将所述数据写入i-1级缓存,使所述数据从所述i-1级缓存逐级加载到所述一级缓 存。
[0033] 结合第二方面,在第二种可能的实现方式中,所述将所述数据写入i-2级缓存之 后,所述处理器还用于:
[0034] 通过计数器统计每个数据的第二重用次数,其中一个数据的第二重用次数为所述 一个数据在所述缓存系统的所有缓存层中的总重用次数;
[0035] 统计第二重用次数大于或等于所述旁路深度d的数据的第一数量d、第二重用 次数大于或等于d+n的数据的第二数量d+。、W及第二重用次数大于或等于d-m的数据的 第Ξ数量d m,其中η和m为正整数;
[0036] 调整模块,用于根据所述第一数量d、所述第二数量d+。和所述第Ξ数量N > d m 之间的比例关系调整所述旁路深度d。
[0037] 结合第二方面的第二种可能的实现方式,在第Ξ种可能的实现方式中,所述调整 模块,具体用于:
[0038] 老
则在所述旁路深度d的预设范围内将所述旁路深度d至少加 1 ;
[0039] 若
,则在所述旁路深度d的预设范围内将所述旁路深度d至少减 1〇
[0040] 结合第二方面W及第二方面的第一至第Ξ种可能的实现方式中的任一项,在第四 种可能的实现方式中,
[0041] 所述旁路特征值
[00创其中所述Ri为从所述i级缓存读取所述数据所消耗的能量,所述R ut。,为检测所 述i-1级缓存未存储有所述数据所消耗的能量,所述Ri 1为从所述i-1级缓存加载所述数 据所消耗的能量,所述Wi 1为将所述数据写入所述i-1级缓存所消耗的能量,所述Ri、所述 R。lUag、所述Ri郝所述W i 1是预先测量的定值。
[0043] 结合第二方面的第二种可能的实现方式,在第五种可能的实现方式中,所述处理 器根据所述第一数量d、所述第二数量d+。和所述第Ξ数量N > d m之间的比例关系调整 所述旁路深度d,具体为:
[0044] 在每一段时间间隔,根据所述第一数量N > t所述第二数量N > d+n和所述第Ξ 数量N > d-m之间的比例关系判断是否需要调整所述旁路深度d,并在所述判断的结果为 "是"时调整所述旁路深度d;
[0045] 所述处理器还用于:
[0046] 在所述判断的结果为"是"时,缩短所述时间间隔;
[0047] 在所述判断的结果为"否"时,延长所述时间间隔。
[0048] 本发明实施例第Ξ方面提供了一种缓存系统,所述缓存系统包括至少一个旁路装 置W及N级缓存,其中所述至少一个旁路装置为第二方面W及第二方面的第一至第六种可 能的实现方式中任一项所述的旁路装置,用于在处理核屯、请求从i级缓存读取数据时,决 定所述数据从所述i级缓存到一级缓存的路径,其中i和N都是整数并且3《i《N。
[0049] 本发明实施例中,根据i级缓存中各数据的重用概率W及缓存系统的旁路特征值 λ确定旁路深度d,查询待读取的数据在i级缓存的第一重用次数,如果该数据在i级缓存 的第一重用次数小于旁路深度山则旁路该数据,即从i级缓存读取该数据后,绕开i-1级 缓存,直接将该数据写入i-2级缓存。由于旁路特征值λ是结合缓存系统中i级缓存和 i-1级缓存的写能耗和读能耗来计算得到的,根据旁路特征值λ确定旁路深度d并结合旁 路深度d和数据的第一重用次数进行旁路决策,不仅适用于一般的对称性缓存,还能为非 对称缓存提供准确的判断依据W判断将数据旁路是否确实能降低缓存系统的读写能耗,确 保旁路决策能提高缓存系统的读写效率。
【附图说明】
[0050] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用 的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域 普通技术人员来讲,在不付出创造性劳动性的前提下,还可W根据运些附图获得其他的附 图。
[0051] 图1是现有技术中数据的重用距离的示意图;
[0052] 图2是本发明实施例提供的读取缓存数据的方法的第一实施例流程示意图;
[0053] 图3是本发明实施例提供的读取缓存数据的方法的第二实施例流程示意图;
[0054] 图4是本发明实施例的缓存系统中数据被访问时的情况示意图;
[0055] 图5是本发明实施例提供的旁路装置的第一实施例结构示意图;
[0056] 图6是本发明实施例提供的缓存系统的第一实施例结构示意图。
【具体实施方式】
[0057] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发 明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
[0058] 贯穿本说明书,术语"重用"指的是数据在初始放置入缓存系统之后被访问。
[0059] 贯穿本说明书,术语"第一重用次数"指的是数据在初始放置入某一缓存层后在该 缓存层中被访问的次数。
[0060] 贯穿本说明书,术语"第二重用次数"指的是数据在初始放置入缓存系统后在该缓 存系统的所有缓存层中被访问的次数。
[0061] 贯穿本说明书,术语"重用概率"指的是在某一缓存层中第一重用次数相同的一 些数据占该缓存层中总数据量的比例。
[0062] 贯穿本说明书,术语"旁路"指的是从低级缓存读取数据时,绕过与该低级缓存相 邻的一层或多层较高级缓存,将数据直接写入到更高级的缓存。
[0063] 贯穿本说明书,术语"旁路特征值"是缓存系统的固有属性,用于计算将数据旁路 是否比不旁路所消耗的能量更少。
[0064] 贯穿本说明书,术语"旁路深度"指的是当数据旁路所消耗的能量少于不旁路所消 耗的能量时,该数据的最大重用次数。 W65]贯穿本说明书,术语"读写能耗"指的是缓存系统对数据进行读操作所消耗的能量 W及缓存系统对数据进行写操作所消耗的能量。
[0066] 本发明实施例提供了一种读取缓存数据的方法、旁路装置及缓存系统,可做出正 确的旁路决策W提高缓存系统的读写效率。W下将结合附图进行详细说明。
[0067] 请参阅图2,图2是本发明实施例提供的读取缓存数据的方法的第一实施例流程 示意图。该方法由旁路装置执行,可应用于包括N级缓存和至少一个上述旁路装置的缓存 系统,如图2所示,该方法可W包括W下步骤。
[0068] S200,根据i级缓存中各数据的重用概率W及缓存系统的旁路特征值λ确定所述 i级缓存和i-1级缓存间的旁路深度d。
[0069] 其中i和N都是整数并且3《i《N,例如在如今应用的大多数缓存系统中,N最 多等于3,但随着存储技术的发展,或者在如今的一些的缓存系统中,N也可能大于3,例如N =4。本发明实施例中,旁路深度d表示从所述i级缓存读取所述数据后,当将所述数据写 入i-2级缓存所消耗的能量小于将所述数据写入i-1级缓所消耗的能量时,所述数据的最 大重用次数。
[0070] 在一些可行的实施方式中,i级缓存中任意一块数据的重用概率可W用i级缓存 中与该块数据的重用次数相同的数据量占 i级缓存中总数据量的比例来表示。假设在i级 缓存中重用次数为j的数据量占 i级缓存总数据量的比例为P,,j为大于或等于0的整数, 则旁路深度d可根据公式
嵩到。
[0071] 所述旁路特征值λ与所述缓存系统中所述i级缓存和所述i-1级缓存的读写能 耗有关。具体地,λ可W根据从i级缓存读取所述数据所需的能量、将所述数据写入i-1级 缓存所需的能量、从i-1级缓存至二级缓存取所述数据所需的能量和/或检测确定i-1级 缓存至二级缓存都未存储有所述数据所需的能量等参数计算得到。
[0072] 可选地,本发明实施例中的数据,可W是W块为单位的大小相等的数据块,也可W 是W文件为单位的大小不等的数据。
[0073] S201,从所述i级缓存读取数据之前,向所述i级缓存查询所述数据的第一重用次 数,并将所述第一重用次数与所述旁路深度d进行比较。
[0074] 本发明实施例中,所述数据的所述第一重用次数为所述数据放置入所述i级缓存 之后在所述i级缓存中被访问的次数,所述数据若在其他缓存层中被重用,不计入所述第 一重用次数。本发明实施例中,第一重用次数用DRC值ata Reuse count,数据重用计数)来 表不。
[00巧]在一些可行的实施方式中,各缓存层可通过计数器统计每个数据的第一重用次 数。当一块数据被初始放置到某一级缓存时,该数据在该级缓存的DRC值为0。此后该数据 每在该级缓存中被访问一次,该级缓存的计数器则将该数据的DRC值加1。
[0076] 当确定了需要从i级缓存读取的数据后,可W向i级缓存层查询该数据在i级缓 存中的DRC值,并将该数据的DRC值与旁路深度d进行比较。
[0077] S202,若所述第一重用次数小于所述旁路深度d,则从所述i级缓存读取所述数据 后,将所述数据写入i-2级缓存,使所述数据从所述i-2级缓存逐级加载到一级缓存,W减 少读取所述数据所消耗的能量。
[0078] 本发明实施例中,旁路深度d是自定义的用于筛选需要旁路的数据的一个参数。 当i级缓存中某些数据的DRC值小于旁路深度d时,认为将该数据旁路更加节能,即读取该 数据所花的代价更小,此时可作出旁路决策:从i级缓存读取该数据后应将该数据直接写 入i-2级缓存。本发明实施例中,旁路表示数据绕过某一级缓存直接写入到更高级的缓存, 例如从Ξ级缓存读取的数据绕过二级缓存而直接写入到一级缓存。
[0079] 具体实施中,将数据写入i-2级缓存之后,该数据可W从i-2级缓存逐级加载到一 级缓存(即按照i-2、i-3、……1的顺序逐级加载),处理核屯、最终从一级缓存读取该数据。
[0080] 考虑到对一些缓存器而言,读操作和写操作的所花的代价是不一样的,例如非易 失存储技术中,写操作的延迟和能耗是读操作的数倍,而旁路特征值λ是结合缓存系统中 一些缓存级的写能耗和读能耗来计算得到的,根据旁路特征值λ确定旁路深度d,能更加 准确地判断一些数据是否旁路能更加节能。
[0081] 本发明实施例中,根据i级缓存中各数据的重用概率W及缓存系统的旁路特征值 λ确定旁路深度d,查询待读取的数据在i级缓存的第一重用次数,如果该数据在i级缓存 的第一重用次数小于旁路深度d,则旁路该数据,即从i级缓存读取该数据后,绕开i-1级缓 存,直接将该数据写入i-2级缓存。由于旁路特征值λ是结合缓存系统中i级缓存和i-1 级缓存的写能耗和读能耗来计算得到的,根据旁路特征值λ确定旁路深度d并结合旁路深 度d和数据的第一重用次数进行旁路决策,不仅适用于一般的对称性缓存,还能为非对称 缓存提供准确的判断依据W判断将数据旁路是否确实能降低缓存系统的读写能耗,确保旁 路决策能提高缓存系统的读写效率。
[0082] 请参阅图3,图3是本发明实施例提供的读取缓存数据的方法的第二实施例流程 示意图。该方法由旁路装置执行,可应用于包括N级缓存和至少一个上述旁路装置的缓存 系统,如图3所示,该方法可W包括W下步骤。
[0083] S300,根据i级缓存中各数据的重用概率W及缓存系统的旁路特征值λ确定所述 i级缓存和i-1级缓存间的旁路深度d。
[0084] 其中i和N都是整数并且3《i《N,例如在如今应用的大多数缓存系统中,i最 多等于3,但随着存储技术的发展,或者在如今的一些缓存系统中,i也可能大于3,例如i =4。本发明实施例中,旁路深度d表示从所述i级缓存读取所述数据后,当将所述数据写 入i-2级缓存所消耗的能量小于将所述数据写入i-1级缓所消耗的能量时,所述数据的最 大重用次数。
[00化]在一些可行的实施方式中,i级缓存中任意一块数据的重用概率可W用i级缓存 中与该块数据的重用次数相同的数据量占 i级缓存中总数据量的比例来表示。假设在i级 缓存中重用次数为j的数据量占 i级缓存总数据量的比例为門,j为大于或等于0的整数, 则旁路深度d可根据公
得到。
[0086] 所述旁路特征值λ与所述缓存系统中所述i级缓存和所述i-1级缓存的读写能 耗有关。具体地,λ可W根据从i级缓存读取所述数据所需的能量、将所述数据写入i-1级 缓存所需的能量、从i-1级缓存至二级缓存取所述数据所需的能量和/或检测确定i-1级 缓存至二级缓存都未存储有所述数据所需的能量等参数计算得到。在一些可行的实施方 式中,所述旁路特征值λ可W根据公式
计算得到。
[0087] 其中所述Ri为从所述i级缓存读取所述数据所消耗的能量,所述R Ut。,为检测所 述i-1级缓存未存储有所述数据所消耗的能量,所述Ri 1为从所述i-1级缓存加载所述数 据所消耗的能量,所述Wi 1为将所述数据写入所述i-1级缓存所消耗的能量,所述Ri、所述 R。lUw、所述Ri郝所述W1 1是预先测量的定值。
[0088] 可选地,本发明实施例中的数据,可W是W块为单位的大小相等的数据块,也可W 是W文件为单位的大小不等的数据。
[0089] S301,从所述i级缓存读取数据之前,向所述i级缓存查询所述数据的第一重用次 数,并将所述第一重用次数与所述旁路深度d进行比较。
[0090] 可选地,步骤S301的【具体实施方式】可W参照图2所示实施例中的步骤S201,在此 不寶述。
[0091] S302,若所述第一重用次数小于所述旁路深度d,则从所述i级缓存读取所述数据 后,将所述数据写入i-2级缓存,使所述数据从所述i-2级缓存逐级加载到一级缓存,W减 少读取所述数据所消耗的能量。
[0092] 可选地,步骤S302的【具体实施方式】可W参照图2所示实施例中的步骤S202,在此 不寶述。
[0093] S303,若所述第一重用次数大于或等于所述旁路深度d,则从所述i级缓存读取所 述数据后,将所述数据写入i-1级缓存,使所述数据从所述i-1级缓存逐级加载到所述一级 缓存。
[0094] 本发明实施例中,若i级缓存中待读取的数据的DRC值大于或等于旁路深度d,可 认为将该数据旁路并不能减少缓存系统的能量消耗,此时做出的决策是:将从i级缓存读 取的数据写入i-i级缓存,然后从i-1级缓存加载到i-2级缓存,逐级加载,直到最后将该 数据写入一级缓存。
[00巧]S304,统计每个数据的第二重用次数,其中一个数据的第二重用次数为所述一个 数据在所述缓存系统的所有缓存层中的总重用次数。
[0096] 具体实施中,可通过计数器统计每个数据的第二重用次数。当一个数据初始放置 入缓存系统时,其第二重用次数为0,此后该数据每被访问一次,其第二重用次数加1。第二 重用次数为该数据在缓存系统的所有缓存层中被访问的次数。
[0097] S305,在每一段时间间隔,统计第二重用次数大于或等于所述旁路深度d的数据 的第一数量d、第二重用次数大于或等于d+n的数据的第二数量d+。、W及第二重用次 数大于或等于d-m的数据的第Ξ数量d m,其中η和m为正整数。
[0098] 在一些可行的实施方式中,可W通过3个计数器,在每一段时间间隔内分别统计 一次整个缓存系统中第二重用次数大于或等于旁路深度d的数据的第一数量d、第二重 用次数大于或等于d+n的数据的第二数量及第二重用次数大于或等于d-m的数据 的第Ξ数量dm。可选地,所述一段时间间隔的长度可W在lOks~looks范围内变化。
[0099] 请一并参阅图4,下面将结合图4举例说明缓存系统中数据被访问时的情况。如图 4所示,假设Ξ级缓存L3和二级缓存L2之间的旁路深度d = 2, η和m都等于1。
[0100] (a)初始状态下,Ξ级缓存L3中各数据的第一重用次数DRC都为0,第一数量^4、 第二数量d+。和第Ξ数量N > d m均为0。 阳101] 化)处理核屯、第一次请求访问数据C,由于C的第一重用次数小于旁路深度d,数据 C从L2旁路,直接传输给一级缓存L1。之后数据C的第一重用次数变为DRC = 1。 阳102] (C)处理核屯、第一次请求访问数据D,由于D的第一重用次数小于旁路深度d,数据 D从L2旁路,直接传输给L1。之后数据D的第一重用次数变为DRC = 1。 阳103] (d)处理核屯、第二次请求访问数据C,此时C的第一重用次数DRC= 1,仍然小于旁 路深度d,数据C从L2旁路,直接传输给L1。由于有1个数据(数据C)的第二重用次数大 于或等于d-m,第Ξ数量d m加1,之后数据C的第一重用次数变为DRC = 2。
[0104] (e)处理核屯、第二次请求访问数据D,此时D的第一重用次数DRC = 1,仍然小于旁 路深度d,数据D从L2旁路,直接传输给L1。由于多了 1个数据(数据D)的第二重用次数 大于或等于d-m,第Ξ数量d m再加1,之后数据D的第一重用次数变为DRC = 2。
[01化](f)处理核屯、第Ξ次请求访问数据C,此时C的第一重用次数DRC等于旁路深度2, 数据C先传输到L2,再从L2传输到L1。由于有1个数据(数据C)的第二重用次数大于或 等于山第一数量^4加1。之后可W删除L3中的数据C,将数据C替换到L2,同时L2中 数据C的第一重用次数DRC = 0。
[0106] (g)处理核屯、第Ξ次请求访问数据D,此时D的第一重用次数DRC等于旁路深度2, 数据D先传输到L2,再从L2传输到L1。由于多了 1个数据(数据D)的第二重用次数大于 或等于山第一数量d再加1,之后可W删除L3中的数据D,将数据D替换到L2,同时L2 中数据D的第一重用次数DRC = 0。
[0107] 化)处理核屯、第四次请求访问数据C,数据C从L2传输给L1,之后L2中数据C的 第一重用次数DRC = 1,第二数量d Jra 1。
[0108] (i)处理核屯、第五次请求访问数据C,数据C从L2传输给LI,L2中数据C的第一 重用次数和第二数量d+。均保持不变。
[0109] S306,在每一段时间间隔,根据所述第一数量d、所述第二数量d+。和所述第; 数量d m之间的比例关系判断是否需要调整所述旁路深度山若判断结果为是,转到S307, 否则转到S309。
[0110] 具体实施中,旁路深度d与各数据的重用概率有关,随着数据的重用概率的变化, 旁路深度d也应适当进行调整。可选地,每次统计完第一数量d、第二数量d+。和第Ξ 数量d m之后,可W判断是否需要调整旁路深度d。调整旁路深度d的原则是:随着各数 据的重用概率发生变化,若加大旁路深度d的值可W进一步减小缓存系统的读写能耗时, 则加大旁路深度d的值,若当前的旁路深度d已经不能减小缓存系统的读写能耗,则减小旁 路深度d的值。 阳11U 具体地,可W判断
I否大于λ,若是,则认为应该增大旁路深度d; 此外还可W判断
是否小于λ,若是,则认为应该减小旁路深度d。
[0112] η和m都是正整数,可选地,η和m可W都等于1。
[0113] S307,调整所述旁路深度d。
[0114] 具体实施中,调整所述旁路深度d可包括:
[0115] 若
,则在所述旁路深度d的预设范围内将所述旁路深度d至 少加1 ;
[0116] 若
,则在所述旁路深度d的预设范围内将所述旁路深度d至 少减1。
[0117] 具体实施中,在所述旁路深度d的预设范围内,对所述旁路深度d的调整幅度可W 自由设定,旁路深度d的预设范围也可W自由设定。在一些可行的实施方式总,可W设定旁 路深度d的预设范围为1《d《22°。
[0118] S308,缩短所述时间间隔。
[0119] 具体实现中,若旁路深度d在一段时间内发生了变化,说明i级缓存中各数据的重 用概率可能经常发生变化,为了适应各数据的重用概率的变化及时调整旁路深度d,可适当 缩短上述时间间隔,从而增加判断是否要调整旁路深度d的次数。
[0120] 在一些可行的实施方式中,每次缩短所述时间间隔时,可W按比例缩短所述时间 间隔,例如,若原有的时间间隔为2i5s,若需要缩短所述时间间隔,可W缩短为2i4s。在另一 些可行的实施方式中,还可W按照预先设置好的时间长度缩短所述时间间隔,例如每次缩 短10s。具体实施中,上述时间间隔的变化可控制在一定范围内,不会无限地缩短。 阳121] S309,延长所述时间间隔。
[0122] 具体实现中,若旁路深度d在一段时间内没有发生变化,说明i级缓存中各数据的 重用概率在当前时间段内比较稳定,此时无需频繁地调整旁路深度d,因此可W延长所述时 间间隔W减少判断是否要调整旁路深度d的频率。
[0123] 在一些可行的实施方式中,每次延长所述时间间隔时,可W按比例延长所述时间 间隔,例如,若原有的时间间隔为2i5s,若需要延长所述时间间隔,可W延长为2i6s。在另一 些可行的实施方式中,还可W按照预先设置好的时间长度延长所述时间间隔,例如每次延 长10s。具体实施中,上述时间间隔的变化可控制在一定范围内,不会无限地延长。
[0124] 本发明实施例中,根据i级缓存中各数据的重用概率W及缓存系统的旁路特征值 λ确定旁路深度d,查询待读取的数据在i级缓存的第一重用次数,如果该数据在i级缓存 的第一重用次数小于旁路深度山则从i级缓存读取该数据后,绕开i-1级缓存,直接将该数 据写入i-2级缓存;如果该数据在i级缓存的第一重用次数小于旁路深度山则逐级加载所 述数据。由于旁路特征值λ是结合缓存系统中i级缓存和i-1级缓存的写能耗和读能耗 来计算得到的,根据旁路特征值λ确定旁路深度d并结合旁路深度d和数据的第一重用次 数进行旁路决策,不仅适用于一般的对称性缓存,还能为非对称缓存提供准确的判断依据 W判断将数据旁路是否确实能降低缓存系统的读写能耗,确保旁路决策能提高缓存系统的 读写效率。此外,本发明实施例还可随数据的重用概率的变化调整旁路深度d,并根据旁路 深度d的变化改变其调整频率,使旁路深度d能自适应调整,无论缓存系统的数据访问情况 如何改变,都能做出正确的旁路决策。
[0125] 参阅图5,为本发明实施例提供的旁路装置的第一实施例结构示意图。所述旁路装 置可应用于缓存系统,所述缓存系统包括N级缓存和至少一个所述旁路装置。如图5所示, 所述旁路装置可包括输入装置501、输出装置502和处理器503,其中所述输入装置501、所 述输出装置502和所述处理器503可通过总线或其他方式进行连接,本发明实施例W通过 总线连接为例进行说明。 阳126] 所述输入装置501可用于接收用户或其他设备输入的指令或数据。
[0127] 所述输出装置502可用于将指令或数据输出给其他设备,例如输出指令给缓存系 统中的各级缓存。
[0128] 所述处理器503可用于:
[0129] 根据i级缓存中各数据的重用概率W及缓存系统的旁路特征值λ确定所述i级 缓存和i-1级缓存间的旁路深度d。 阳130] 其中i和N都是整数并且3《i《N,例如在如今应用的大多数缓存系统中,N最 多等于3,但随着存储技术的发展,或者在如今的一些的缓存系统中,N也可能大于3,例如N =4。本发明实施例中,旁路深度d表示从所述i级缓存读取所述数据后,当将所述数据写 入i-2级缓存所消耗的能量小于将所述数据写入i-1级缓所消耗的能量时,所述数据的最 大重用次数。 阳131] 在一些可行的实施方式中,i级缓存中任意一块数据的重用概率可W用i级缓存 中与该块数据的重用次数相同的数据量占 i级缓存中总数据量的比例来表示。假设在i级 缓存中重用次数为j的数据量占 i级缓存总数据量的比例为P,,j为大于或等于0的整数, 则旁路深度d可根据公式
隹导得到。
[0132] 所述旁路特征值λ与所述缓存系统中所述i级缓存和所述i-1级缓存的读写能 耗有关。具体地,λ可W根据从i级缓存读取所述数据所需的能量、将所述数据写入i-1级 缓存所需的能量、从i-1级缓存至二级缓存取所述数据所需的能量和/或检测确定i-1级 缓存至二级缓存都未存储有所述数据所需的能量等参数计算得到。
[0133] 可选地,本发明实施例中的数据,可W是W块为单位的大小相等的数据块,也可W 是W文件为单位的大小不等的数据。
[0134] 处理器503还用于在从所述i级缓存读取数据之前,向所述i级缓存查询所述数 据的第一重用次数,并将所述第一重用次数与所述旁路深度d进行比较,其中所述第一重 用次数为所述数据放置入所述i级缓存之后在所述i级缓存中被访问的次数。
[0135] 本发明实施例中,所述数据的所述第一重用次数为所述数据放置入所述i级缓存 之后在所述i级缓存中被访问的次数,所述数据若在其他缓存层中被重用,不计入所述第 一重用次数。本发明实施例中,第一重用次数用DRC值ata Reuse count,数据重用计数)来 表不。
[0136] 在一些可行的实施方式中,各缓存层可通过计数器统计每个数据的第一重用次 数。当一块数据被初始放置到某一级缓存时,该数据在该级缓存的DRC值为0。此后该数据 每在该级缓存中被访问一次,该级缓存的计数器则将该数据的DRC值加1。
[0137] 当确定了需要从i级缓存读取的数据后,可W向i级缓存层查询该数据在i级缓 存中的DRC值,并将该数据的DRC值与旁路深度d进行比较。
[0138] 处理器503还用于当所述第一重用次数小于所述旁路深度d时,从所述i级缓存 读取所述数据后,将所述数据写入i-2级缓存,使所述数据从所述i-2级缓存逐级加载到一 级缓存,W减少读取所述数据所消耗的能量。
[0139] 本发明实施例中,旁路深度d是自定义的用于筛选需要旁路的数据的一个参数。 当i级缓存中某些数据的DRC值小于旁路深度d时,认为将该数据旁路更加节能,即读取该 数据所花的代价更小,此时决策模块403可做出旁路决策:从i级缓存读取该数据后应将该 数据直接写入i-2级缓存。本发明实施例中,旁路表示数据绕过某一级缓存直接写入到更 高级的缓存,例如从Ξ级缓存读取的数据绕过二级缓存而直接写入到一级缓存。
[0140] 具体实施中,将数据写入i-2级缓存之后,该数据可W从i-2级缓存逐级加载到一 级缓存(即按照i-2、i-3、……1的顺序逐级加载),处理核屯、最终从一级缓存读取该数据。 阳141] 考虑到对一些缓存器而言,读操作和写操作的所花的代价是不一样的,例如非易 失存储技术中,写操作的延迟和能耗是读操作的数倍,而旁路特征值λ是结合缓存系统中 一些缓存级的写能耗和读能耗来计算得到的,根据旁路特征值λ确定旁路深度d,能更加 准确地判断一些数据是否旁路能更加节能。
[0142]本发明实施例中,根据i级缓存中各数据的重用概率W及缓存系统的旁路特征值 λ确定旁路深度d,查询待读取的数据在i级缓存的第一重用次数,如果该数据在i级缓存 的第一重用次数小于旁路深度山则旁路该数据,即从i级缓存读取该数据后,绕开i-1级缓 存,直接将该数据写入i-2级缓存。由于旁路特征值λ是结合缓存系统中i级缓存和i-1 级缓存的写能耗和读能耗来计算得到的,根据旁路特征值λ确定旁路深度d并结合旁路深 度d和数据的第一重用次数进行旁路决策,不仅适用于一般的对称性缓存,还能为非对称 缓存提供准确的判断依据W判断将数据旁路是否确实能降低缓存系统的读写能耗,确保旁 路决策能提高缓存系统的读写效率。 阳143] 在一些可行的实施方式中,旁路特征值λ可W根据公式
计算 得到。
[0144] 其中所述Ri为从所述i级缓存读取所述数据所消耗的能量,所述R Utw为检测所 述i-1级缓存未存储有所述数据所消耗的能量,所述Ri 1为从所述i-1级缓存加载所述数 据所消耗的能量,所述Wi 1为将所述数据写入所述i-1级缓存所消耗的能量,所述Ri、所述 R。lUw、所述Ri郝所述W 1 1是预先测量的定值。
[0145] 在一些可行的实施方式中,处理器503将第一重用次数与旁路深度d进行比较之 后,还可W执行如下操作:
[0146] 当所述第一重用次数大于或等于所述旁路深度d时,从所述i级缓存读取所述数 据后,将所述数据写入i-1级缓存,使所述数据从所述i-1级缓存逐级加载到所述一级缓 存。 阳147] 本发明实施例中,若i级缓存中待读取的数据的DRC值大于或等于旁路深度山可 认为将该数据旁路并不能减少缓存系统的能量消耗,此时做出的决策是:将从i级缓存读 取的数据写入i-i级缓存,然后从i-1级缓存加载到i-2级缓存,逐级加载,直到最后将该 数据写入一级缓存。
[0148] 在一些可行的实施方式中,处理器503将数据从i级缓存加载到i-2级缓存或i-1 级缓存之后,还可W执行如下操作:
[0149] 通过计数器统计每个数据的第二重用次数,其中一个数据的第二重用次数为所述 一个数据在所述缓存系统的所有缓存层中的总重用次数。
[0150] 统计第二重用次数大于或等于所述旁路深度d的数据的第一数量d、第二重用 次数大于或等于d+n的数据的第二数量d+。、W及第二重用次数大于或等于d-m的数据的 第Ξ数量d m,其中η和m为正整数。 阳151] 根据所述第一数量d、所述第二数量d+。和所述第Ξ数量N > d m之间的比例关 系调整所述旁路深度d。 阳152] 具体实施中,可通过计数器统计每个数据的第二重用次数。当一个数据初始放置 入缓存系统时,其第二重用次数为0,此后该数据每被访问一次,其第二重用次数加1。第二 重用次数为该数据在缓存系统的所有缓存层中被访问的次数。
[0153] 在一些可行的实施方式中,可W通过3个计数器,在每一段时间间隔内分别统计 一次整个缓存系统中第二重用次数大于或等于旁路深度d的数据的第一数量d、第二重 用次数大于或等于d+n的数据的第二数量及第二重用次数大于或等于d-m的数据 的第Ξ数量dm。可选地,所述一段时间间隔的长度可W在lOks~looks范围内变化。 [0154] 在一些可行的实施方式中,处理器503根据所述第一数量d、所述第二数量d+。 和所述第Ξ数量d m之间的比例关系调整所述旁路深度d,具体为:
[01W] 在每一段时间间隔,根据所述第一数量N > t所述第二数量N > d+n和所述第Ξ 数量N > d-m之间的比例关系判断是否需要调整所述旁路深度d,并在所述判断的结果为 "是"时调整所述旁路深度d;
[0156] 具体实施中,旁路深度d与各数据的重用概率有关,随着数据的重用概率的变化, 旁路深度d也应适当进行调整。可选地,每次统计完第一数量1^> d、第二数量?^> d+。和第Ξ 数量d m之后,可W判断是否需要调整旁路深度d。调整旁路深度d的原则是:随着各数 据的重用概率发生变化,若加大旁路深度d的值可W进一步减小缓存系统的读写能耗时, 则加大旁路深度d的值,若当前的旁路深度d已经不能减小缓存系统的读写能耗,则减小旁 路深度d的值。 阳157] 具体地,可W判断
曼否大于λ,若是,则认为应该增大旁路深度d ; 此外还可W判断
I否小于λ,若是,则认为应该减小旁路深度d。
[0158] η和m都是正整数,可选地,η和m可W都等于1。
[0159] 具体实施中,在一些可行的实施方式中,处理器503根据所述第一数量N>d、所述 第二数量d+。和所述第Ξ数量N > d m之间的比例关系调整所述旁路深度山可包括:
[0160] 若
则在所述旁路深度d的预设范围内将所述旁路深度d至少加 1 ; 阳161] 若
,则在所述旁路深度d的预设范围内将所述旁路深度d至少减 1〇
[0162] 具体实施中,在所述旁路深度d的预设范围内,对所述旁路深度d的调整幅度可W 自由设定,旁路深度d的预设范围也可W自由设定。在一些可行的实施方式总,可W设定旁 路深度d的预设范围为1《d《22°。 阳163] 处理器503还用于:
[0164] 在所述判断的结果为"是"时,缩短所述时间间隔; 阳1化]在所述判断的结果为"否"时,延长所述时间间隔。
[0166] 具体实现中,若旁路深度d在一段时间内发生了变化,说明i级缓存中各数据的重 用概率可能经常发生变化,为了适应各数据的重用概率的变化及时调整旁路深度d,可适当 缩短上述时间间隔,从而增加判断是否要调整旁路深度d的次数。
[0167] 在一些可行的实施方式中,每次缩短所述时间间隔时,可W按比例缩短所述时间 间隔,例如,若原有的时间间隔为2i5s,若需要缩短所述时间间隔,可W缩短为2i4s。在另一 些可行的实施方式中,还可W按照预先设置好的时间长度缩短所述时间间隔,例如每次缩 短10s。具体实施中,上述时间间隔的变化可控制在一定范围内,不会无限地缩短。
[0168] 具体实现中,若旁路深度d在一段时间内没有发生变化,说明i级缓存中各数据的 重用概率在当前时间段内比较稳定,此时无需频繁地调整旁路深度d,因此可W延长所述时 间间隔W减少判断是否要调整旁路深度d的频率。
[0169] 在一些可行的实施方式中,每次延长所述时间间隔时,可W按比例延长所述时间 间隔,例如,若原有的时间间隔为2i5s,若需要延长所述时间间隔,可W延长为2i6s。在另一 些可行的实施方式中,还可W按照预先设置好的时间长度延长所述时间间隔,例如每次延 长10s。具体实施中,上述时间间隔的变化可控制在一定范围内,不会无限地延长。
[0170] 本发明实施例中,根据i级缓存中各数据的重用概率W及缓存系统的旁路特征值 λ确定旁路深度山查询待读取的数据在i级缓存的第一重用次数,如果该数据在i级缓存 的第一重用次数小于旁路深度山则从i级缓存读取该数据后,绕开i-1级缓存,直接将该数 据写入i-2级缓存;如果该数据在i级缓存的第一重用次数小于旁路深度山则逐级加载所 述数据。由于旁路特征值λ是结合缓存系统中i级缓存和i-1级缓存的写能耗和读能耗 来计算得到的,根据旁路特征值λ确定旁路深度d并结合旁路深度d和数据的第一重用次 数进行旁路决策,不仅适用于一般的对称性缓存,还能为非对称缓存提供准确的判断依据 W判断将数据旁路是否确实能降低缓存系统的读写能耗,确保旁路决策能提高缓存系统的 读写效率。此外,本发明实施例还可随数据的重用概率的变化调整旁路深度d,并根据旁路 深度d的变化改变其调整频率,使旁路深度d能自适应调整,无论缓存系统的数据访问情况 如何改变,都能做出正确的旁路决策。 阳171] 参阅图6,为本发明实施例提供的缓存系统的第一实施例结构示意图。如图6所 示,该缓存系统可包括至少一个旁路装置601 W及N级缓存602,其中所述至少一个旁路装 置601为图5所示实施例中所描述的旁路装置,用于在处理核屯、请求从所述至少i级缓存 读取数据时,决定所述数据从所述i级缓存层到一级缓存的路径,其中i和N都是整数并且 3《i《N。 阳17引根据图5所示实施例的相关描述,可知本发明实施例的缓存系统,根据i级缓存中 各数据的重用概率W及缓存系统的旁路特征值λ确定旁路深度d,查询待读取的数据在i 级缓存的第一重用次数,如果该数据在i级缓存的第一重用次数小于旁路深度d,则旁路该 数据,即从i级缓存读取该数据后,绕开i-1级缓存,直接将该数据写入i-2级缓存。由于旁 路特征值λ是结合缓存系统中i级缓存和i-1级缓存的写能耗和读能耗来计算得到的,根 据旁路特征值λ确定旁路深度d并结合旁路深度d和数据的第一重用次数进行旁路决策, 不仅适用于一般的对称性缓存,还能为非对称缓存提供准确的判断依据W判断将数据旁路 是否确实能降低缓存系统的读写能耗,确保旁路决策能提高缓存系统的读写效率。
[0173] W上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块 可W是或者也可W不是物理上分开的,作为模块显示的部件可W是或者也可W不是物理模 块,即可W位于一个地方,或者也可W分布到多个网络模块上。可W根据实际的需要选择其 中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性 的劳动的情况下,即可W理解并实施。
[0174] 本发明实施例方法中的步骤可W根据实际需要进行顺序调整、合并和删减。
[0175] 本发明实施例装置中的模块或单元可W根据实际需要进行合并、划分和删减。 阳176] 本发明实施例的模块或单元,可通用集成电路(如中央处理器CPU),或W专 用集成电路(ASIC)来实现。
[0177] 通过W上的实施方式的描述,本领域的技术人员可W清楚地了解到各实施方式可 借助软件加必需的通用硬件平台的方式来实现,当然也可W通过硬件。基于运样的理解,上 述技术方案本质上或者说对现有技术做出贡献的部分可软件产品的形式体现出来,该 计算机软件产品可W存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指 令用W使得一台计算机设备(可W是个人计算机,服务器,或者网络设备等)执行各个实施 例或者实施例的某些部分所述的方法。
[0178] W上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施 方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范 围之内。
【主权项】
1. 一种读取缓存数据的方法,其特征在于,应用于缓存系统,所述缓存系统包括N级缓 存和至少一个旁路装置,所述方法包括: 根据i级缓存中各数据的重用概率W及缓存系统的旁路特征值A确定所述i级缓存 和i-1级缓存间的旁路深度d,其中i和N都是整数并且3《i《N,所述旁路特征值入与 所述缓存系统中所述i级缓存和所述i-1级缓存的读写能耗有关,所述i级缓存中一块数 据的重用概率为在所述i级缓存中与所述一块数据的重用次数相同的数据量占所述i级缓 存的总数据量的比例,所述旁路深度d表示从所述i级缓存读取所述数据后,当将所述数据 写入i-2级缓存所消耗的能量小于将所述数据写入i-1级缓所消耗的能量时,所述数据的 最大重用次数; 从所述i级缓存读取数据之前,向所述i级缓存查询所述数据的第一重用次数,并将所 述第一重用次数与所述旁路深度d进行比较,其中所述第一重用次数为所述数据放置入所 述i级缓存之后在所述i级缓存中被访问的次数; 若所述第一重用次数小于所述旁路深度山则从所述i级缓存读取所述数据后,将所述 数据写入i-2级缓存,使所述数据从所述i-2级缓存逐级加载到一级缓存,W减少读取所述 数据所消耗的能量。2. 根据权利要求1所述的方法,其特征在于,所述将所述第一重用次数与所述旁路深 度d进行比较之后,所述方法还包括: 若所述第一重用次数大于或等于所述旁路深度d,则从所述i级缓存读取所述数据后, 将所述数据写入i-1级缓存,使所述数据从所述i-1级缓存逐级加载到所述一级缓存。3. 根据权利要求1所述的方法,其特征在于,所述将所述数据写入i-2级缓存之后,所 述方法还包括: 统计每个数据的第二重用次数,其中一个数据的第二重用次数为所述一个数据在所述 缓存系统的所有缓存层中的总重用次数; 统计第二重用次数大于或等于所述旁路深度d的数据的第一数量N>d、第二重用次数 大于或等于d+n的数据的第二数量N>d+。、W及第二重用次数大于或等于d-m的数据的第S 数量N>dm,其中n和m为正整数; 根据所述第一数量d、所述第二数量d+。和所述第=数量N > d m之间的比例关系调 整所述旁路深度d。4. 根据权利要求3所述的方法,其特征在于,所述根据所述第一数量N > d、所述第二数 量d+。和所述第=数量N > d m之间的比例关系调整所述旁路深度山包括:老 则在所述旁路深度d的预设范围内将所述旁路深度d至少加1 ; 老 则在所述旁路深度d的预设范围内将所述旁路深度d至少减1。5. 根据权利要求1或4任一项所述的方法,其特征在于: 所述旁路特征值其中所述Ri为从所述i级缓存读取所述数据所消耗的能量,所述R Utw为检测所述 i-1级缓存未存储有所述数据所消耗的能量,所述Ri I为从所述i-1级缓存加载所述数据所 消耗的能量,所述Wi 1为将所述数据写入所述i-1级缓存所消耗的能量,所述R 1、所述Rfi 1, t。,、所述Ri 1和所述W 1 1是预先测量的定值。6. 根据权利要求3所述的方法,其特征在于,所述根据所述第一数量N >d、所述第二数 量d+。和所述第=数量N > d m之间的比例关系调整所述旁路深度山具体为: 在每一段时间间隔,根据所述第一数量N > t所述第二数量N > d+n和所述第=数量 N > d-m之间的比例关系判断是否需要调整所述旁路深度山并在判断结果为"是"时,调整 所述旁路深度d ; 所述方法还包括: 若判断为需要调整所述旁路深度山则缩短所述时间间隔; 若判断为不需要调整所述旁路深度山则延长所述时间间隔。7. -种旁路装置,其特征在于,应用于缓存系统,所述缓存系统包括N级缓存和至少一 个所述旁路装置,所述旁路装置包括输入装置、输出装置和处理器,其中所述处理器用于: 根据i级缓存中各数据的重用概率W及缓存系统的旁路特征值A确定所述i级缓存 和i-1级缓存间的旁路深度d,其中i和N都是整数并且3《i《N,所述旁路特征值入与 所述缓存系统中所述i级缓存和所述i-1级缓存的读写能耗有关,所述i级缓存中一块数 据的重用概率为在所述i级缓存中与所述一块数据的重用次数相同的数据量占所述i级缓 存的总数据量的比例,所述旁路深度d表示从所述i级缓存读取所述数据后,当将所述数据 写入i-2级缓存所消耗的能量小于将所述数据写入i-1级缓所消耗的能量时,所述数据的 最大重用次数; 从所述i级缓存读取数据之前,向所述i级缓存查询所述数据的第一重用次数,并将所 述第一重用次数与所述旁路深度d进行比较,其中所述第一重用次数为所述数据放置入所 述i级缓存之后在所述i级缓存中被访问的次数; 当所述第一重用次数小于所述旁路深度d时,从所述i级缓存读取所述数据后,将所述 数据写入i-2级缓存,使所述数据从所述i-2级缓存逐级加载到一级缓存,W减少读取所述 数据所消耗的能量。8. 根据权利要求7所述的旁路装置,其特征在于,将所述第一重用次数与所述旁路深 度d进行比较之后,所述处理器还用于: 当所述第一重用次数大于或等于所述旁路深度d时,从所述i级缓存读取所述数据后, 将所述数据写入i-1级缓存,使所述数据从所述i-1级缓存逐级加载到所述一级缓存。9. 根据权利要求7所述的旁路装置,其特征在于,所述将所述数据写入i-2级缓存之 后,所述处理器还用于: 通过计数器统计每个数据的第二重用次数,其中一个数据的第二重用次数为所述一个 数据在所述缓存系统的所有缓存层中的总重用次数; 统计第二重用次数大于或等于所述旁路深度d的数据的第一数量N>d、第二重用次数 大于或等于d+n的数据的第二数量N>d+。、W及第二重用次数大于或等于d-m的数据的第S 数量N>dm,其中n和m为正整数; 根据所述第一数量d、所述第二数量d+。和所述第=数量N > d m之间的比例关系调 整所述旁路深度d。10. 根据权利要求9所述的旁路装置,其特征在于,所述处理器根据所述第一数量N >d、 所述第二数量Ng d+。和所述第=数量N > d m之间的比例关系调整所述旁路深度山包括:若 则在所述旁路深度d的预设范围内将所述旁路深度d至少加1 ; 若 则在所述旁路深度d的预设范围内将所述旁路深度d至少减1。11. 根据权利要求7-10任一项所述的旁路装置,其特征在于: 所述旁路特征值其中所述Ri为从所述i级缓存读取所述数据所消耗的能量,所述R Utw为检测所述 i-1级缓存未存储有所述数据所消耗的能量,所述Ri 1为从所述i-1级缓存加载所述数据所 消耗的能量,所述Wi 1为将所述数据写入所述i-1级缓存所消耗的能量,所述R 1、所述Rfi 1, tag、所述Ri 1和所述W i 1是预先测量的定值。12. 根据权利要求9所述的旁路装置,其特征在于,所述处理器根据所述第一数量N >d、 所述第二数量N>d+。和所述第=数量N ^dm之间的比例关系调整所述旁路深度山具体为: 在每一段时间间隔,根据所述第一数量N > t所述第二数量N > d+n和所述第=数量 N > d-m之间的比例关系判断是否需要调整所述旁路深度d,并在所述判断的结果为"是"时 调整所述旁路深度d ; 所述处理器还用于: 在所述判断的结果为"是"时,缩短所述时间间隔; 在所述判断的结果为"否"时,延长所述时间间隔。13. -种缓存系统,其特征在于,所述缓存系统包括至少一个旁路装置W及N级缓存, 其中所述至少一个旁路装置为如权利要求7-12任一项所述的旁路装置,用于在处理核屯、 请求从i级缓存读取数据时,决定所述数据从所述i级缓存到一级缓存的路径,其中i和N 都是整数并且3《i《N。
【文档编号】G06F3/06GK105988730SQ201510093236
【公开日】2016年10月5日
【申请日】2015年3月2日
【发明人】刘勇攀
【申请人】华为技术有限公司, 清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1