基于内存访问堆栈距离的数据Cache性能探索方法

文档序号:6535593阅读:240来源:国知局
基于内存访问堆栈距离的数据Cache性能探索方法
【专利摘要】本发明公开了一种基于内存访问堆栈距离的数据Cache性能探索方法。本发明包括如下步骤:步骤1.计算内存访问堆栈距离及其概率分布;步骤2.确定探索的Cache容量及其三个参数组数S(Set?size)、关联度A(Associativity)和块大小B(Block?size)的范围;步骤3.计算估计参数es(S)、ea(A)和eb(B),利用es(S)、ea(A)和eb(B)估计Cache三个参数组数S(Set?size)、A(Associativity)和B(Block?size)对命中率的影响,并计算命中率est1;步骤4.利用内存访问堆栈距离的概率分布计算命中率est2;步骤5.比较命中率est1和est2,最终估计出Cache命中率。本发明在嵌入式系统内存结构早期设计中是非常有用,它能够帮助设计者快速从巨大的内存设计空间中筛选出少量满足具体应用要求的片上内存结构,从而节约产品开发时间和成本。
【专利说明】基于内存访问堆栈距离的数据Cache性能探索方法
【技术领域】
[0001]本发明涉及嵌入式系统的存储系统设计领域,特别是涉及一种基于内存访问堆栈距离的数据Cache性能探索方法。
【背景技术】
[0002]片上内存结构是嵌入式系统关键部件之一,它对系统的整体性能、制造成本、系统功耗等多个参数具有很大的影响。为得到给定应用的最优片上内存结构,嵌入式系统设计者必须对片上内存结构设计空间的每一种方案进行性能评价,以得到满足系统性能、功耗和成本等约束的最佳方案。然而,由于设计空间巨大,如片上内存类型是SPM(Scratch PadMemory)还是高速缓存Cache、容量怎么划分、Cache或SPM的具体设计参数等,如果仅仅靠仿真的方法去评价每一种片上内存配置,无疑是一件耗时耗力的事情,特别是在产品有上市时间限制的条件下,这种全仿真的方法更不可实现。
[0003]为在巨大的片上内存设计空间找出满足性能、功耗和成本要求的配置,设计者需要用快速准确的方法去评价不同片上内存配置的相对性能,这点对成本敏感的嵌入式系统设计尤为重要。例如,如果分析表明一个小的片上内存结构就能获得满意的性能,那么设计时就可以采用小的片上内存结构,从而减少芯片面积和降低芯片的生产成本,使产品更有竞争力。在片上内存结构 性能估计中,由于SPM是软件管理的片上内存,其上的数据对设计者是已知的,因此性能很好估计;难点在于硬件管理的Cache的性能估计,其上的数据对设计者未知,因此它的性能估计是片上内存结构性能估计的难点问题。由于Cache的性能公式为:
[0004]T = hit X Thit+(1-hit) X Tmiss
[0005]上述公式中,Thit和Tniiss分别为Cache命中时和失配时的访问延迟,它们很容易通过Cache的硬件结构和工艺库得到;hit为Cache针对不同应用的命中率,它是Cache性能估计的难点。可见,探索Cache在不同配置下的性能,关键是要估计Cache在不同配置下的命中率。针对这个问题,本发明专利提出一种基于内存访问堆栈距离的数据Cache命中率估计方法,以此实现对Cache性能的探索。
[0006]内存访问堆栈距离是指同一个内存地址两次连续访问之间的独一无二的其它内存地址的访问个数;如果该地址为第一次访问,堆栈距离记为⑴,如图1所示。在图1中,前2次内存访问都是新地址,因此内存访问堆栈距离为⑴;第3次访问在地址堆栈的第O个位置命中,因此内存访问的堆栈距离为O ;依次类推。
[0007]内存访问堆栈距离之所以能用来进行Cache命中率估计,在于它具有这样的性质:对于一个采用最近最少使用(LRU)替换策略的全相联Cache,其大小为s组;如果内存访问堆栈距离计算时的地址大小与Cache的块大小一致,则当内存访问的堆栈距离d≤s时,它在Cache里面命中;d > s时,它在Cache里面失配。由于内存访问堆栈也是按最近最少使用排序的,即将最近访问的排在最前面,离现在访问最远的排在最后面,因此本发明专利提出的基于内存访问堆栈距离的Cache性能探索方法仅适合于采用LRU替换算法的Cache0
【发明内容】

