一种高速缓冲存储器及其数据操作方法

文档序号:6460781阅读:176来源:国知局
专利名称:一种高速缓冲存储器及其数据操作方法
技术领域
本发明涉及磁盘阵列技术,尤其涉及磁盘阵列中的Cache (高速緩 冲存储器)及其数据操作方法。
背景技术
在磁盘阵列中,Cache是一种特殊的存储器,由Cache存储区和 Cache控制区组成,用于緩存主才几请求的数据,它是影响磁盘阵列性能 的关键因素之一。Cache的组织方式通常有两种, 一种方式是读数据和 写数据共同使用整个Cache存储区域;另一种方式是读数据和写数据4吏 用不同的Cache存储区域。
由于读操作和写操作的不同特性,读Cache和写Cache通常使用不 同的Cache存储区域。磁盘阵列在不同的应用环境下,甚至在相同的应 用环境下,会存在读写比例不一致的情况。
如图l所示,该图为现有Cache的存储区的结构图,该Cache的工 作方式为读数据和写数据4吏用不同的存储区域,因而将读Cache区域和 写Cache区域进行了物理划分,假设Cache存储区域大小为1G,前512M 为读数据区域,后512M为写数据区域。
在上述读Cache和写Cache的区域分开的情况下,存在数据既^f^ 在读Cache区域也保存在写Cache区域的情况,在读数据时,要保证读 取最新的数据。针对上述Cache, US6321298专利中提出了一种读写数 据的方法。读数据的操作流程如图2所示,具体为201、 当接收到读请求时,首先查询写数据区中是否存在读请求的 数据,如果存在,则进入步骤207,否则进入步骤202。
202、 查询读数据区中是否存在读请求的数据,如果存在,则进入 步骤207;否则,写数据区和读数据区都不存在需访问的数据,到存储 设备中读取读请求的数据,进入步骤203。
203、 查询读数据区是否存在空闲空间,如果存在空闲空间则进入 步骤205;否则ii^步骤204。
204、 在读数据区释放部分空间
205、 为读数据申请空间。
206、 从存储设备中读取数据,保存到读数据区。
207、 返回读请求的数据。 写数据的流程如图3所示
301、 当接收到写请求时,查询写数据区是否存在写请求的数据, 如果存在,则进入步骤307;否则进入步骤303。
302、 查询写数据区是否存在空闲空间,若存在,则i^步骤306, 否则进入步骤303。
303、 在写数据区执行刷新操。
304、 将刷新数据拷贝到读数据区。
305、 释放刷新数据存i文的空间。
306、 在写数据区申请空间。
307、 将写请求的数据写入写数据区。
根据上述Cache的存储结构进行上述数据读写操作中存在以下问题由于读写区域完全相互分离,则调整读写区域的比例大小时操作比 较复杂,需要移动读数据区域和写数据区域中存放的数据;写数据区域 进行数据刷新时需要将刷新的数据拷贝到读数据区域,增加了刷新数据 的时间,降低了效率和准确度。

