当前位置: 首页 > 专利查询>深圳大学专利>正文

基于数据局部性的访存方法技术

技术编号:11914552 阅读:70 留言:0更新日期:2015-08-20 17:55
本发明专利技术涉及计算机、电子产品等技术领域,尤其涉及一种基于数据局部性的访存方法。本方法对各数据根据其局部性强弱设定了相应的局部性强度等级,局部性强度等级越高的数据局部性越强,局部性强度等级越低的数据局部性越弱,同时,对各缓存块也设定了局部性强度等级,并设定缓存块的局部性强度等级数量与数据的局部性强度等级数量相等,各缓存块存储的数据的局部性强度等级不低于相应缓存块的局部性强度等级,且每一缓存组至少包括两种局部性强度等级的缓存块,从而限制了数据映射的自由性,避免了在缓存填充和替换过程中较高局部性强度等级的缓存块中的数据被较低局部性强度等级的数据替换,从而提高了缓存命中率,提升了CPU的访存性能。

【技术实现步骤摘要】

本专利技术涉及计算机、电子产品领域,尤其涉及一种。
技术介绍
高速缓存(Cache)是位于CPU与内存之间的临时存储器,它的容量比内存小,但存取速度比内存快得多。由于CPU的速度比内存速度快很多,高速缓存作为CPU与内存之间的桥梁,CPU将最有可能用到的数据和指令存放在高速缓存中,当CPU需要的指令和数据位于高速缓存中时,CPU就能快速从中读取,从而大大提高CPU的实际性能。高速缓存在一定程度上解决了 CPU与内存之间的速度不匹配问题,其是基于程序的局部性原理来工作的。程序的局部性原理是指,当CPU访问内存时,无论是存取指令还是存取数据,其所访问的内存都趋于集中在一个较小的连续区域中。局部性包括:时间局部性(Temporal Locality):如果内存中的某一个信息项正在被访问,那么在近期它很可能还会被再次访问。空间局部性(Spatial Locality):在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址(附近的内存区域)上是临近的。顺序局部性(Order Locality):在典型程序中,除转移类指令外,大部分指令是顺序进行的。顺序执行和非顺序执行的比例大致是5:1。基于程序访问的局部性原理,当CPU需要的指令或数据位于高速缓存中的概率越高,CPU访问内存的速度就越接近于访问缓存的速度,CPU的实际性能就越高。将CPU需要的指令或数据位于高速缓存中的概率定义为高速缓存的命中率,提高CPU性能的关键就是提高高速缓存的命中率。虽然程序中的大部分指令和数据符合程序的局部性特点,能充分利用高速缓存,从而大大提高CPU的性能,然而,程序中也有不少指令和数据的使用不符合程序的局部性原理,甚至由于这种类型的指令和数据的存在破坏了原来局部性较好的部分程序数据和指令,以致大大降低了性能,而且这种类型的数据在以数据为驱动的计算领域,如生物计算、大数据计算等领域特别明显。这种类型的数据特点是数据量巨大、访问内存空间无规律,访问越来越不符合时间局部性原理,频繁的缓存替换操作对高速缓存性能造成巨大影响,在多核CPU中,这种影响更明显。在多核CPU中,各个CPU核一般共享LLC(last level cache),(PU核竞争访问LLC,这种频繁的缓存替换操作比单核环境下更明显。产生以上现象的原因是,为了使用高速缓存,需要在缓存与内存之间建立映射关系,其映射的总体结果是,数据量越大,占用的缓存越多。以A、B两种数据类型为例,A类型数据具有较强的访问局部性,数据量较小,B类型数据具有较弱的访问局部性,且数据量很大,意味着访问局部性很弱的数据占据了大部分的缓存,以致A类型数据很有可能因为访问B类型的数据替换掉,下次访问访问A类型数据时需要从内存中加载,缓存命中率大大降低,缓存与主存间的访问时间增加,降低了缓存效率,从而降低了系统的性能。
技术实现思路
本专利技术所要解决的技术问题是,提出一种,以提高缓存命中率,提升CPU的访存性能。本专利技术是这样实现的:一种,缓存包括若干缓存组,每一缓存组包括若干缓存块,各缓存块具有各自的局部性强度等级,且每一缓存组至少包括两种局部性强度等级的缓存块;待访存的数据同样具有局部性强度等级,且其局部性强度等级数量与缓存块的局部性强度等级数量相同;局部性强度等级越高的数据局部性越强,局部性强度等级越低的数据局部性越弱;各缓存块存储的数据的局部性强度等级不得低于其自身的局部性强度等级;所述访存方法包括如下步骤:CPU核向缓存控制器发送要访问的主存地址;缓存控制器查询缓存中是否有所述主存地址的数据,如果有,则将所述数据发送给所述CPU核,否则,将主存中所述主存地址的数据映射到缓存,再通过所述缓存发送给所述CPU核。进一步地,各缓存块的局部性强度等级与其存储的数据的局部性强度等级相同。进一步地,所述主存地址附有局部性强度等级标记;所述局部性强度等级标记用于标识所述主存地址的数据的局部性强度等级;缓存控制器查询缓存中是否有所述主存地址的数据的步骤包括:定位与所述主存地址组号相同的缓存组,并定位该缓存组中局部性强度等级不低于所述主存地址的数据的局部性强度等级的缓存块;查询局部性强度等级不低于所述主存地址的数据的局部性强度等级的各缓存块中是否有区号及块号分别与所述主存地址的区号及块号相同的数据;如果有,则缓存中有所述主存地址的数据,否则,则缓存中没有所述主存地址的数据。进一步地,所述主存地址为物理地址或虚拟地址。与现有技术相比,本专利技术通过对每一缓存块设定局部性强度等级,且设定各缓存块存储的数据的局部性强度等级不得低于其自身的局部性强度等级,限制了数据映射的自由性,避免了在缓存填充和替换过程中较高局部性强度等级的缓存块中的数据被较低局部性强度等级的数据替换,从而提高缓存命中率,提升CPU的访存性能。【附图说明】图1:本专利技术流程示意图。【具体实施方式】为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。根据局部性原理,如果能够降低访问局部性较弱的数据对访问局部性较强的数据的影响,就可以提高缓存的命中率,从而降低缓存-主存的平均访问时间,提升CPU的访存性能。本专利技术正是基于该基本原理而提出的。图1所示为本专利技术流程示意图,在执行本专利技术的访存方法前,需要先做相应预处理,以适应本专利技术提出的方法。预处理主要包括以下两个方面:一、对于数据(程序、指令也被认为是一种数据)而言,数据根据其局部性强弱应具有相应的局部性强度等级,用以标识该数据的局部性强弱。数据的局部性强度等级可由系统或用户申请决定,也就是说,用户在编写和编译数据或程序时,可以判断数据的局部性强弱,并据此设定相应数据的局部性强度等级。局部性强度等级越高的数据局部性越强,局部性强度等级越低的数据局部性越弱。在设定数据的局部性强度等级时,可在该数据前添加一个局部性强度等级标记,以标记该数据的局部性强度等级,数据的局部性强度等级就可作为其局部性强度等级标记。例如,在编写和编译一段程序时,在该段程序代码函数的前面添加局部性等级标记3,以标记该程序段的局部性强度等级为3。根据各数据段的局部性强弱,可将数据分段,各数据段也可通过类似方式添加局部性强度等级标记,以标识各数据段的局部性强度等级。在将数据分配到内存时,根据不同数据的局部性强度等级,将不同局部性强度等级的数据分配到不同的内存页中,再根据各内存页中数据的局部性强度等级对各内存页添加相应的局部性强度等级标记,以标识该内存页中数据的局部性强度等级。二、对于缓存而言,主要是设定各缓存块的局部性强度等级。将缓存分为若干缓存组,每一缓存组包括若干缓存块,并设定各缓存块的局部性强度等级。缓存块的局部性强度等级用于表示该缓存块可用于存储的数据的最高局部性强度等级,即各缓存块存储的数据的局部性强度等级不得低于其自身的局部性强度等级。同时,缓存块的局部性强度等级数量与数据的局部性强度等级数量应相等。例如,缓存块和数据的局部性强度等级数量为5级,某一数据的局部性强度等级为3级,则该数据不能存储在局部性强度等级为4级及5级的缓存块中。这样,局部性强度等级为4级及5级的缓存块中的数据无法被局部性强度等级为3级的数据替换掉,从而削弱了较弱局当前第1页1 2 本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/CN104850508.html" title="基于数据局部性的访存方法原文来自X技术">基于数据局部性的访存方法</a>

【技术保护点】
一种基于数据局部性的访存方法,其特征在于,缓存包括若干缓存组,每一缓存组包括若干缓存块,各缓存块具有各自的局部性强度等级,且每一缓存组至少包括两种局部性强度等级的缓存块;待访存的数据同样具有局部性强度等级,且其局部性强度等级数量与缓存块的局部性强度等级数量相同;局部性强度等级越高的数据局部性越强,局部性强度等级越低的数据局部性越弱;各缓存块存储的数据的局部性强度等级不得低于其自身的局部性强度等级;所述访存方法包括如下步骤:CPU核向缓存控制器发送要访问的主存地址;缓存控制器查询缓存中是否有所述主存地址的数据,如果有,则将所述数据发送给所述CPU核,否则,将主存中所述主存地址的数据映射到缓存,再通过所述缓存发送给所述CPU核。

【技术特征摘要】

【专利技术属性】
技术研发人员:罗秋明刘国强毛睿刘刚
申请(专利权)人:深圳大学
类型:发明
国别省市:广东;44

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

1