[0008]本发明的目的在于针对现有技术不足,实现Cache性能快速且准确估计,提供一种基于内存访问堆栈距离的数据Cache性能探索方法。
[0009]本发明解决其技术问题所采用的技术方案具体包括如下步骤:
[0010]步骤1.计算内存访问堆栈距离及其概率分布;
[0011]步骤2.确定探索的Cache容量及其三个参数组数S (Set size)、关联度A(Associativity)和块大小 B (Block size)的范围;
[0012]步骤3.计算估计参数 es (S)、ea(A)和 eb (B),利用 es(S)、ea(A)和 eb (B)估计 Cache三个参数组数S (Set size)、A (Associativity)和B (Block size)对命中率的影响,并计算命中率esh ;
[0013]步骤4.利用内存访问堆栈距离的概率分布计算命中率est2;
[0014]步骤5.比较命中率esh和est2,最终估计出Cache命中率。
[0015]步骤I所述的计算内存访问堆栈距离及其概率分布的具体如下:
[0016]1-1.读入一条内存访问踪迹,得到当前内存访问地址;
[0017]1-2.如果该地址在SP中第i个位置命中,则对应位置的堆栈距离直方图H_SP(i)加1,同时将SP的O~(1-ι)个元素往下挪移I个位置,用空出来的第O个位置保存该地址,SP中其它位置的元素不动。
[0018]1-3.如果该地址在SP中没有命中,则该地址是第一次访问,将H_SP (⑴)加I,SP增加一个新元素,SP所有元素往下挪移I个位置,最后将此地址保存在SP第O个位置。
[0019]1-4.重复步骤1-1至1-3,直到η条内存访问踪迹处理完成,将内存访问堆栈距离直方图通过公式(I)转换为内存访问堆栈的概率分布P_SP。
[0020]P_SP = H_SP/n (I)
[0021]读入是应用程序执行时的内存访问踪迹,输出是内存访问堆栈距离的概率分布和应用程序数据量大小;计算内存访问堆栈距离时的地址粒度为处理器的字宽度,SP是内存访问的地址堆栈,H_SP是内存访问堆栈距离的直方图,P_SP是内存访问堆栈距离的概率分布,η为应用程序内存访问踪迹条数,Num为应用程序的数据量。
[0022]步骤2中所述的Cache容量C、组数S (Set size)、关联度A (Associativity)和块大小B (Block size)的范围计算具体包括如下步骤:
[0023]2-1.根据应用程序数据量的大小Num,按下面公式(2)确定Cache探索的容量C ;该公式确定的Cache容量C的单位是比特,对应以字为单位的Cache容量size = 2C字。
[0024]
【权利要求】
1.基于内存访问堆栈距离的数据Cache性能探索方法,其特征在于包括如下步骤: 步骤1.计算内存访问堆栈距离及其概率分布; 步骤2.确定探索的Cache容量及其三个参数组数S (Set size)、关联度A(Associativity)和块大小 B (Block size)的范围; 步骤3.计算估计参数es (S)、ea (A)和eb (B),利用es (S)、ea (A)和eb (B)估计Cache三个参数组数S (Set size)、A (Associativity)和B (Block size)对命中率的影响,并计算命中率esh ; 步骤4.利用内存访问堆栈距离的概率分布计算命中率est2 ; 步骤5.比较命中率esh和est2,最终估计出Cache命中率; 步骤I所述的计算内存访问堆栈距离及其概率分布的具体如下: 1-1.读入一条内存访问踪迹,得到当前内存访问地址; 1-2.如果该地址在SP中第i个位置命中,则对应位置的堆栈距离直方图H_SP(i)加1,同时将SP的O~(1-1)个元素往下挪移I个位置,用空出来的第O个位置保存该地址,SP中其它位置的元素不动; 1-3.如果该地址在SP中没有命中,则该地址是第一次访问,将H_SP(⑴)加1,SP增加一个新元素,SP所有元素往下挪移I个位置,最后将此地址保存在SP第O个位置; 1-4.重复步骤1-1至1-3,直到η条内存访问踪迹处理完成,将内存访问堆栈距离直方图通过公式(I)转换为内存访问堆栈的概率分布P_SP ;
P-SP = H_SP/n (I) 读入是应用程序执行时的内存访问踪迹,输出是内存访问堆栈距离的概率分布和应用程序数据量大小;计算内存访问堆栈距离时的地址粒度为处理器的字宽度,SP是内存访问的地址堆栈,H_SP是内存访问堆栈距离的直方图,P_SP是内存访问堆栈距离的概率分布,η为应用程序内存访问踪迹条数,Num为应用程序的数据量。
2.如权利要求1所述的基于内存访问堆栈距离的数据Cache性能探索方法,其特征在于步骤2中所述的Cache容量C、组数S (Set size)、关联度A (Associativity)和块大小B (Block size)的范围计算具体包括如下步骤: 2-1.根据应用程序数据量的大小Num,按下面公式(2)确定Cache探索的容量C;该公式确定的Cache容量C的单位是比特,对应以字为单位的Cache容量size = 2e字;

3.如权利要求1所述的基于内存访问堆栈距离的数据Cache性能探索方法,其特征在于步骤3中所述的参数es(S)、ea(A)、eb(B)和命中率^t1的计算步骤具体如下: 3-1.计算估计参数es(S),es(S)用来估计组数S(Set size)对命中率的影响,计算过程如下: 3-1-1.确定es(Smin)和组数S (Set size)的初始值,

4.如权利要求1所述的基于内存访问堆栈距离的数据Cache性能探索方法,其特征在于步骤4中所述的计算命中率est2具体方法如下: 在步骤I得到内存访问堆栈距离的概率分布P_SP后,应用公式(11)估计块大小为I个字、组数为size的全关联LRU Cache的命中率,并将此命中率的1.25倍作为est2,其实质是用它作为Cache在参数为S、A和B时的命中率的上限;
5.如权利要求1所述的基于内存访问堆栈距离的数据Cache性能探索方法,其特征在于步骤5中所述的在参数为S、A和B时估计并输出最终Cache的命中率est,此命中率为esti和est2较小的,即: est = min(est1, est2) (12)。
【文档编号】G06F13/16GK103793339SQ201410014367
【公开日】2014年5月14日 申请日期:2014年1月13日 优先权日:2014年1月13日
【发明者】姚英彪, 韩琪 申请人:杭州电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1