发明内容
本发明所要解决的技术问题是提供一种Cache及其数据操作方法,
为解决上述技术问题,本发明是通过以下技术方案实现的 一种高速緩冲存储器,包括存储区和控制区,所述存储区包括高速 緩冲存储器Cache块信息区和Cache块数据区;
所述Cache块信息区包括读Cache块信息区和写Cache块信息区, 用于存储Cache块数据区中每个数据块的信息,该信息包括数据块的相 关信息和数据存放地址;
所述Cache块数据区用于以块为单位存储数据。
其中,所述Cache块数据区包括使用标记表和数据存放区;
所述使用标记表用于存储一序列的标记,每位标记与数据存放区中 的一个数据块相对应,用于标识所对应数据块的物理空间是否已经被使 用;
所述数据存放区包括至少一个数据块,用于存放数据。 一种如上所述的高速緩沖存储器的数据操作方法,所述方法包括数 据的读取和写入方法;其中,所述数据的读取方法为
A、 在读Cache块信息区中获取保存所要读取数据的数据块的信息;
B、 根据所述信息中的数据存放地址到Cache块数据区中相应数据 块读取数据;
所述数据的写入方法为
a、 在写Cache块信息区中查找是否有保存所要写入数据的数据块 的信息,若有,则进入步骤b,否则ii^步骤c;
b、 从写Cache块信息区中获M目应数据块的信息,再根据其中的 数据存力文地址到Cache块数据区中相应数据块写入新的数据,之后结束;
c、 向写Cache块信息区和Cache块数据区分别申请数据块信息存 放空间和数据存放空间,然后将数据写入所申请的数据块中,并将该数 据块的相关信息及数据存放地址写入所申请的数据块信息存放空间中。
其中,所述数据的读取方法中还包括在读取数据时,若读Cache 块信息区中没有存储所要读取数据的数据块的信息,则到存储设备中读 取数据,然后向读Cache块信息区和Cache块数据区分别申请数据块信 息存放空间和数据存放空间,将所述数据写入所申请的数据块中,并将 该数据块的相关信息及数据存放地址写入所申请的数据块信息存放空 间中。
其中,所述数据的写入方法中还包括写入数据之后进行刷新操作, 该操作进一步包括在写Cache块信息区中查询需要刷新的数据块的信 息,根据其中的数据存放地址获取数据,将该数据存放到存储设备,并 将所述需刷新的数据块的信息拷贝到读Cache块信息区中。其中,所述方法中,在申请存放空间时,若Cache块数据区的存放 空间已满,则在申请存放空间之前先进行释放空间操作,该操作进一步 包括在Cache块信息区中查询可释放的数据块的信息,才艮据其中的数 据存放地址找到Cache块数据区中相应的数据块,删除其中的数据,并 删除Cache块信息区中该萄:据块的信息。
其中,所述方法中,在申请数据存放空间时,根据Cache块数据区 的使用标记表来查找未使用的数据块,并到Cache块数据区的使用标记 表将所申请的数据块对应的标记位设置为1,以标识该数据块已被使用。
其中,所述方法中,在进行释放空间^^t时,还包括到Cache块 数据区的使用标记表将所释放的数据块对应的标记位设置为0,以标识 该数据块未使用。
其中,所述方法还包括对Cache块信息区中的读Cache块信息区 和写Cache块信息区的空间比例大小进行调整。
本发明具有以下有益效果
1 )本发明将Cache划分为Cache块信息区和Cache块数据区,Cache 块信息区中的写和读Cache块信息区共享Cache块数据区,因而,在调 整读写Cache区域比例的大小时只需要调整Cache块信息区中写Cache 块信息区和读Cache块信息区的比例,不需要大量的数据拷贝,提高了 调整的灵活性;
2)在写数据之后进行刷新操作时,只需将相关数据块的信息从写 Cache块信息区拷贝到读Cache块信息区中,只进行了少量的数据拷贝, 减少数据刷新的时间,提高了刷新的性能。


