随机替换缓存的高效模拟方法技术

技术编号:4052792 阅读:169 留言:0更新日期:2012-04-11 18:40
本发明专利技术有关于一种随机替换缓存的高效模拟方法,包括:步骤一,通过对E(Xi)=1-E((1-1/M)Zi)的近似,得到估算公式(1)或估算公式(2):E(Xi)≈1-(1-1/M)E(Zi)(1)E(Xi)≈1-∏j(1+E(Xj)/(M-1))-1(2)步骤二,根据由估算公式(1)或估算公式(2)得到的E(Xi)计算访存序列中每点的命中概率1-E(Xi);其中,Xi为缺失事件的指标随机变量,E(Xi)为Xi的数学期望,M为缓存的相联度,Xj属于Xi的重用窗口,即从ai的值上一次出现到i之间的所有缺失事件。如果访存序列中点ai的值此前未出现过,则Zi=∞;如果ai的值此前出现过,则Zi=从ai的值上一次出现到i之间的缺失事件次数。本发明专利技术通过使用概率模型的估算公式,可以通过一轮模拟得到一访存序列中每点的命中概率的估计。

【技术实现步骤摘要】

本专利技术涉及计算机领域的缓存模拟技术,尤其涉及一种采用随机替换策略的缓存 的高效模拟方法。
技术介绍
缓存在计算机系统中被广泛应用于提高性能。缓存将地址映射到值。由于访问 缓存的代价小于访问内存,所以把最近经常访问的值放到缓存里有利于降低访问内存的开 销。当缓存接受到对一个地址的访问请求时,它会查找自身内容,寻找与该地址对应的缓存 行。如果这样的行存在,则称发生了命中事件该事件下返回存储在缓存里的对应的值;如 果这样的行不存在,则称发生了缺失事件该事件下通过某种备份机制获得需要的值,然后 依照替换策略在备选缓存行中选出一个行逐出缓存从而制造一个空闲行,并把地址与新获 得的值存到新空闲行。替换策略是在备选缓存行中选出驱逐对象的策略。随机替换策略在 备选缓存行中随机选出驱逐对象。缓存模拟是评估缓存作用的重要技术。缓存模拟通过使用模拟器模拟目标缓存的 参数与替换策略,来了解缓存处理某一地址序列后生成的命中缺失事件序列。但对于采用 随机替换策略的缓存而言,传统的蒙特卡洛模拟方法一轮运行只能给出多种可能之一,所 以一轮模拟不能完全反映一个地址序列对应的命中缺失事件序列,因而需要多轮模拟以评 估缓存影响。比如假设<a,e>代表一个内容包含a和e的2大小的全相联缓存,这里不同 的字母代表不同的缓存行。当面对一个访问序列d,a时首先由于d不在缓存中,所以发生 缺失事件,此后视驱逐对象的不同,缓存状态可能有两种<d,e>或者<a,d〉。此时再接受 对a的访问时,若缓存状态为<d,e>,则发生缺失事件;若缓存状态为<a,d&gt;,则发生命中事 件。因此d,a对应的命中缺失事件序列有“缺失、缺失”和“缺失、命中”两种,但是显然这 不能在一轮模拟中被观察到。所以蒙特卡洛模拟方法有以下问题一次运行不能给出访存 序列中每点的命中概率,而只能通过多轮模拟求平均概率的方法来得到每点的命中概率。由于组相联缓存等效于一个全相联缓存的阵列,所以以下只讨论全相联缓存的模 拟。设访存队列为aQ,ai,···%。下标代表逻辑时间。设Xc^X1,…XnS缺失事件的指 标随机变量。那么E(Xi)就是 的缺失概率,I-E(Xi)就是 的命中概率,其中E(x)为χ的 数学期望。定义重用窗口为从 的值上一次出现到i之间的访存子队列。比如对于a,b,c, a, d, a, b最后一个b所对应的重用窗口从上一个b开始,包括c,a, d,a。定义Zi如下如果 的值此前未出现过,则Zi ;如果 的值此前出现过,则 Zi =JAai的值上一次出现到i之间的缺失事件次数。通过数学分析,对于相联度为M的缓存可以得到以下精确公式E(Xi)=I-E((I-IZM)Zi);E(Zi)=①;如果Bi的值此前未出现过;或E (Zi) =Σ」.E(Xp,其中Xj属于屮的重用窗口。
技术实现思路
本专利技术的一目的在于提供一种,用于解决传统的蒙 特卡洛模拟方法存在的一次运行不能给出访存序列中每点的命中概率的问题。为了实现上述目的,本专利技术提供一种,其特征在于, 包括步骤一,通过对E(Xi) = l-E((l_l/M)Zi)的近似,得到估算公式(1)或估算公式 ⑵E(Xi) ^ l-(l-l/M)E(Zi)(1)E (Xi) ^ 1- Π j (1+E (Xj) / (M-I))(2)步骤二,根据由估算公式(1)或估算公式(2)得到的E(Xi)计算访存序列中每点 的命中概率;其中,Xi为缺失事件的指标随机变量,E (Xi)为Xi的数学期望,M为缓存的相联度, Xj属于Xi的重用窗口,为从 的值上一次出现到i之间的所有缺失事件,如果访存序列中 点 的值此前未出现过,则Zi =⑴;如果ai的值此前出现过,则Zi =从 的值上一次出现 到i之间的缺失事件次数。所述的,其中,所述步骤二中,进一步包括以如下公式计算所述访存序列中每点的命中概率每点的命中概率=1-估算公式⑴得到的E(Xi);或每点的命中概率=1-估算公式⑵得到的E(Xi)。所述的,其中,所述步骤二中,进一步包括通过带偏移的包含h',h〃,b,c元素的双哈希表计 算所述访存序列中每点的命中概率,具体为步骤31,b — 0,c — 0,h'和h〃指向两个不同的空哈希表,其中“一”表示给一个 变量赋值,选择估算公式计算K值;步骤32,根据 所处的哈希表返回sum值;步骤33,根据sum值、所选择的估算公式计算出E(Xi);步骤34,根据计算出的E(Xi)、所选择的估算公式计算偏移值delta ;步骤35,根据delta值,进行如下处理b ^ b+delta, c ^ c+delta, h' [aj ^ ~h0所述的,其中,所述步骤31中,进一步包括当选择估算公式(1)时,则K = In ( ε )/In (1-1/Μ);或当选择估算公式⑵时,则K = -In ( ε )/In (1+1/(M-I));其中In为自然对数,ε控制精度,取0.01。所述的,其中,所述步骤32中,进一步包括当&1处于h'指向的哈希表时,sum = h' 为 在11'指向的哈希表中的值,h〃 [aj为 在11"指向的哈希表中 的值。所述的,其中,所述步骤33中,进一步包括当 sum =⑴时,E(Xi) = 1 ;或当sum乒⑴且选择估算公式(1)时,E(Xi) ^ 1-(1-1/M严),E(Zi) = sum ;或当sum兴①且选择估算公式⑵时,E(Xi) ^ l-exp(_sum*ln (1+1/(M-I)));其中exp是以欧拉数为底的指数函数。所述的,其中,所述步骤34中,进一步包括当选择估算公式(1)时,则delta = E(Xi);或当选择估算公式(2)时,则delta = In (1+E (Xi) / (M-I))/In (1+1/(M-I))。所述的,其中,所述步骤35中,进一步包括判断c是否大于K,如大于,则进行处理c — c-K,清空h〃指向的哈希表,并交换 h'和h"指向的哈希表。所述的,其中,h'和h"指向的哈希表的大小之和为O(K),0为计算机科学中常用的渐近上界。所述的,其中,所述M为大于或等于2的整数。与现有技术相比,本专利技术的有益技术效果在于本专利技术解决了现有技术中一次运行不能给出访存序列中每点的命中概率的问题。 通过使用概率模型的估算公式,可以通过一轮模拟得到一访存序列中每点的命中概率的估 计;估算精度相当于五十轮传统的蒙特卡洛模拟;计算可以在线性时间和准线性空间中完 成。附图说明图1是本专利技术的流程图;图2是本专利技术的随机替换缓存的高效模拟的一实施例;图3是本专利技术的每点命中概率的绝对误差与传统蒙特卡洛法的绝对误差的概率 分布6图4是本专利技术与传统蒙特卡洛法的程序运行时间与输入地址序列长度的关系图;图5是本专利技术的程序占用内存的峰值与所模拟缓存的大小的关系图。具体实施例方式以下结合附图和具体实施例对本专利技术进行详细描述,但不作为对本专利技术的限定。如图1所示,是本专利技术的流程图。该方法流程包括步骤101,通过对E(Xi) = l-E((l-l/M)Zi)的近似,得到估算公式(1)E(Xi) ^ l-(l-l/M)E(Zi)(1)利用这一估算,可以与E(Zi)的定义形成迭代式;该步骤形成迭本文档来自技高网
...

【技术保护点】
一种随机替换缓存的高效模拟方法,其特征在于,包括:步骤一,通过对E(X↓[i])=1-E((1-1/M)↑[Zi])的近似,得到估算公式(1)或估算公式(2):E(X↓[i])≈1-(1-1/M)↑[E(Zi)](1)E(X↓[i])≈1-∏↓[j](1+E(X↓[j])/(M-1))↑[-1](2)步骤二,根据由估算公式(1)或估算公式(2)得到的E(X↓[i])计算访存序列中每点的命中概率;其中,X↓[i]为缺失事件的指标随机变量,E(X↓[i])为X↓[i]的数学期望,M为缓存的相联度,X↓[j]属于X↓[i]的重用窗口,为从a↓[i]的值上一次出现到i之间的所有缺失事件,如果访存序列中点a↓[i]的值此前未出现过,则Z↓[i]=∞;如果a↓[i]的值此前出现过,则Z↓[i]=从a↓[i]的值上一次出现到i之间的缺失事件次数。

【技术特征摘要】

【专利技术属性】
技术研发人员:周舒畅
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1