[发明专利]请求访问零拷贝高速缓存的方法及系统有效
申请号: | 201110392008.3 | 申请日: | 2011-11-23 |
公开(公告)号: | CN103136115A | 公开(公告)日: | 2013-06-05 |
发明(设计)人: | 胡畅泉;陈志丰 | 申请(专利权)人: | 英业达集团(天津)电子技术有限公司;英业达股份有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 梁挥;常大军 |
地址: | 300193*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 请求 访问 拷贝 高速缓存 方法 系统 | ||
技术领域
本发明涉及对高速缓存(Cache)的内存使用技术,尤其涉及零拷贝(Zero copy)Cache的内存使用方法。
背景技术
Cache(高速缓存),是计算机系统中的重要组成部分,它广泛存在于中央处理器(CPU),磁盘控制器,总线适配器等部件中。Cache本质上是一个概念,一种逻辑,它既可以硬件的形式存在,在硬件的配合下发挥作用。
Cache的核心功能是加快目标部件对外界访问的响应速度,对于存储系统而言,Cache的意义主要在于提高磁盘系统的访问速度。Cache的功能主要分为两个方面,即,服务读请求与写请求。对于写请求,Cache的作用在于将待写数据暂存在高速设备(内存)中,使访问者不必等待数据真止写至低速目标设备(磁盘等)。对于读请求,Cache的意义在于能够将高速设备中的数据副本尽快返回给用户,而不必去访问实际低速设备。
在整个存储系统的软件架构中,其中软件构架包括ISCSI(internet Small Computer System Interface,互联网小型计算机系统接口)、Cache、LVM(Logical Volume Manager,逻辑卷管理)、RAID(Redundant Array of Independent Disk,独立冗余磁盘阵列)和HDD(Hard Disk Drive,硬盘驱动器)。
如图1所示,Cache位于ISCSI服务层之下,LVM层之上,属于衔接部件,对存储系统性能有重要影响。
从数据的流向来看,由ISCSI服务层下发的请求全部汇聚于Cache,为保证Cache数据的完整性,对Cache中同一区域的使用,必须以互斥方式进行。即,当某个区域正在被访问时,对此区域的其它访问请求需要等待。此种策略在保证了逻辑的正确性的同时,降低了请求的处理速度,成为了系统效能的一个瓶颈。
但是对于零拷贝Cache,由于Cache内存在被一个用户使用的过程中必须锁定,从而来防止两个用户共同使用内存所造成的混乱。当一个用户在使用特点的内存组块(memory chunk)时,其他需要使用该内存组块的用户必须等待,从而降低了并发,减少了效能。
发明内容
本发明的目的旨在至少解决现有技术中的上述问题之一。
为此,本发明的实施例提出了一种请求访问零拷贝Cache的方法及系统,以在保证逻辑正确性的同时提高请求的处理速度。
根据本发明的一个方面,本发明实施例提出了一种请求访问零拷贝高速缓存Cache的方法,所述访问方法包括以下步骤:为每个访问Cache的请求创建一个请求数据结构,其中所述请求数据结构包括有记录对应访问请求需要访问的Cache区域的地址;将所述请求数据结构依照请求顺序放入请求队列中;根据请求队列中的每个请求数据结构,识别对应的访问请求需要访问的Cache区域是否被占用;在识别写请求需要访问的Cache区域被占用时,对该写请求分配暂存空间并将对应数据写入所述暂存空间中;以及在被占用Cache区域被释放时,将所述暂存空间的数据写入该Cache区域中。
根据本发明进一步的实施例,在识别写请求需要访问的Cache区域未被占用时,将写请求对应数据写入该Cache区域中。
根据本发明进一步的实施例,在识别读请求需要访问的Cache区域被占用时,延迟该读请求对被占用Cache区域的访问;以及在读请求返回时访问该Cache区域。
根据本发明进一步的实施例,在识别读请求需要访问的Cache区域未被占用时,则读取该Cache区域。
根据本发明进一步的实施例,所述暂存空间的容量与被占用的Cache区域容量一致。
根据本发明的另一方面,本发明的实施例提出一种请求访问零拷贝高速缓存Cache的系统,所述访问系统包括:创建模块,所述创建模块用于为每个访问Cache的请求创建一个请求数据结构,其中所述请求数据结构包括有记录对应访问请求需要访问的Cache区域的地址;队列模块,所述队列模块用于将所述请求数据结构依照请求顺序放入请求队列中;识别模块,所述识别模块用于根据请求队列中的每个请求数据结构,识别对应的访问请求需要访问的Cache区域是否被占用;空间分配模块,所述空间分配模块用于在识别写请求需要访问的Cache区域被占用时,对该写请求分配暂存空间;以及写模块,所述写模块用于将写请求对应数据写入所述暂存空间中;以及在被占用Cache区域被释放时,将所述暂存空间的数据写入该Cache区域中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英业达集团(天津)电子技术有限公司;英业达股份有限公司,未经英业达集团(天津)电子技术有限公司;英业达股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110392008.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:植球治具
- 下一篇:一种加工自行车曲柄中11.5mm孔专用夹具