1.一种改善缓存预取数据局部性的方法,所述方法包括:统计缓存中每个预取数据记录集合的预取命中次数,所述预取命中次数为该集合中被访问的数据记录的总数;对于其预取命中次数小于设定的命中阈值的预取数据记录集合,在将该集合换出缓存时,将该集合中被访问的数据记录写入到新的存储区域,与该存储区域中的其他数据形成新的预取数据记录集合;其中,对于缓存中每个预取数据记录集合:将该集合中首次被访问的数据记录标记为特殊记录;计算该集合中当前被访问的数据记录与上次被访问的数据记录之间的访问间隔,如果该访问间隔大于设定的间隔阈值,则将当前被访问的数据记录标记为特殊记录;以及其中对于其预取命中次数小于命中阈值的预取数据记录集合,在将该集合换出缓存时,将被标记为特殊记录的数据记录的预取入口修改为所述新的预取数据记录集合。
2.根据权利要求1所述的方法,所述访问间隔为时间间隔、访问次数间隔、自定义的逻辑间隔或者上述间隔的组合。
3.根据权利要求1所述的方法,还包括对于其预取命中次数小于命中阈值的预取数据记录集合,在将该集合换出缓存时,将该集合中被访问的数据记录预取入口都修改为所述新的预取数据记录集合。
4.一种改善缓存预取数据局部性的系统,所述系统包括:用于统计缓存中每个预取数据记录集合的预取命中次数的装置,所述预取命中次数为该集合中被访问的数据记录的总数;用于对于其预取命中次数小于设定的命中阈值的预取数据记录集合,在将该集合换出缓存时,将该集合中被访问的数据记录写入到新的存储区域,与该存储区域中的其他数据形成新的预取数据记录集合的装置;其中,所述系统还包括标记装置和修改装置,所述标记装置用于对于缓存中每个预取数据记录集合:将该集合中首次被访问的数据记录标记为特殊记录;计算该集合中当前被访问的数据记录与上次被访问的数据记录之间的访问间隔,如果该访问间隔大于设定的间隔阈值,则将当前被访问的数据记录标记为特殊记录;所述修改装置用于对于其预取命中次数小于命中阈值的预取数据记录集合,在将该集合换出缓存时,将被标记为特殊记录的数据记录的预取入口修改为所述新的预取数据记录集合。
5.根据权利要求4所述的系统,其中所述修改装置还用于对于其预取命中次数小于命中阈值的预取数据记录集合,在将该集合换出缓存时,将该集合中被访问的数据记录预取入口都修改为所述新的预取数据记录集合。
6.一种缓存访问方法,该方法包括:对于待访问的数据记录,如果缓存命中,则将缓存中包含该待访问的数据记录的预取数据记录集合的预取命中次数增加1;如果缓存未命中且有空的缓存项,则将包含该待访问的数据记录的预取数据记录集合预取到该缓存项中,并将该预取数据记录集合的预取命中次数增加1;如果缓存未命中且没有空的缓存项,则执行:判断选定的缓存项中预取数据记录集合的预取命中次数是否小于设定的命中阈值,如果小于,则将该集合中被访问的数据记录写入到新的存储区域,与该存储区域中的其他数据形成新的预取数据记录集合;以及将包含该待访问的数据记录的预取数据记录集合预取到该选定的缓存项中,并将该预取数据记录集合的预取命中次数增加1;其中对于缓存中每个预取数据记录集合:将该集合中首次被访问的数据记录标记为特殊记录;计算该集合中当前被访问的数据记录与上次被访问的数据记录之间的访问间隔,如果该访问间隔大于设定的间隔阈值,则将当前被访问的数据记录标记为特殊记录;以及在将其预取命中次数小于命中阈值的预取数据记录集合换出缓存时,将被标记为特殊记录的数据记录的预取入口修改为所述新的预取数据记录集合。
7.根据权利要求6所述的方法,还包括在将其预取命中次数小于命中阈值的预取数据记录集合换出缓存时,将该集合中被访问的数据记录预取入口都修改为所述新的预取数据记录集合。
8.根据权利要求6或7所述的方法,还包括:当所述新的预取数据记录集合中的数据记录个数达到设定的阈值时,对于缓存中其预取命中次数小于设定的命中阈值的每个预取数据记录集合,将该集合中被访问的数据记录写入到该新的预取数据记录集合中;停止对该新的预取数据记录集合的写入,获取空闲的缓存空间用于存储另一个新的预取数据记录集合。
展开