CN101493753B - 一种高速缓冲存储器及其数据操作方法 - Google Patents
一种高速缓冲存储器及其数据操作方法 Download PDFInfo
- Publication number
- CN101493753B CN101493753B CN2008100659615A CN200810065961A CN101493753B CN 101493753 B CN101493753 B CN 101493753B CN 2008100659615 A CN2008100659615 A CN 2008100659615A CN 200810065961 A CN200810065961 A CN 200810065961A CN 101493753 B CN101493753 B CN 101493753B
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- district
- block
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种高速缓冲存储器及其数据操作方法,该高速缓冲存储器的存储区包括高速缓冲存储器Cache块信息区和Cache块数据区;所述Cache块信息区包括读Cache块信息区和写Cache块信息区,用于存储Cache块数据区中每个数据块的信息,该信息包括数据块的相关信息和数据存放地址;所述Cache块数据区用于以块为单位存储数据。本发明在调整读写Cache区域比例的大小时只需要调整Cache块信息区中写Cache块信息区和读Cache块信息区的比例,不需要大量的数据拷贝,提高了调整的灵活性;在进行刷新操作时,只进行少量的数据拷贝,减少了数据刷新的时间,提高了刷新的性能。
Description
技术领域
本发明涉及磁盘阵列技术,尤其涉及磁盘阵列中的Cache(高速缓冲存储器)及其数据操作方法。
背景技术
在磁盘阵列中,Cache是一种特殊的存储器,由Cache存储区和Cache控制区组成,用于缓存主机请求的数据,它是影响磁盘阵列性能的关键因素之一。Cache的组织方式通常有两种,一种方式是读数据和写数据共同使用整个Cache存储区域;另一种方式是读数据和写数据使用不同的Cache存储区域。
由于读操作和写操作的不同特性,读Cache和写Cache通常使用不同的Cache存储区域。磁盘阵列在不同的应用环境下,甚至在相同的应用环境下,会存在读写比例不一致的情况。
如图1所示,该图为现有Cache的存储区的结构图,该Cache的工作方式为读数据和写数据使用不同的存储区域,因而将读Cache区域和写Cache区域进行了物理划分,假设Cache存储区域大小为1G,前512M为读数据区域,后512M为写数据区域。
在上述读Cache和写Cache的区域分开的情况下,存在数据既保存在读Cache区域也保存在写Cache区域的情况,在读数据时,要保证读取最新的数据。针对上述Cache,US6321298专利中提出了一种读写数据的方法。读数据的操作流程如图2所示,具体为:
201、当接收到读请求时,首先查询写数据区中是否存在读请求的数据,如果存在,则进入步骤207,否则进入步骤202。
202、查询读数据区中是否存在读请求的数据,如果存在,则进入步骤207;否则,写数据区和读数据区都不存在需访问的数据,到存储设备中读取读请求的数据,进入步骤203。
203、查询读数据区是否存在空闲空间,如果存在空闲空间则进入步骤205;否则进入步骤204。
204、在读数据区释放部分空间
205、为读数据申请空间。
206、从存储设备中读取数据,保存到读数据区。
207、返回读请求的数据。
写数据的流程如图3所示:
301、当接收到写请求时,查询写数据区是否存在写请求的数据,如果存在,则进入步骤307;否则进入步骤303。
302、查询写数据区是否存在空闲空间,若存在,则进入步骤306,否则进入步骤303。
303、在写数据区执行刷新操。
304、将刷新数据拷贝到读数据区。
305、释放刷新数据存放的空间。
306、在写数据区申请空间。
307、将写请求的数据写入写数据区。
根据上述Cache的存储结构进行上述数据读写操作中存在以下问题:由于读写区域完全相互分离,则调整读写区域的比例大小时操作比较复杂,需要移动读数据区域和写数据区域中存放的数据;写数据区域进行数据刷新时需要将刷新的数据拷贝到读数据区域,增加了刷新数据的时间,降低了效率和准确度。
发明内容
本发明所要解决的技术问题是提供一种Cache及其数据操作方法,解决现有技术中对Cache存储区域进行物理划分的方式所导致的问题。
为解决上述技术问题,本发明是通过以下技术方案实现的:
一种高速缓冲存储器,包括存储区和控制区,所述存储区包括高速缓冲存储器Cache块信息区和Cache块数据区;
所述Cache块信息区包括读Cache块信息区和写Cache块信息区,用于存储Cache块数据区中每个数据块的信息,该信息包括数据块的相关信息和数据存放地址;
所述Cache块数据区用于以块为单位存储数据。
其中,所述Cache块数据区包括使用标记表和数据存放区;
所述使用标记表用于存储一序列的标记,每位标记与数据存放区中的一个数据块相对应,用于标识所对应数据块的物理空间是否已经被使用;
所述数据存放区包括至少一个数据块,用于存放数据。
一种如上所述的高速缓冲存储器的数据操作方法,所述方法包括数据的读取和写入方法;
其中,所述数据的读取方法为:
A、在读Cache块信息区中获取保存所要读取数据的数据块的信息;
B、根据所述信息中的数据存放地址到Cache块数据区中相应数据块读取数据;
所述数据的写入方法为:
a、在写Cache块信息区中查找是否有保存所要写入数据的数据块的信息,若有,则进入步骤b,否则进入步骤c;
b、从写Cache块信息区中获取相应数据块的信息,再根据其中的数据存放地址到Cache块数据区中相应数据块写入新的数据,之后结束;
c、向写Cache块信息区和Cache块数据区分别申请数据块信息存放空间和数据存放空间,然后将数据写入所申请的数据块中,并将该数据块的相关信息及数据存放地址写入所申请的数据块信息存放空间中。
其中,所述数据的读取方法中还包括:在读取数据时,若读Cache块信息区中没有存储所要读取数据的数据块的信息,则到存储设备中读取数据,然后向读Cache块信息区和Cache块数据区分别申请数据块信息存放空间和数据存放空间,将所述数据写入所申请的数据块中,并将该数据块的相关信息及数据存放地址写入所申请的数据块信息存放空间中。
其中,所述数据的写入方法中还包括:写入数据之后进行刷新操作,该操作进一步包括:在写Cache块信息区中查询需要刷新的数据块的信息,根据其中的数据存放地址获取数据,将该数据存放到存储设备,并将所述需刷新的数据块的信息拷贝到读Cache块信息区中。
其中,所述方法中,在申请存放空间时,若Cache块数据区的存放空间已满,则在申请存放空间之前先进行释放空间操作,该操作进一步包括:在Cache块信息区中查询可释放的数据块的信息,根据其中的数据存放地址找到Cache块数据区中相应的数据块,删除其中的数据,并删除Cache块信息区中该数据块的信息。
其中,所述方法中,在申请数据存放空间时,根据Cache块数据区的使用标记表来查找未使用的数据块,并到Cache块数据区的使用标记表将所申请的数据块对应的标记位设置为1,以标识该数据块已被使用。
其中,所述方法中,在进行释放空间操作时,还包括:到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所示,包括使用标记表和数据存放区;使用标记表用于存储一序列的标记,每位标记与数据存放区中的一个数据块相对应,用于标识所对应数据块的物理空间是否已经被使用(下面以1表示已使用,0表示未使用为例);数据存放区包括至少一个数据块,用于存放数据。
上述Cache可进行的操作有:申请空间、释放空间、访问数据、刷新写数据、调整读写Cache区域大小等,具体如下所述:
申请空间操作:实现流程如图6所示,包括以下步骤,
601、到Cache块信息区中申请Cache块信息存放空间,如果是读数据,就到读Cache块信息区中申请,否则就到写Cache块信息区中申请;
602、再到Cache块数据区申请数据存放空间,根据Cache块数据区的使用标记表找出未使用的数据块区域;
603、到使用标记表将所申请的数据块对应的标记位设置为1,以标识该数据块已被使用;
604、将在Cache块数据区中数据存放区中申请的数据存放地址保存到Cache块信息区中。
访问Cache中数据操作:首先到Cache块信息区获得数据块的相关信息和数据存放地址,然后根据Cache块数据存放地址到Cache数据区中的数据存放区中访问该Cache块存放的数据。
释放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块信息区中查找是否有保存所要写入数据的数据块的信息,若有,则进入步骤②,否则进入步骤③;
②从写Cache块信息区中获取相应数据块的信息,再根据其中的数据存放地址到Cache块数据区中相应数据块写入新的数据,之后结束;
③进行申请空间操作,即向写Cache块信息区和Cache块数据区分别申请数据块信息存放空间和数据存放空间,到Cache块数据区的使用标记表中将所申请的数据块对应的标记位置为1以标识该数据块已被使用,然后将数据写入所申请的数据块中,并将该数据块的相关信息及数据存放地址写入所申请的数据块信息存放空间中。
写入数据之后还需要进行刷新操作,该操作进一步包括:在写Cache块信息区中查询需要刷新的数据块的信息,根据其中的数据存放地址获取数据,将该数据存放到存储设备,并将所述需刷新的数据块的信息拷贝到读Cache块信息区中。
在上述数据读取和写入方法中,在申请存放空间时,若Cache块数据区的存放空间已满,则在申请存放空间之前先进行释放空间操作,该操作具体为:在Cache块信息区中查询要释放的数据块的信息(若为读数据,则到读Cache块信息区中查询,若为写数据,则到写Cache块信息区中查询),根据其中的数据存放地址找到Cache块数据区中相应的数据块,到Cache块数据区的使用标记表中将该数据块对应的标记位设置为0,删除读/写Cache块信息区中该数据块的所有信息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种高速缓冲存储器,包括存储区和控制区,其特征在于,所述存储区包括高速缓冲存储器Cache块信息区和Cache块数据区;
所述Cache块信息区包括读Cache块信息区和写Cache块信息区,用于存储Cache块数据区中每个数据块的信息,该信息包括数据块的相关信息和数据存放地址;
所述Cache块数据区用于以块为单位存储数据,所述读Cache块信息区和写Cache块信息区共享所述Cache块数据区。
2.如权利要求1所述的高速缓冲存储器,其特征在于,所述Cache块数据区包括使用标记表和数据存放区;
所述使用标记表用于存储一序列的标记,每位标记与数据存放区中的一个数据块相对应,用于标识所对应数据块的物理空间是否已经被使用;
所述数据存放区包括至少一个数据块,用于存放数据。
3.一种如权利要求1所述的高速缓冲存储器的数据操作方法,其特征在于,所述方法包括数据的读取和写入方法;
其中,所述数据的读取方法为:
A、在读Cache块信息区中获取保存所要读取数据的数据块的信息;
B、根据所述信息中的数据存放地址到Cache块数据区中相应数据块读取数据;
所述数据的写入方法为:
a、在写Cache块信息区中查找是否有保存所要写入数据的数据块的信息,若有,则进入步骤b,否则进入步骤c;
b、从写Cache块信息区中获取相应数据块的信息,再根据其中的数据存放地址到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块信息区的空间比例大小进行调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100659615A CN101493753B (zh) | 2008-01-22 | 2008-01-22 | 一种高速缓冲存储器及其数据操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100659615A CN101493753B (zh) | 2008-01-22 | 2008-01-22 | 一种高速缓冲存储器及其数据操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101493753A CN101493753A (zh) | 2009-07-29 |
CN101493753B true CN101493753B (zh) | 2012-06-06 |
Family
ID=40924371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100659615A Active CN101493753B (zh) | 2008-01-22 | 2008-01-22 | 一种高速缓冲存储器及其数据操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101493753B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063264B (zh) * | 2009-11-18 | 2012-08-29 | 成都市华为赛门铁克科技有限公司 | 一种处理数据的方法、设备及系统 |
CN103257831B (zh) | 2012-02-20 | 2016-12-07 | 深圳市腾讯计算机系统有限公司 | 存储器的读写控制方法及对应的存储器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321298B1 (en) * | 1999-01-25 | 2001-11-20 | International Business Machines Corporation | Full cache coherency across multiple raid controllers |
CN1505317A (zh) * | 2002-10-29 | 2004-06-16 | ض� | 用于网络设备的可配置的发送与接收系统接口 |
-
2008
- 2008-01-22 CN CN2008100659615A patent/CN101493753B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321298B1 (en) * | 1999-01-25 | 2001-11-20 | International Business Machines Corporation | Full cache coherency across multiple raid controllers |
CN1505317A (zh) * | 2002-10-29 | 2004-06-16 | ض� | 用于网络设备的可配置的发送与接收系统接口 |
Non-Patent Citations (1)
Title |
---|
张宇弘等.利用基地址相关的低功耗数据cache设计.《浙江大学学报(工学版)》.2005,(第10期), * |
Also Published As
Publication number | Publication date |
---|---|
CN101493753A (zh) | 2009-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103136121B (zh) | 一种固态盘的缓存管理方法 | |
CN104794070B (zh) | 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 | |
US10169232B2 (en) | Associative and atomic write-back caching system and method for storage subsystem | |
US20140223089A1 (en) | Method and device for storing data in a flash memory using address mapping for supporting various block sizes | |
CN103608782B (zh) | Lsb页面和msb页面中的选择性数据存储 | |
US8782324B1 (en) | Techniques for managing placement of extents based on a history of active extents | |
CN102779096B (zh) | 一种基于页块面三维的闪存地址映射方法 | |
CN102541983B (zh) | 一种分布式文件系统中多客户端缓存同步的方法 | |
US20150081960A1 (en) | Memory device and operating method thereof | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
US10061704B2 (en) | Systems and methods for managing cache of a data storage device | |
CN105335098A (zh) | 一种基于存储级内存的日志文件系统性能提高方法 | |
CN105893274B (zh) | 一种面向异构内存系统建立检查点的装置 | |
CN107798130A (zh) | 一种分布式存储的快照方法 | |
KR20010039936A (ko) | 캐시 메모리를 관리하는 방법 및 시스템 | |
CN102981963A (zh) | 一种固态盘的闪存转换层的实现方法 | |
CN110058822A (zh) | 一种磁盘阵列横向拓展方法 | |
CN107818052A (zh) | 内存访问方法及装置 | |
CN109582214A (zh) | 数据访问方法以及计算机系统 | |
CN109739696B (zh) | 一种双控存储阵列固态硬盘缓存加速方法 | |
US7640410B2 (en) | Instant copy of data through pointers interchanging | |
CN102681792B (zh) | 一种固态盘内存分区方法 | |
CN102650972B (zh) | 数据存储方法、装置及系统 | |
CN110537172B (zh) | 混合存储器模块 | |
CN106909323A (zh) | 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |