CN100410897C - 存储系统及其控制方法 - Google Patents
存储系统及其控制方法 Download PDFInfo
- Publication number
- CN100410897C CN100410897C CNB2005100652379A CN200510065237A CN100410897C CN 100410897 C CN100410897 C CN 100410897C CN B2005100652379 A CNB2005100652379 A CN B2005100652379A CN 200510065237 A CN200510065237 A CN 200510065237A CN 100410897 C CN100410897 C CN 100410897C
- Authority
- CN
- China
- Prior art keywords
- data
- page
- continuum
- discontinuity zone
- memory device
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
- Y10S707/99957—Garbage collection
Abstract
一种存储系统,其中高速缓存处理单元以页为单位管理高速缓存器中的数据,一页数据包括多个块数据,每个块数据用作主机的一个访问单元,且处理从主机到存储设备的输入和输出请求。在该高速缓存器中被主机更新并比该存储设备中所存储的数据更新的无效数据将要被写回至该存储设备的情况下,并且当在一页无效数据中确定不连续区域时,当发出读命令时该写回处理单元从该存储设备读出不连续区域并将其合并,以产生连续区域,并通过一次写命令发布来执行写回。
Description
本申请要求基于2004年12月2日在日本递交的在先申请No.JP2004-349530的优先权。
技术领域
本发明涉及一种经由高速缓存器处理从上层(upper)系统到存储设备的输入和输出请求的存储系统及其控制方法和程序,尤其涉及一种将高速缓存器中已更新的最新数据写回(write back)至存储设备的存储系统及其控制方法和程序。
背景技术
传统地,在处理来自主机的输入和输出请求的RAID设备中,在控制模块中设有高速缓存器。这种RAID设备中的高速缓存数据以页为单位管理。如图1所示,例如以一页包含66,560个字节的方式管理高速缓存页100。高速缓存页100包括多个以块为单位设置的用户数据,每个块作为主机的一个访问单元,其中,一块用户数据是512字节,每512字节添加一个8字节的块校验码(BBC),且包括128个520字节块的一个单元被作为一页管理,因此,一页是520×128=66,560字节。而且,预备被称作高速缓存包元件(cache bundle element)CBE的高速缓存管理表来管理高速缓存页。在该高速缓存管理表中,提供每页的管理记录,且该管理记录具有例如逻辑单元数LUN、逻辑块地址LBA、图2B代表无效(dirty)数据的无效数据位图104(其中,一个块对应于一位),以及图2A代表当前数据存在的当前数据位图102(其中,同样的,一个块对应于一位)。一页高速缓存管理表相对应的尺寸为一比一的比例对应于构成RAID组的磁盘设备的一个条(strip)。在RAID设备的高速缓存控制中,当主机要求进行写入时,则以所需数量分配高速缓存页。然而,写入数据不总是存在于一页的整个范围中。因此,相对于该页中在写入步骤更新的块,在该无效数据位图中的对应位被设为位1,以管理存在的无效数据。而且,在现有的高速缓存控制中,当在高速缓存中缺乏空闲区域时,或当旧的高速缓存数据将要通过LRU算法移除时,则执行用于将该页中存在的无效数据写回到磁盘设备的写回处理。
然而,在这种传统的高速缓存控制步骤中,当一页中存在的无效数据将要被写回至磁盘设备时,只有无效数据位图中被管理的且由位1代表的块被写到该磁盘设备。因此,当无效数据块不连续存在于该页中时,对每个由一组位1代表的连续区域发出写命令。结果,关于磁盘设备处理命令的时间延长,因此导致性能恶化的问题。
根据本发明,提供一种存储系统及其控制方法和程序,即使在无效数据不连续存在于一页中时,仍能将写回命令的发出数抑制到最小水平,由此减少写回处理时间。
发明内容
本发明提供一种存储系统。本发明的存储系统包括:
高速缓存控制单元,用于以页为数据单位管理高速缓存器中的数据,一页数据包括多个块数据,每个块数据用作上层系统的一个访问单元,并且该高速缓存控制单元处理该上层系统关于存储设备的输入或输出请求;以及写回处理单元,在该高速缓存器中已被该上层系统更新并比该存储设备中所存储的数据更新的无效数据将要被写回至该存储设备的情况下,并且当在一页无效数据中确定不连续区域时,该写回处理单元从该存储设备读出不连续区域并将其合并,以产生连续区域,并执行写回。
这里,当通过三次或更多次命令发布来执行写回处理时,该写回处理单元从该存储设备读出不连续区域并将其合并,以产生连续区域,并以页为单位执行写回。作为无效数据在一页中的分布,当经由不连续区域在最靠近页首的第一连续区域和最靠近页尾的第二连续区域之间出现至少一个第三连续区域时,该写回处理单元在该第一连续区域与该第二连续区域之间确定包括位于该第三连续区域的不连续区域,将该不连续区域从该存储设备读出,通过对位于该不连续区域中且不同于该第三连续区域的其它区域的读出数据进行合并,以产生连续区域,并执行写回。高速缓存控制单元包括:无效数据位图,用于通过对应于每个块的位来管理在该页中无效数据的出现,以及当前数据位图,用于通过对应于每个块的位来管理在该页中数据的出现;其中,该写回处理单元参考该无效数据位图,并确定无效数据在该页中的不连续区域,并且在当前数据位图中关于该不连续区域的一端或两端确定连续当前数据时,则从该存储设备对剩余的不连续区域进行读取,并将其合并。该存储设备条数据的尺寸与该高速缓存器的页尺寸相同。
本发明提供一种存储系统的控制方法。根据本发明的存储系统控制方法包括:
高速缓存控制步骤,以页为数据单位管理高速缓存器中的数据,一页数据包括多个块数据,每个块数据用作上层系统的一个访问单元,并且处理该上层系统关于存储设备的输入或输出请求;
以及写回处理步骤,在该高速缓存器中已被该上层系统更新并比该存储设备中所存储的数据更新的无效数据将要被写回至该存储设备的情况下,并且当在一页无效数据中确定不连续区域时,从该存储设备读出不连续区域并将其合并,以产生连续区域,并执行写回。
本发明提供由存储系统的计算机执行的程序。本发明的程序使得存储系统的计算机执行以下操作:
高速缓存控制步骤,以页为数据单位管理高速缓存器中的数据,一页数据包括多个块数据,每个块数据用作上层系统的一个访问单元,并且处理该上层系统关于存储设备的输入或输出请求;
以及写回处理步骤,在该高速缓存器中已被该上层系统更新并比该存储设备中所存储的数据更新的无效数据将要被写回至该存储设备的情况下,并且当在一页无效数据中确定不连续区域时,从该存储设备读出不连续区域并将其合并,以产生连续区域,并执行写回。
根据本发明的存储系统控制方法和程序的详细内容与本发明的存储系统的情况基本相同。
根据本发明,即使当多个无效数据分离出现在页中至少三个或更多位置时,仍可以通过两次命令发布来执行写回,即,用于从存储设备读出不连续区域并执行合并的读命令发布,以及用于将已通过读取来执行的合并而产生的连续区域写到该存储设备的写命令发布;并且即使当无效数据分散且不连续地存在于一页中时,也能将命令发布数抑制在两个,由此缩短命令处理时间,并非常有助于整个系统的性能提高。
从下面参照附图的详细描述,本发明的上述和其他目的、特征、以及优点将会变得更加显而易见。
附图说明
图1为传统系统中高速缓存页的存储结构的示范性示意图;
图2A和2B为在传统高速缓存管理表中设置的无效数据位图和当前数据位图的示范性示意图;
图3为本发明所应用的RAID设备的硬件结构框图;
图4为本发明所应用的RAID设备的另一硬件结构框图;
图5为按照本发明RAID设备的功能结构框图;
图6A、6B和6C为在本发明的写回处理中无效数据、当前数据和写回数据位图的示范性示意图;
图7A、7B和7C为在本发明的写回处理中在无效数据的不连续区域被当前数据复原的情况下位图的示范性示意图;
图8A和8B为从本发明的写回处理中排除的无效数据位图的示范性实例;
图9A至图9I为正确显示能在写回中出现的无效数据分布图的示范性示意图;
图10A和图10B为根据本发明的写回处理的流程图;以及
图11A和图11B为在图10A和10B的步骤S1中无效数据位图的确定处理的流程图。
具体实施方式
图3为本发明所应用的RAID设备的硬件结构框图,其中示出一个大型设备结构作为实例。在图3中,为RAID设备10设置了基于帧(frame-based)的主机12和基于UNIX(R)/AI服务器的主机14。在该RAID设备10中设置有:配备有CPU 15的通道适配器16;控制模块18-1到18-4;后端路由器20-1和20-2;磁盘设备22-1至22-4,例如为硬盘设备,其用作构成RAID的存储设备;以及前端路由器32-1至32-4。尽管在最大配置下能够将8个控制模块安装在RAID设备10上,但此实例采用使用了控制模块18-1至18-4的四模块配置。通道适配器16配备有CPU 15,且将基于帧工作的主机12与控制模块18-1至18-4相连。在各个控制模块18-1至18-4中,如以控制模块18-1为代表,设置有CPU 24、通道适配器26、高速缓存器28以及纤维通道(fibre channel)30-1至30-8。通道适配器26连接至基于UNIX(R)/AI的主机14。通过程序控制,CPU 24执行输入和输出处理功能,用于:在高速缓存器28中处理来自主机12用于写命令和读命令的输入和输出请求并作出响应,对高速缓存器28的控制和管理,从高速缓存28经由后端路由器20-1、20-2到磁盘设备22-1至22-4的高速缓存数据写回,从磁盘设备22-1到22-4的磁盘数据分级(stage)等等。前端路由器32-1到32-4将控制模块18-1连接到其他控制模块18-2至18-4,以进行多重控制。控制模块18-1至18-4分别连接至后端路由器20-1和20-2,以由控制模块中的CPU 24通过RAID控制进行数据输入和输出处理。
图4为本发明所应用的RAID设备的另一硬件结构框图,其中,作为实例示出了小型或中型设备,其型号比图3的大型设备小。在图4中,RAID设备10上设置有:配备有CPU 15的通道适配器16、双结构(double-structure)控制模块18-1和18-2,和磁盘设备22-1至22-4,以构成RAID。在各个控制模块18-1和18-2中,如以控制模块18-1为代表所示,设置有CPU 24、通道适配器26、高速缓存器28以及纤维通道30-1至30-8。图4对应于小型和中型的RAID设备10具有图3的RAID设备10的小型配置,而没有后端路由器20-1和20-2以及前端路由器32-1至32-4,而其他的配置基本上与图3实施例的配置相同。
图5为按照本发明RAID设备的功能结构框图。在图5中,RAID设备10的功能由CPU 24的程序控制来实现,CPU 24设置在控制模块18中,并且如图5的控制模块18所示,包括资源处理单元34、高速缓存处理单元36、RAID控制单元38以及复制处理单元40。在高速缓存单元36中,设置有高速缓存控制单元42、高速缓存管理表44以及写回处理单元54。图3或图4所示将要由高速缓存处理单元36处理的高速缓存器28,如图1所示,以页为单位来管理,其中,一页包含66,560个字节,包括128块520字节的块数据,一个520字节的块数据包含作为主机侧一个访问单元的512字节用户数据以及8字节的BBC。高速缓存管理表44执行高速缓存器中这种页的每页记录管理。如图所示,对应于一页的记录包含:逻辑单元数(LUN)46、逻辑块地址(LBA)48、无效数据位图50,以及当前数据位图52。无效数据位图50包括128位数据,其中,构成一页的128块的每一块对应于一位;其中,对应于已被来自主机的写命令更新的块的位被设为1,且除无效数据块之外的每个块由一个0位代表。与无效数据位图一样,当前数据位图52是代表以位构成一页的128块的128位位图,且代表包括无效数据的数据存在,其中,当数据存在时,该位是1,且当没有数据时,该位是0。当写回处理单元54从高速缓存控制单元42接收将要对存储设备22执行的写回命令时,并且当在作为目标的页中关于无效数据确定了任何不连续区域时,则写回处理单元从存储设备22中读出不连续区域,进行合并以产生连续区域,并且执行到存储设备22的写回。在写回处理中,当由于页中无效数据的分布状态需要通过三次或更多次命令发布来执行写回处理时,不连续区域被从存储设备中读出并被合并,以产生连续区域,从而执行写回。具体地,当页中的无效数据可以由两次写命令发布而被写回到该存储设备22时,则没有修改地完成写回处理;且只有当不得不发布写回命令三次或更多次时,才从存储设备22中读出页中无效数据的不连续区域,并且将其合并,由此使其成为该页中连续的一个无效数据连续区域,以实现能够总共由两次命令发布完成写回处理的处理,即,用于从存储设备22读出不连续数据的一次读命令发布,以及通过对于无效数据的一次写命令发布的写回,无效数据已通过将数据与由读命令读出的不连续区域合并而成为连续区域。
图6A、6B和6C包括在本发明的写回处理中无效数据、当前数据和写回数据位图的示范性示意图。图6A是无效数据位图50,并且在此实例中,位1代表128位数据(对应于一页的128块)的位串中的无效数据。在此实例中,无效数据分布被划分为三个区域,即,连续区域58-1,包括页首侧中的两个块,之后为位于它们之间的两个块;连续区域58-2,包括一个块;以及在末端,连续区域58-3,包括多个连续块;以及在它们之间具有位为0的不连续区域。由于必须为每个连续区域58-1、58-2和58-3发布写命令以将它们写回到存储设备22,因此图6A无效数据位图50的无效数据要求三次命令发布。当如上所述要发布三次或更多次命令时,则应用根据本发明的写回处理。在本发明的写回处理中,相对于图6A的无效数据位图50,确定不得不通过从存储设备22读出而与无效数据的连续区域合并的不连续区域。在这种情况下,包括连续区域58-2的区域被确定为不连续区域60,其中连续区域58-2介于页首侧中的连续区域58-1与页尾侧的连续区域58-3之间。随后,参考图6B的当前数据位图52,由此确定从无效数据位图50已经确定的不连续区域60中当前数据的存在。在图6B的当前数据位图52中,示出每个块中包括无效数据的数据存在,其中连续区域58-1、58-2、58-3是无效数据,且除此以外,在连续区域58-3首侧之前,三块当前数据各以位1存在。不连续区域64被指定为读取目标,其从图6A中确定的不连续区域60除去三块当前数据区域62。随后,相对于在图6B中指定的不连续区域64,从存储设备22中读出数据,且,如图6C所示,除了无效数据的连续区域58-2之外的这些块读出数据被合并在不连续区域64中。然后,如图6C的写回位图56所示,由一次写命令发布在存储设备上执行写回处理,其中,对应于一页的所有块作为无效数据。结果,在图6A、6B和6C的情况下,包括不连续区域的无效数据的写回,能够由两次命令发布完成,即,用于从存储设备读出图6B中产生的不连续区域64的读命令发布,和用于写回图6C包括连续块且对应于一页的无效数据的一次写命令发布。
图7A、7B和7C包括在本发明的写回处理中在无效数据的不连续区域被当前数据复原,且执行正常写回处理的情况下的示范性示意图。尽管图7A的无效数据位图与图6A的无效数据位图50相同,但在图7B的当前数据位图52中,在无效数据位图50中的连续区域58-2与58-3之间的所有块被当前数据连续区域66复原。结果,如图7C所示,在写回位图56中无效数据中的连续区域是两个,即连续区域58-1和58-4。在此情况下,两次命令发布就足够,即,用于将连续区域58-1写回到存储设备22的写命令的发布,和用于将连续区域58-4写回到存储设备22的写命令的发布。因此,并不需要根据本发明通过从存储设备读取所执行的合并,且没有任何修改的执行与传统步骤相同的写回处理。
图8A和8B包括从本发明的写回处理中被排除的无效数据位图的示范性示意图。在图8A的无效数据位图50中,在页首的连续区域58-1与在页尾的连续区域58-2之间的区域是不连续区域60。同样在此情况下,用于将每个连续区域58-1和连续区域58-2写回的两次写命令发布就足够,因此,不应用本发明的写回处理。在图8B的无效数据位图50的情况下,该页的第一半是不连续区域60,而后一半是连续区域58。在此情况下,对于连续区域58,可由一次写命令发布来执行写回,因此,不应用本发明的写回处理。
图9A至图9I包括正确显示在高速缓存器的写回处理中出现的页中无效数据分布图的示范性示意图。图9A、9B、9C和9D为应用根据本发明的写回处理的无效数据分布图,而其他图9E、9F、9G、9H、和9I是从本发明的写回处理中排除的无效数据分布图。图9A是与图6A相同的分布图,其中,连续区域58-1位于页首侧,连续区域58-3位于页尾,连续区域58-2经由不连续区域62-1和62-2位于连续区域58-1和连续区域58-2之间。在此情况下,将包括连续区域58-2,且从紧挨着首侧连续区域58-1之后的位置到紧挨着尾侧连续区域58-3之前的位置范围的区域作为不连续区域60,从存储设备读取不连续区域60的数据,以将排除连续区域58-2的区域合并到连续区域66-1和66-2,且由一条写命令写回一页的全部。图9B示出页首是不连续区域66-1,且其后分布有连续区域58-1、不连续区域66-2、连续区域58-2、不连续区域66-3以及连续区域58-3的情况。在此情况下,对应于由包括连续区域58-2的不连续区域60所代表的区域的数据被从存储设备22中读出,并在不连续区域66-2和66-3处被合并,由此,由一条写命令将从连续区域58-1到页尾的区域写回。图9C示出页尾是不连续区域66-3且在页前侧交替存在连续区域58-1、58-2及58-3与不连续区域66-1及66-2的情况。同样在此情况下,相对于包括连续区域58-2的不连续区域60,数据从存储设备22被读出,以合并不连续区域62-1和62-2,从而从连续区域58-1到连续区域58-3的区域的数据由一条写命令写回。
图9D示出页首和页尾分别是不连续区域66-1和66-4,且在它们之间交替存在连续区域58-1、58-2、及58-3和不连续区域66-2及66-3的情况。在此情况下,包括连续区域58-2的不连续区域60从存储设备22中被读出,以合并不连续区域62-2和62-3,并且从连续区域58-1至连续区域58-3的这些块的数据由一条写命令被写回。当总结图9A至9D应用本发明写回处理的无效数据分布图,可以说,作为一页中无效数据的分布,当至少一个第三连续区域58-2经由不连续区域66-2和66-3存在于最靠近页首的第一连续区域58-1和最靠近页尾的第二连续图58-3之间时,包括位于第一连续区域58-1和第二连续区域之间的第三连续区域58-2的不连续区域60被确定并从存储设备22被读出,通过合并读出数据为区域66-2和66-3创建连续区域,区域66-2和66-3存在于不连续区域60中,且不同于第三连续区域58-2,并执行写回。图9E示出该页的整个区域是无效数据的情况,其中一条写命令将足够。因此,此情况排除在本发明的写回处理之外。图9F示出首侧是连续区域58-1且末端侧是不连续区域66-1的情况,其中能够由一条写命令执行连续区域58-1的写回。因此,此情况排除在本发明的写回处理之外。图9G示出了与图8B相同的图案,其中一次写回连续区域58-1就足够。因此,这种情况排除在本发明的写回处理之外。图9H示出不连续区域66-1和66-2存在于连续区域58-1的前面和后面的情况。同样在此情况下,也能够由一条写命令将连续区域58-1写回。因此,此情况排除在本发明的写回处理之外。图9I示出具有与图8A相同分布图案的情况,其中不连续区域66-1存在于连续区域58-1和58-2之间,其中,为了写回各个连续区域58-1和58-2,两次写命令发布将足够。因此,此情况排除在本发明的写回处理之外。图9A至9D采用这种情况作为实例,其中连续区域58-2经由不连续区域66-1和66-2存在于首侧连续区域58-1与末端侧连续区域58-3之间。然而,即使经由不连续区域于首侧连续区域58-1与末端侧连续区域58-3之同交替出现的连续区域的数目是多个,仍以完全相同的方式应用本发明的写回处理。
图10A和图10B为根据本发明写回处理的流程图。在图10A和图10B中,在步骤S1中,写回处理确定在将要被写回的一页无效数据位图中无效数据的连续区域和不连续区域。随后,在步骤S2中,检验是否全部无效数据是连续数据,并且如果其为连续数据,则过程进行到步骤S11,其中,没有修改的执行磁盘写处理。当在步骤S2中,该页中的无效数据是不连续时,过程进行到步骤S3,其中,检验写回处理的命令发布次数是否是三次或更多次。当少于三次时,即当是一次或两次时,则过程进行到步骤S11,其中,没有修改地执行磁盘写处理。当命令发布的次数是三次或更多次时,则过程进行到步骤S4,其中,确定目标数据的当前数据位图;且在步骤S5中,检验是否通过当前数据使全部不连续区域作为连续区域存在。如果全部不连续区域被复原为当前数据的连续区域,则过程进行到步骤S11,其中,没有修改的执行磁盘写处理。当没有通过当前数据使全部不连续区域成为连续区域时,过程进行到步骤S6,其中,检验是否有当前数据位于每个连续区域的一端或两端之后。如果存在这种当前数据,则在步骤S7产生不连续区域,其排除了存在当前数据的区域。当不存在这种当前数据时,过程进行到步骤S9。在步骤S8中,相对于最新产生的不连续区域,检验写回处理的命令发布次数是否是三次或更多次。如果少于三次时,即一次或两次时,则在步骤S11中没有修改地执行磁盘写处理。当命令发布次数是三次或更多次时,在步骤S9中从磁盘设备读出不连续区域,并且在步骤S10中,读出数据被合并到高速缓存数据。当然,并不合并无效数据。然后,在步骤S11中,对已成为连续数据的无效数据执行磁盘写处理。
图11A和图11B为图10A和10B的步骤S1中无效数据位图的确定步骤的流程图,其中,获得确定结果,即:是否存在将要通过从存储设备中读出数据来合并的不连续区域,或者没有不连续数据,从而可以无修改地执行写回。在图11A和11B中,首先在步骤S1中,从无效数据位图的首端对每个位开始进行位检索。随后,在步骤S2中,检验是否是末位。在步骤S3中,在到达末位之前,检验是否存在从位1到位0的位变化。基于从位1到位0的变化,来检测无效数据从连续区域到不连续区域的边界。当在步骤S3中检测到从位1到位0的位变化时,过程进行到步骤S4,其中,记录不连续区域的起始位置,并且过程进行到步骤S5。当到达末尾而没有检测到步骤S3的位变化时,在步骤S2中,过程进行到步骤S13,其中,确定没有不连续区域。在步骤S5的位检索之后,在步骤S6对到达末位进行检验。然后,在步骤S7,检验位变化是否从位1变到位0。基于位从0变到1的状态,来检测无效数据从不连续区域到连续区域的边界。在步骤S7中,当位从位0变到位1时,过程进行到步骤S8,其中不连续区域末端位置被记录或更新。更具体地,当检测到第一不连续区域位置时,则将其记录,而在第二次或更多次中,此前已被记录的不连续区域末端位置被更新为新检测到的末端位置。随后,在步骤S9中,计数器A加一。计数器A的初始值表示为A=0。计数器A对连续区域之间存在的不连续区域的个数进行计数。随后,在步骤S10中,再次启动位检索;在步骤S11中,检验是否是末位;以及在步骤S12中,检测从位0到位1的位变化,其是第二次或更多次的位变化,即从不连续区域到连续区域的边界位置。当在步骤S12中再次检测到从位0到位1的变化,则过程返回到步骤S8,其中,不连续区域末端位置被从先前记录位置更新为新检测到的记录位置。然后,在步骤S9中,计数器A加一,且在步骤S10中,再次启动位检索。当在步骤S10到S12的位检索期间,在步骤S11中确定到达末位时,过程进行到步骤S14,其中,检验对不连续区域进行计数的计数器A的值是否是二或更大。当是二或更大时,则过程进行到步骤S15,其中,确定不连续区域,该不连续区域具有从在步骤S4中检测到的不连续区域起始位置到在步骤S8中更新的不连续区域末端位置范围的分布,并且过程返回到图10A和图10B的主程序。当在步骤S14中计数器A的次数少于二时,在步骤S16中,确定没有不连续区域,并且过程返回到步骤S9。当过程返回到步骤S9时,相对于“没有不连续数据”,在步骤S2中确定整个数据是连续数据,可替换地,在用于确定写回处理的命令发布次数是否是三次或更多次的步骤S3中,确定次数少于三;并且跳过根据本发明的写回处理,以及在步骤S11中,没有修改地执行与传统步骤相同的磁盘写步骤。
这里,例如,根据图9A的无效数据分布图,详细描述图11A和11B的位图确定步骤如下。首先,通过步骤S1到S3的过程,在步骤S3中检测从页首侧的连续区域58-1到随后的不连续区域66-1的边界处从位1到位0的变化,并在步骤S4中记录不连续区域60的起始位置。随后在步骤S5中,对不连续区域66-1进行位检索,并且在步骤S6之后,在步骤S7中,检测从位0到位1的变化,即从不连续区域66-1的末端到连续区域58-2的首端的变化。在步骤S8中,将不连续区域66-1的最后一位记录为不连续区域末端位置。随后,在步骤S9中,计数器A加一,从而A=1,由此对不连续区域66-1进行计数。然后,在步骤S10中,启动连续区域58-2的位检索。在该位检索中,由于在步骤A12中没有出现从位0到位1的变化,过程直接继续到不连续区域66-2的位检索。在不连续区域66-2的最后一位和随后的连续区域58-3的首位的位检索中,检测步骤S12的位变化,即从位0到位1的位变化。在步骤S8中,先前记录位置被不连续区域66-2的最后一位更新,其作为不连续区域末端位置。在步骤S9中,计数器A加一,从而A=2,由此对不连续区域进行计数。随后,当在步骤S10中重复在连续区域58-3中的位检索时,在第128位的位检索中,在步骤S11确定末位,并且过程进行到步骤S14。当计数器A被检验时,其中A=2,因此过程进行到步骤S15,其中可以确定具有步骤S4的起始位置和步骤S8的末端位置的不连续区域60。当然,对将要被本发明处理的无效数据分布图的确定,不一定必须依赖图11A和图11B的位图确定步骤,并且可以应用用于图案确定的任何方法。
同时,本发明提供由RAID设备的CPU执行的程序,且该程序可以由按照图10A和图10B的流程和图11A和图11B的流程的步骤来进行。
本发明包括不违背本发明的目的和优点的任意改型,且本发明不受在上述实施例中描述的数值的限制。
Claims (10)
1. 一种存储系统,包括:
高速缓存控制单元,用于以页为数据单位管理高速缓存器中的数据,一页数据包括多个块数据,每个块数据作为上层系统的一个访问单元,并且该高速缓存控制单元处理该上层系统关于存储设备的输入或输出请求;以及
写回处理单元,在该高速缓存器中已被该上层系统更新并比该存储设备中所存储的数据更加新的无效数据将要被写回至该存储设备的情况下,并且当在一页无效数据中确定不连续区域时,该写回处理单元从该存储设备读出不连续区域并将其合并,以产生连续区域,并执行写回。
2. 如权利要求1所述的系统,其中,当通过三次或更多次命令发布来执行写回处理时,该写回处理单元从该存储设备读出不连续区域并将其合并,以产生连续区域,并执行写回。
3. 如权利要求1所述的系统,其中,作为无效数据在一页中的分布(50),当经由不连续区域在最靠近页首的第一连续区域(58-1)和最靠近页尾的第二连续区域(58-3)之间出现至少一个第三连续区域(58-2)时,该写回处理单元在该第一连续区域(58-1)与该第二连续区域(58-3)之间确定包括该第三连续区域(58-2)的不连续区域(60),将该不连续区域(60)从该存储设备(22)读出,通过对位于该不连续区域(60)中且不同于该第三连续区域(58-2)的其它区域的读出数据进行合并,来产生连续区域,并执行写回。
4. 如权利要求3所述的系统,其中,该高速缓存控制单元包括:
无效数据位图,用于通过对应每个块的位来管理在该页中出现的无效数据,以及
当前数据位图,用于通过对应每个块的位来管理在该页中出现的数据;
其中,
该写回处理单元参考该无效数据位图,并确定无效数据在该页中的不连续区域,并且在当前数据位图中关于该不连续区域的一端或两端确定连续当前数据时,则从该存储设备对剩余的不连续区域进行读取,并将其合并。
5. 如权利要求1所述的系统,其中,该存储设备的条数据尺寸与该高速缓存器的页尺寸相同。
6. 一种存储系统的控制方法,包括:
高速缓存控制步骤,以页为数据单位管理高速缓存器中的数据,一页数据包括多个块数据,每个块数据作为上层系统的一个访问单元,并且处理该上层系统关于存储设备的输入或输出请求;以及
写回处理步骤,在该高速缓存器中已被该上层系统更新并比该存储设备中所存储的数据更加新的无效数据将要被写回至该存储设备的情况下,并且当在一页无效数据中确定不连续区域时,从该存储设备读出不连续区域并将其合并,以产生页连续数据,并以页为单位执行写回。
7. 如权利要求6所述的方法,其中,
当通过三次或更多次命令发布来执行写回处理时,在该写回处理步骤中,从该存储设备读出不连续区域并将其合并,以产生页连续数据,并以页为单位执行写回。
8. 如权利要求6所述的方法,其中,
作为无效数据在一页中的分布,当经由不连续区域在最靠近页首的第一连续区域和最靠近页尾的第二连续区域之间出现至少一个第三连续区域时,在该写回处理步骤中,在该第一连续区域与该第二连续区域之间确定包括该第三连续区域的不连续区域并将该不连续区域从该存储设备读出,通过对位于该不连续区域中且不同于该第三连续区域的其它区域的读出数据进行合并,以产生连续区域,并执行写回。
9. 如权利要求8所述的方法,其中,在该高速缓存控制步骤中,产生:
该无效数据位图,用于通过对应每个块的位来管理该页中出现的无效数据,以及
当前数据位图,用于通过对应每个块的位来管理在该页中出现的数据;
其中,
在该写回处理步骤中,参考该无效数据位图,并确定无效数据在该页中的不连续区域,且在当前数据位图中关于该不连续区域的一端或两端确定连续当前数据时,从该存储设备读取剩余的不连续区域,并将其合并。
10. 如权利要求6所述的方法,其中,该存储设备的条数据尺寸与该高速缓存器的页尺寸相同。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004349530 | 2004-12-02 | ||
JP2004349530A JP4366298B2 (ja) | 2004-12-02 | 2004-12-02 | 記憶装置、その制御方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1783034A CN1783034A (zh) | 2006-06-07 |
CN100410897C true CN100410897C (zh) | 2008-08-13 |
Family
ID=36575732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100652379A Expired - Fee Related CN100410897C (zh) | 2004-12-02 | 2005-04-14 | 存储系统及其控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7320055B2 (zh) |
JP (1) | JP4366298B2 (zh) |
KR (1) | KR100689137B1 (zh) |
CN (1) | CN100410897C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105190569A (zh) * | 2013-06-25 | 2015-12-23 | 惠普发展公司,有限责任合伙企业 | 从缓存存储器清除脏数据 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418544B2 (en) * | 2005-10-05 | 2008-08-26 | Oracle International Corporation | Method and system for log structured relational database objects |
JP4413184B2 (ja) * | 2005-11-28 | 2010-02-10 | 富士通株式会社 | データストレージシステム及びデータストレージ制御装置 |
JP2008071047A (ja) * | 2006-09-13 | 2008-03-27 | Kwok-Yan Leung | ディスクインターフェースカード |
US7904619B2 (en) | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for reducing memory write operations using difference information |
US7904672B2 (en) | 2006-12-08 | 2011-03-08 | Sandforce, Inc. | System and method for providing data redundancy after reducing memory writes |
WO2008073219A1 (en) * | 2006-12-08 | 2008-06-19 | Sandforce, Inc. | Data redundancy in a plurality of storage devices |
KR100881669B1 (ko) * | 2006-12-18 | 2009-02-06 | 삼성전자주식회사 | 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치 |
JP4963088B2 (ja) * | 2007-07-13 | 2012-06-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データをキャッシュする技術 |
JP4706029B2 (ja) * | 2009-03-19 | 2011-06-22 | 富士通株式会社 | ストレージ装置、データ書き込み方法、及びデータ書き込みプログラム |
US8055816B2 (en) | 2009-04-09 | 2011-11-08 | Micron Technology, Inc. | Memory controllers, memory systems, solid state drives and methods for processing a number of commands |
US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
US8725951B2 (en) * | 2010-04-12 | 2014-05-13 | Sandisk Enterprise Ip Llc | Efficient flash memory-based object store |
US8954385B2 (en) | 2010-06-28 | 2015-02-10 | Sandisk Enterprise Ip Llc | Efficient recovery of transactional data stores |
US20130159625A1 (en) * | 2010-09-06 | 2013-06-20 | Hanno Lieske | Information processing device and information processing method |
US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
JP5492156B2 (ja) | 2011-08-05 | 2014-05-14 | 株式会社東芝 | 情報処理装置およびキャッシュ方法 |
JP5923964B2 (ja) | 2011-12-13 | 2016-05-25 | 富士通株式会社 | ディスクアレイ装置、制御装置、およびプログラム |
CN103246542B (zh) * | 2012-02-01 | 2017-11-14 | 中兴通讯股份有限公司 | 智能缓存及智能终端 |
US9135064B2 (en) | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
JP6027479B2 (ja) * | 2013-03-29 | 2016-11-16 | 東芝プラットフォームソリューション株式会社 | 半導体メモリ装置 |
JP6095539B2 (ja) * | 2013-09-20 | 2017-03-15 | 株式会社日立製作所 | I/o処理制御装置及びi/o処理制御方法 |
CN104090728B (zh) * | 2014-07-02 | 2017-07-14 | 浙江宇视科技有限公司 | 一种动态调整存储设备Cache读写命令数的方法和装置 |
JP2016028319A (ja) * | 2014-07-08 | 2016-02-25 | 富士通株式会社 | アクセス制御プログラム、アクセス制御装置及びアクセス制御方法 |
US9971686B2 (en) | 2015-02-23 | 2018-05-15 | Intel Corporation | Vector cache line write back processors, methods, systems, and instructions |
JP6521694B2 (ja) * | 2015-03-27 | 2019-05-29 | 株式会社バイオス | 記憶制御システム及び記憶制御装置 |
CN106874216B (zh) * | 2015-12-11 | 2020-07-10 | 捷鼎新加坡私人有限公司 | 加快在不连续页面写入数据的计算机系统及其方法 |
CN107145301B (zh) * | 2016-03-01 | 2020-09-01 | 深信服科技股份有限公司 | 基于混合磁盘的数据存取方法及装置 |
US10037149B2 (en) * | 2016-06-17 | 2018-07-31 | Seagate Technology Llc | Read cache management |
CN108427648B (zh) * | 2017-02-14 | 2023-12-01 | 中兴通讯股份有限公司 | 存储系统页内脏数据索引方法和装置 |
US11436151B2 (en) * | 2018-08-29 | 2022-09-06 | Seagate Technology Llc | Semi-sequential drive I/O performance |
CN111563053B (zh) * | 2020-07-10 | 2020-12-11 | 阿里云计算有限公司 | 处理Bitmap数据的方法以及装置 |
CN113986118A (zh) * | 2021-09-28 | 2022-01-28 | 新华三大数据技术有限公司 | 一种数据处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5727183A (en) * | 1995-03-15 | 1998-03-10 | Fujitsu Limited | Data transfer between disk storage and host device under the control of file control device employing cache and associated batch write-back operation |
JPH1124991A (ja) * | 1997-07-03 | 1999-01-29 | Nec Ic Microcomput Syst Ltd | データ処理装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2690691B2 (ja) * | 1994-06-27 | 1997-12-10 | 新潟日本電気株式会社 | ライトバック・キャッシュ・メモリを有する演算処理装置 |
JP3713312B2 (ja) * | 1994-09-09 | 2005-11-09 | 株式会社ルネサステクノロジ | データ処理装置 |
US5765196A (en) | 1996-02-27 | 1998-06-09 | Sun Microsystems, Inc. | System and method for servicing copyback requests in a multiprocessor system with a shared memory |
US5860091A (en) | 1996-06-28 | 1999-01-12 | Symbios, Inc. | Method and apparatus for efficient management of non-aligned I/O write request in high bandwidth raid applications |
US6202135B1 (en) * | 1996-12-23 | 2001-03-13 | Emc Corporation | System and method for reconstructing data associated with protected storage volume stored in multiple modules of back-up mass data storage facility |
US6381674B2 (en) * | 1997-09-30 | 2002-04-30 | Lsi Logic Corporation | Method and apparatus for providing centralized intelligent cache between multiple data controlling elements |
JP2000182292A (ja) | 1998-12-15 | 2000-06-30 | Fujitsu Ltd | 光学的記憶装置及び光記憶媒体の記録再生方法 |
US6529995B1 (en) * | 1999-06-18 | 2003-03-04 | Storage Technology Corporation | Method and apparatus for maintaining and restoring mapping table entries and data in a raid system |
JP3860402B2 (ja) | 2000-09-20 | 2006-12-20 | 株式会社東芝 | 光ディスク記録再生装置及び光ディスク記録再生方法 |
-
2004
- 2004-12-02 JP JP2004349530A patent/JP4366298B2/ja not_active Expired - Fee Related
-
2005
- 2005-03-28 US US11/090,075 patent/US7320055B2/en active Active
- 2005-04-14 KR KR1020050031158A patent/KR100689137B1/ko not_active IP Right Cessation
- 2005-04-14 CN CNB2005100652379A patent/CN100410897C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5727183A (en) * | 1995-03-15 | 1998-03-10 | Fujitsu Limited | Data transfer between disk storage and host device under the control of file control device employing cache and associated batch write-back operation |
JPH1124991A (ja) * | 1997-07-03 | 1999-01-29 | Nec Ic Microcomput Syst Ltd | データ処理装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105190569A (zh) * | 2013-06-25 | 2015-12-23 | 惠普发展公司,有限责任合伙企业 | 从缓存存储器清除脏数据 |
Also Published As
Publication number | Publication date |
---|---|
JP4366298B2 (ja) | 2009-11-18 |
US20060123200A1 (en) | 2006-06-08 |
KR20060061747A (ko) | 2006-06-08 |
JP2006163474A (ja) | 2006-06-22 |
CN1783034A (zh) | 2006-06-07 |
KR100689137B1 (ko) | 2007-03-08 |
US7320055B2 (en) | 2008-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100410897C (zh) | 存储系统及其控制方法 | |
US8706687B2 (en) | Log driven storage controller with network persistent memory | |
US8949192B2 (en) | Technique of controlling access to database | |
KR100259432B1 (ko) | 볼륨 스태킹 라이브러리에서의 아웃 보드 데이터 이동 | |
CN103635900B (zh) | 基于时间的数据分割 | |
US20060200697A1 (en) | Storage system, control method thereof, and program | |
US20030140207A1 (en) | Hierarchical storage apparatus and control apparatus thereof | |
US20070055831A1 (en) | System and method for performing a search operation within a sequential access data storage subsystem | |
CN103207840B (zh) | 用于将不完整记录从第一缓存降级至第二缓存的系统和方法 | |
CN1139489A (zh) | 加速计算机数据库事务处理的装置 | |
CN106662981A (zh) | 存储设备、程序和信息处理方法 | |
CN103365743A (zh) | 用于在计算环境中处理快照的方法和系统 | |
JP2009507304A5 (zh) | ||
JP2007094946A (ja) | 階層ストレージシステム、制御方法及びプログラム | |
US8205041B2 (en) | Virtual tape apparatus, control method of virtual tape apparatus, and control section of electronic device | |
US6985996B1 (en) | Method and apparatus for relocating RAID meta data | |
EP2352090A1 (en) | System accessing shared data by a plurality of application servers | |
JPH06259197A (ja) | アレイ型ディスクシステムの制御方式 | |
US5293618A (en) | Method for controlling access to a shared file and apparatus therefor | |
Mattson | Evaluation of multilevel memories | |
WO2012174043A1 (en) | Methods and apparatus for data access by a reprogrammable circuit module | |
US6782444B1 (en) | Digital data storage subsystem including directory for efficiently providing formatting information for stored records | |
CN103377090A (zh) | 多处理器系统中共享不同数据集的多个编目的方法和系统 | |
US20060277353A1 (en) | Virtual tape library device, virtual tape library system, and method for writing data to a virtual tape | |
CN101073066B (zh) | 生成奇偶数据的方法、系统和程序 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080813 Termination date: 20170414 |