图1为现有技术中Cache存储区域的结构示意图2为现有技术中读数据的操作流程图3为现有技术中写数据的操作流程图4为本发明中Cache存储区域的结构示意图5为本发明中Cache块数据区的空间结构图6为申请空间操作的方法流程图。
具体实施例方式
下面将结合附图和具体实施方式
对本发明作进一步详细的描述
请参阅图4,该图所示为本发明中Cache存储区域的结构图,包括 Cache块信息区和Cache块数据区。
其中,Cache块信息区又包括读Cache块信息区和写Cache块信息 区两部分,均用于存储Cache块数据区中每个数据块的信息,该信息包 括数据块的相关信息(如数据的写入时间等)和数据存放地址。
Cache块数据区的空间结构图如图5所示,包括使用标记表和数据 存放区;使用标记表用于存储一序列的标记,每位标记与数据存放区中 的一个数据块相对应,用于标识所对应数据块的物理空间是否已经祐J吏 用(下面以l表示已使用,0表示未使用为例);数据存放区包括至少一 个数据块,用于存放数据。
上述Cache可进行的操作有申请空间、释放空间、访问数据、刷 新写数据、调整读写Cache区域大小等,具体如下所述
申请空间操作实现流程如图6所示,包括以下步骤,601、 到Cache块信息区中申请Cache块信息存》文空间,如果是读 数据,就到读Cache块信息区中申请,否则就到写Cache块信息区中申 请;
602、 再到Cache块数据区申请数据存放空间,根据Cache块数据 区的使用标记表找出未使用的数据块区域;
603、 到使用标记表将所申请的数据块对应的标记位设置为1,以标 识该数据块已被使用;
604、 将在Cache块数据区中数据存放区中申请的数据存放地址保 存到Cache块信息区中。
访问Cache中数据操作首先到Cache块信息区获得数据块的相关 信息和数据存放地址,然后根据Cache块数据存放地址到Cache数据区 中的数据存》文区中访问该Cache块存^t的数据。
释放Cache空间操作在Cache块信息区中找出要释放的数据块的 信息,获取该数据块的数据存放地址,再到Cache块数据区的使用标记 表中将该数据块对应的使用标记位设置为0,以标识该数据块未使用, 然后到Cache块信息区中删除该数据块的信息。
刷新Cache数据首先在写Cache块信息区中找出需要刷新的数据 块的信息,获取该数据块的数据存放地址,根据数据存放地址到Cache 块数据区访问数据,然后将数据写到存储设备,最后将该数据块的所有 信息拷贝到读Cache块信息区中。
调整Cache读写区域大小通过调整Cache块信息区中读Cache块 信息区和写Cache块信息区的空间比例大小来实现。例如减少读Cache块信息区的空间,增加写Cache块信息区的空间。如果读Cache块信息 区存在足够大的空闲空间,则可将该空闲部分划到写Cache块信息区; 如果读Cache块信息区不存在足够大的空闲空间,可进行释放Cache空 间操作来释放掉部分读Cache块信息区的空间,然后将该部分空间划到 写Cache块信息区。
结合上述操作即可在Cache上实现数据的读写,数据的读取方法为
(1) 从读Cache块信息区获取保存所要读取数据的数据块的信息;
(2) 根据所述信息中的数据存放地址到Cache块数据区中相应数 据块读取数据。
在上述读取方法中,若读Cache块信息区中没有存储所要读取数据 的数据块的信息,则到存储设备中读取数据,然后进行申请空间操作, 即向读Cache块信息区和Cache块数据区分别申请数据块信息存放空间 和数据存放空间,到Cache块数据区的使用标记表中将所申请的数据块 对应的标记位置为1以标识该数据块已被使用,然后将所述数据写入所 申请的数据块中,并将该数据块的相关信息及数据存放地址写入所申请 的数据块信息存放空间中。
向Cache中写入数据的方法为
① 在写Cache块信息区中查找是否有保存所要写入数据的数据块的 信息,若有,则进入步骤②,否则ii^步骤③;
② 从写Cache块信息区中获3M目应数据块的信息,再根据其中的数 据存放地址到Cache块数据区中相应数据块写入新的数据,之后结束;
③ 进行申请空间操作,即向写Cache块信息区和Cache块数据区分
12别申请数据块信息存放空间和数据存放空间,到Cache块数据区的使用 标记表中将所申请的数据块对应的标记位置为1以标识该数据块已被使 用,然后将数据写入所申请的数据块中,并将该数据块的相关信息及数 据存放地址写入所申请的数据块信息存放空间中。
写入数据之后还需要进行刷新操作,该操作进一步包括在写Cache 块信息区中查询需要刷新的数据块的信息,根据其中的数据存放地址获 取数据,将该数据存放到存储设备,并将所述需刷新的数据块的信息拷 贝到读Cache块信息区中。
在上述数据读取和写入方法中,在申请存放空间时,若Cache块数 据区的存放空间已满,则在申请存放空间之前先进行释放空间操作,该 操作具体为在Cache块信息区中查询要释放的数据块的信息(若为读 数据,则到读Cache块信息区中查询,若为写数据,则到写Cache块信 息区中查询),根据其中的数据存放地址找到Cache块数据区中相应的 数据块,到Cache块数据区的使用标记表中将该数据块对应的标记位设 置为0,删除读/写Cache块信息区中该数据块的所有信息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡 在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应 包含在本发明的保护范围之内。
权利要求
1、一种高速缓冲存储器,包括存储区和控制区,其特征在于,所述存储区包括高速缓冲存储器Cache块信息区和Cache块数据区;所述Cache块信息区包括读Cache块信息区和写Cache块信息区,用于存储Cache块数据区中每个数据块的信息,该信息包括数据块的相关信息和数据存放地址;所述Cache块数据区用于以块为单位存储数据。
2、 如权利要求1所述的高速緩沖存储器,其特征在于,所述Cache块数据区包括使用标记表和数据存i文区;所述使用标记表用于存储一序列的标记,每位标记与凝:据存放区中的一个数据块相对应,用于标识所对应数据块的物理空间是否已经被使用;所述数据存》文区包括至少一个数据块,用于存放数据。
3、 一种如权利要求1所述的高速緩冲存储器的数据操作方法,其特征在于,所述方法包括数据的读取和写入方法;其中,所述数据的读取方法为A、 在读Cache块信息区中获取保存所要读取数据的数据块的信自 ,&,B、 根据所述信息中的数据存放地址到Cache块数据区中相应数据块读取数据;所述数据的写入方法为a、在写Cache块信息区中查找是否有保存所要写入数据的数据块的信息,若有,则ii^步骤b,否则ii^步骤c;b、 从写Cache块信息区中获糾目应数据块的信息,再根据其中结束;c、 向写Cache块信息区和Cache块数据区分别申请数据块信息存放空间和数据存》文空间,然后将数据写入所申请的数据块中,并将该数据块的相关信息及数据存放地址写入所申请的数据块信息存放空间中。
4、 如权利要求3所述的数据操作方法,其特征在于,所述数据的读取方法中还包括在读取数据时,若读Cache块信息区中没有存储所要读取数据的数据块的信息,则到存储设备中读取数据,然后向读Cache块信息区和Cache块数据区分别申请数据块信息存》文空间和数据存放空间,将所述数据写入所申请的数据块中,并将该数据块的相关信息及数据存放地址写入所申请的数据块信息存放空间中。
5、 如权利要求3所述的数据操作方法,其特征在于,所述数据的写入方法中还包括写入数据之后进行刷新操作,该操作进一步包括在写Cache块信息区中查询需要刷新的数据块的信息,根据其中的数据存放地址获取数据,将该数据存》文到存储设备,并将所述需刷新的数据块的信息拷贝到读Cache块信息区中。
6、 如权利要求3或4所述的数据操作方法,其特征在于,所述方法中,在申请存方文空间时,若Cache块数据区的存》丈空间已满,则在申请存放空间之前先进行释放空间操作,该释放空间操作进一步包括在Cache块信息区中查询可释放的数据块的信息,根据其中的数据存放地址找到Cache块数据区中相应的数据块,删除其中的数据,并删除Cache块信息区中该数据块的信息。
7、 如权利要求3或4所述的数据操作方法,其特征在于,所述方法中,在申请数据存放空间时,根据Cache块数据区的使用标记表来查找未使用的数据块,并到Cache块数据区的使用标记表将所申请的数据块对应的标记位设置为1,以标识该数据块已被使用。
8、 如权利要求6所述的数据操作方法,其特征在于,所述方法中,在进行释放空间操作时,还包括到Cache块数据区的使用标记表将所释放的数据块对应的标记位设置为0,以标识该数据块未使用。
9、 如权利要求3所述的数据操作方法,其特征在于,所述方法还包括对Cache块信息区中的读Cache块信息区和写Cache块信息区的空间比例大小进行调整。
全文摘要
本发明公开了一种高速缓冲存储器及其数据操作方法,该高速缓冲存储器的存储区包括高速缓冲存储器Cache块信息区和Cache块数据区;所述Cache块信息区包括读Cache块信息区和写Cache块信息区,用于存储Cache块数据区中每个数据块的信息,该信息包括数据块的相关信息和数据存放地址;所述Cache块数据区用于以块为单位存储数据。本发明在调整读写Cache区域比例的大小时只需要调整Cache块信息区中写Cache块信息区和读Cache块信息区的比例,不需要大量的数据拷贝,提高了调整的灵活性;在进行刷新操作时,只进行少量的数据拷贝,减少了数据刷新的时间,提高了刷新的性能。
文档编号G06F3/06GK101493753SQ20081006596
公开日2009年7月29日 申请日期2008年1月22日 优先权日2008年1月22日
发明者兰玉龙, 王洪斌, 陈韵霞 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1