[发明专利]构建及允许访问高速缓存的方法、设备及存储系统有效
申请号: | 200910225833.7 | 申请日: | 2009-11-30 |
公开(公告)号: | CN102486753A | 公开(公告)日: | 2012-06-06 |
发明(设计)人: | 甘志;戴晓君;张岳;拉贾·达斯 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F9/46 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 李镇江 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 构建 允许 访问 高速缓存 方法 设备 存储系统 | ||
技术领域
本发明涉及计算机存储领域,尤其涉及一种构建及允许访问高速缓存的方法、设备及存储系统。
背景技术
图1是一个计算机系统内部分层存储体系结构图。在图1中,103代表硬盘存贮器,主要用于存储计算机系统中不常调用的数据和程序代码;102代表主内存,用于存储计算机系统中比较常用的一些数据和程序代码;101代表高速缓存,一般位于CPU和主内存之间,用于保存计算机运行过程中最常访问的数据或程序代码。计算机系统中的线程与高速缓存101之间建立直接联系,从而避免了向速度较慢的主内存和硬盘存储器访问信息。
高速缓存是几乎所有高性能计算机系统中非常重要的部件。在数据库环境中,尤其在远程数据库环境中,高速缓存的应用更加广泛。在远程数据库访问的场合,远程站点向中心站点数据库访问的速度非常慢,因此在各远程站点有必要创建高速缓存来保存常用的数据。
目前,高速缓存被诸如Google、Facebook、Twitter的Web2.0服务提供商广泛使用。对于并行分布式环境来说,设计出高性能的高速缓存体系结构是至关重要的。对于高速缓存的任何性能改进都会大大节约计算机系统的运行成本,对IT业的发展产生重大影响。
由于多核(multicore)技术日益成为主流,越来越多的线程运行在一个计算机系统内。在讨论现有技术中多个并行线程访问同一高速缓存的解决方案之前,先了解一下高速缓存中存储元的组织方式和替换策略的运行方式。
图2示出了现有技术中在高速缓存中按散列表组织存储元的组织方式。虽然散列表是目前发现的最有效的组织存储元的方式,但也可以采用其它方式。图2中2001-2020表示20个存储元,其分别存储由关键字和值组成的对。例如,在2001中,A是关键字,26是与关键字对应的值。图2是一个链型的散列表,它用链来组织共享同一散列码的存储元。如图2所示,存储元2001、2002共享同一散列码0001,存储元2003独享散列码0002,存储元2004、2005、2006共享同一散列码0011,等等。应当注意,图2仅表示各存储元在散列表中的组织关系,不表示各存储元实际的位置关系。例如,存储元2001和2002在图2中相邻,但其实际存储位置可能是不相邻的。
例如,当线程发出一个包含关键字F的访问请求时,将关键字F代入散列函数从而得出散列码0011。因此可知,包含有关键字F的存储元在与散列码0011对应的链中。该链包含三个存储元2004、2005、2006。通过关键字的比较,得知含有关键字F的存储元为2006。存储元2006中存储的值为60。如果线程发出的是一个取请求,则将60取出;如果线程发出的是一个存请求,将该值改为访问请求中带有的预先设置的值。
图3表示图2中的各存储元在高速缓存满时的替换策略。如图3所示,当高速缓存满时,存储元2019中存储的数据被最先挤出,其次是存储元2011中存储的数据,......,存储元2003中存储的数据被最后挤出。
图4是现有技术中多个并行线程访问同一高速缓存的解决方案框图。图4中,线程1-4通过路由器访问同一高速缓存101。高速缓存101按图2所示的散列表组织存储元的关系,并包含数据替换顺序存储区10102,用于存储图3所示的各存储元在高速缓存满时的替换策略。高速缓存101包含第一锁10101,用于各存储元中的存储的数据的存取;高速缓存101还包含第二锁10103,用于更新各存储元在高速缓存满时的替换顺序。
图5是图4中各线程争夺第一锁从而访问高速缓存101的进程图。首先,各线程同时争夺第一锁。作为随机结果,线程1获得了第一锁,从而有权对高速缓存进行访问。然后,线程1按照如上所述的过程找到与关键字对应的存储元进行访问。访问完成后,解锁第一锁。各线程进行下一轮的争夺。作为随机结果,线程3又获得了第一锁......以此类推。
如果线程想要更新各存储元在高速缓存满时的替换顺序的话,就要争夺第二锁。图6是图4中各线程争夺第二锁从而更新各存储元在高速缓存满时的替换顺序的进程图。首先,各线程同时争夺第二锁。作为随机结果,线程4获得了第二锁,从而有权更新各存储元在高速缓存满时的替换顺序。接着,线程4对如图3所示的高速缓存满时各存储元的替换顺序进行更改。更改完成后,解锁第二锁。各线程进行下一轮的争夺。作为随机结果,线程1又获得了第二锁......以此类推。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910225833.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于大直径单晶位错的腐蚀清洗机
- 下一篇:光伏电源箱