The invention discloses a method for obtaining disorderly memory access behavior patterns of applications based on clustering, reordering the disorderly execution flow of applications, obtaining sequential execution flow, extracting stack distance distribution of sequential execution flow and stack distance distribution of disorderly execution flow respectively, and calculating sequential execution flow stack of each thread. The percentage of change in stack distance distribution of distance distribution and stack distance distribution of disorderly execution flow; clustering the percentage of change in stack distance distribution of all threads; and selecting the program fragments of threads nearest to the centroid from each class according to the clustering results. The memory access behavior pattern obtained by this method can be used as the smallest change unit of instruction disorder within a program to provide more fine-grained disorder behavior analysis.
【技术实现步骤摘要】
基于聚类获取应用程序乱序访存行为模式的方法
本专利技术属于软硬件协同设计
,具体地涉及一种基于聚类获取应用程序乱序访存行为模式的方法。
技术介绍
目前的高级处理器,为了提高内部逻辑元件的利用率以提高运行速度,通常会采用多指令发射、乱序执行等各种措施。其中,乱序执行机制通过将指令重新排序,分开发送给各相应电路单元处理,从而加快了程序的执行速度。在芯片的性能评估体系中,cache的miss率是一个很重要的参数。因为cache的访存拥有空间局部性和时间局部性,所以访存指令的执行顺序会影响cache的miss率。乱序处理器的乱序执行机制可以打乱程序原有的指令顺序,但是,对于不同的程序,乱序后指令的执行顺序与程序本身的指令顺序之间的差异也不相同,我们称这种情况为乱序程度的不一致。显然,不同的程序经过乱序执行后其cache的miss率的变化也不一样。当前,研究者们通常使用堆栈距离的概念来表征程序的执行顺序。访存堆栈距离指对同一Cacheline的两次连续访存请求之间的请求地址个数。基于LRU替换策略的Cache结构,可直接利用访存堆栈距离分布,根据Cache组关联数直接获取访问缺失次数。乱序执行机制对指令顺序的改变会影响到堆栈距离的分布,不同的乱序程度也就意味着不同的堆栈距离分布变化。目前虽然已经有研究者注意到了这种乱序程度因程序而异的情况,但是一般的应用程序都较大,执行过程较为复杂,整个程序的乱序程度是由一系列的更小的乱序执行单位共同影响造成的。如今业内缺少一种可以用来研究乱序程度的最小变化单位,而本专利技术就是针对这个问题,提供程序乱序程度的最小变化单位的提 ...
【技术保护点】
1.一种基于聚类获取应用程序乱序访存行为模式的方法,其特征在于,包括以下步骤:S01:对应用程序的乱序执行流进行重排序,得到访存顺序执行流,分别提取顺序执行流堆栈距离分布和乱序执行流堆栈距离分布;S02:计算每个线程的顺序执行流堆栈距离分布和乱序执行流堆栈距离分布的堆栈距离分布变化百分比;S03:对所有线程的堆栈距离分布变化百分比进行聚类;S04:根据聚类结果,从每一类中选出距离质心最近的线程的程序片段。
【技术特征摘要】
1.一种基于聚类获取应用程序乱序访存行为模式的方法,其特征在于,包括以下步骤:S01:对应用程序的乱序执行流进行重排序,得到访存顺序执行流,分别提取顺序执行流堆栈距离分布和乱序执行流堆栈距离分布;S02:计算每个线程的顺序执行流堆栈距离分布和乱序执行流堆栈距离分布的堆栈距离分布变化百分比;S03:对所有线程的堆栈距离分布变化百分比进行聚类;S04:根据聚类结果,从每一类中选出距离质心最近的线程的程序片段。2.根据权利要求1所述的基于聚类获取应用程序乱序访存行为模式的方法,其特征在于,所述步骤S01堆栈距离分布计算方法,包括:设置第一哈希表和第二哈希表,所述第一哈希表采用地址中Tag与Set位域作为索引,获取内容无效化标志以及前次同地址访存的序号,所述第二哈希表采用地址Set位域索引,获取指向红黑树的指针;通过在第一哈希表中索引到的SN号,在红黑树中找到存储位置,所述红黑树中存储访存序号为SN,并按照升序排列,计算该位置与红黑树尾端的距离作为当前访存请求在CacheSet内的堆栈距离;计算堆栈距离完成后,将当前访存序号更新到在哈希表和红黑树中索引的SN处...
【专利技术属性】
技术研发人员:凌明,季柯丞,李宽,张凌峰,
申请(专利权)人:东南大学,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。