磁盘阵列5控制器及存取方法转让专利

申请号 : CN200810215703.0

文献号 : CN101667103B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙志铭

申请人 : 智微科技股份有限公司

摘要 :

本发明提出一种基于储存装置最小存取区块的数据分流及聚流运作的磁盘阵列5控制器及存取方法。借由并行数据传输处理过程,磁盘阵列5的数据存取效率可被显著地提高。利用一数据配置及组合单元于写入数据时,将一数据流基于储存装置最小存取区块为处理单位而分散配置于多条数据分流,或于读出数据时,将多条数据分流基于储存装置最小存取区块为处理单位而组合为一数据流,利用一异或运算单元以并行处理模式,同时处理多条数据分流的数据,利用多个传输控制器以独立控制每一条数据分流的数据传输。

权利要求 :

1.一种基于储存装置最小存取区块的分流与聚流运作的磁盘阵列5控制器,包含:

一数据配置及组合单元;

一异或运算单元,耦合于该数据配置及组合单元;

多个传输控制器,每一个传输控制器均耦合于该异或运算单元;以及

多个储存装置存取控制器,每一个储存装置存取控制器系耦合于相对应的一传输控制器,及相对应的一储存装置。

2.如权利要求1所述的磁盘阵列5控制器,其特征在于还包含:

多个数据暂存器,每一个数据暂存器耦合于相对应的一传输控制器与相对应的一储存装置存取控制器之间;

一控制器,耦合于该数据配置及组合单元;

一指令解码器,耦合于该控制器、该数据配置及组合单元、该异或运算单元及该些传输控制器;以及

多个标志暂存器,耦合于该指令解码器、该数据配置及组合单元、该异或运算单元、该些传输控制器、及该些储存装置存取控制器。

3.如权利要求2所述的磁盘阵列5控制器,其特征在于,该指令解码器根据该些标志暂存器的状态,解码一写入指令或一读取指令,以产生相对应的一写入程序控制指令或一读取程序控制指令。

4.如权利要求3所述的磁盘阵列5控制器,其特征在于,该数据配置及组合单元是用以根据该些标志暂存器的状态及该写入程序控制指令,将一写入数据流以该储存装置最小存取区块为处理单位而分散配置于多条写入数据分流,以及该数据配置及组合单元是用以根据该些标志暂存器的状态及该读取程序控制指令,将多条读出数据分流以该储存装置最小存取区块为处理单位而组合为一读出数据流。

5.如权利要求3所述的磁盘阵列5控制器,其特征在于,该异或运算单元是用以根据该些标志暂存器的状态配合该写入程序控制指令或该读取程序控制指令,控制异或运算处理程序。

6.如权利要求3所述的磁盘阵列5控制器,其特征在于,每一个传输控制器是用以根据该些标志暂存器的状态配合该写入程序控制指令或该读取程序控制指令,控制该传输控制器与该异或运算单元之间的数据传输程序。

7.如权利要求3所述的磁盘阵列5控制器,其特征在于,每一个储存装置存取控制器是用以根据该些标志暂存器的状态配合该写入程序控制指令或该读取程序控制指令,控制对于相对应的储存装置的数据读取操作或数据写入操作。

8.如权利要求1所述的磁盘阵列5控制器,其特征在于,每一个储存装置存取控制器执行操作的基本存取单位,为储存装置最小存取单位。

9.如权利要求1所述的磁盘阵列5控制器,其特征在于,每一个储存装置存取控制器是以一串行式ATA接口、一通用串行总线接口、一SAS接口、一IEEE-1394接口、或一eSATA接口,耦合于相对应的储存装置。

10.一种基于一储存装置最小存取区块的聚流运作的磁盘阵列5读取方法,用以根据一读取指令从多个储存装置读取一读出数据流,包含:根据多个标志暂存器的状态,解码该读取指令,以产生相对应的一读取程序控制指令;

根据该读取程序控制指令及该些标志暂存器的状态,执行对于多个正常储存装置的相对应数据的读取操作,用以产生多条读出数据分流;

将该些读出数据分流并列传输至一异或运算单元;

该异或运算单元根据该些标志暂存器的状态及该读取程序控制指令,控制相对应于该些读出数据分流的异或运算处理程序,并将处理后的该些读出数据分流并列传输至一数据配置及组合单元;以及该数据配置及组合单元根据该些标志暂存器的状态及该读取程序控制指令,将该些读出数据分流基于该储存装置最小存取区块为一聚流单位而组合为该读出数据流。

11.如权利要求10所述的磁盘阵列5读取方法,其特征在于还包含在执行对于该些正常储存装置的相对应数据的读取操作之前,根据该些标志暂存器的状态,检测是否有一失效储存装置。

12.如权利要求10所述的磁盘阵列5读取方法,其特征在于,该异或运算单元根据该些标志暂存器的状态及该读取程序控制指令,控制相对应于该些读出数据分流的异或运算处理程序,并将处理后的该些读出数据分流并列传输至该数据配置及组合单元,包含当有一失效储存装置时,该异或运算单元执行异或运算处理以恢复该失效储存装置的一非奇偶校验数据流,并将该些读出数据分流及被恢复的该非奇偶校验数据流并列传输至该数据配置及组合单元。

13.如权利要求10所述的磁盘阵列5读取方法,其特征在于,该异或运算单元根据该些标志暂存器的状态及该读取程序控制指令,控制相对应于该些读出数据分流的异或运算处理程序,并将处理后的该些读出数据分流并列传输至该数据配置及组合单元,包含当没有失效储存装置时,异或运算单元直接将该些读出数据分流并列传输至该数据配置及组合单元。

14.如权利要求10所述的磁盘阵列5读取方法,其特征在于,该数据配置及组合单元根据该些标志暂存器的状态及该读取程序控制指令,将该些读出数据分流基于该储存装置最小存取区块为该聚流单位而组合为该读出数据流,包含该数据配置及组合单元根据该些标志暂存器的状态及该读取程序控制指令,将该些读出数据分流所包含的非奇偶校验数据基于该储存装置最小存取区块为该聚流单位而组合为该读出数据流。

15.如权利要求14所述的磁盘阵列5读取方法,其特征在于,将该些读出数据分流所包含的非奇偶校验数据基于该储存装置最小存取区块为该聚流单位而组合为该读出数据流,包含弃除该些读出数据分流所包含的奇偶校验数据。

16.如权利要求10所述的磁盘阵列5读取方法,其特征在于,执行对于该些正常储存装置的数据读取操作,用以产生该些读出数据分流,是以该些正常储存装置的最小存取区块作为基本读取单位,执行对于该些正常储存装置的数据读取操作,用以产生该些读出数据分流。

17.一种基于一储存装置最小存取区块的分流运作的磁盘阵列5写入方法,用以根据一写入指令将一写入数据流写入多个储存装置,包含:根据多个标志暂存器的状态,解码该写入指令,以产生相对应的一写入程序控制指令;

根据该写入程序控制指令及该些标志暂存器的状态,利用一数据配置及组合单元将该写入数据流基于该储存装置最小存取区块为一分流单位而分散配置为多条写入数据分流,再将该些写入数据分流并行传输至一异或运算单元;

该异或运算单元根据该些标志暂存器的状态及该写入程序控制指令,控制相对应于该些写入数据分流的异或运算处理程序,并将处理后的该些写入数据分流并列传输至多个正常储存装置相对应的多个储存装置存取控制器;以及该些储存装置存取控制器将该些写入数据分流分别写入该些正常储存装置。

18.如权利要求17所述的磁盘阵列5写入方法,其特征在于还包含在根据该写入程序控制指令及该些标志暂存器的状态,利用该数据配置及组合单元将该写入数据流基于该储存装置最小存取区块为该分流单位而分散配置为多条写入数据分流之前,根据该些标志暂存器的状态,检测是否有一失效储存装置。

19.如权利要求17所述的磁盘阵列5写入方法,其特征在于,该异或运算单元根据该些标志暂存器的状态及该写入程序控制指令,控制相对应于该些写入数据分流的异或运算处理程序,包含当有一失效储存装置时,在所要写入的储存区域的相对应的上边界或下边界储存区块,包含有不在所要写入的储存区域内的一非奇偶校验储存区块,且该非奇偶校验储存区块属于该失效储存装置时,执行数据恢复处理以恢复该非奇偶校验储存区块的数据,再根据被恢复的该非奇偶校验储存区块的数据,执行异或运算处理以产生相对应的一奇偶校验数据。

20.如权利要求17所述的磁盘阵列5写入方法,其特征在于,该异或运算单元根据该些标志暂存器的状态及该写入程序控制指令,控制相对应于该些写入数据分流的异或运算处理程序,包含当有一失效储存装置时,在所要写入的储存区域的相对应的上边界或下边界储存区块,包含有不在所要写入的储存区域内的一非奇偶校验储存区块,且该非奇偶校验储存区块不属于该失效储存装置时,执行该非奇偶校验储存区块相对应的储存装置的读取程序,用以读出该非奇偶校验储存区块的数据,再根据该非奇偶校验储存区块的数据,执行异或运算处理以产生相对应的一奇偶校验数据。

21.如权利要求17所述的磁盘阵列5写入方法,其特征在于,该异或运算单元根据该些标志暂存器的状态及该写入程序控制指令,控制相对应于该些写入数据分流的异或运算处理程序,并将处理后的该些写入数据分流并列传输至该些正常储存装置相对应的该些储存装置存取控制器,包含当有一失效储存装置时,且在所要写入的储存区域的相对应于上边界的一奇偶校验储存区块,属于该失效储存装置时,判断该奇偶校验储存区块的奇偶校验数据不用写入,略过对该奇偶校验储存区块的奇偶校验数据产生处理,而直接将该些写入数据分流的相对应于上边界储存区块的数据并列传输至该些正常储存装置相对应的该些储存装置存取控制器。

22.如权利要求17所述的磁盘阵列5写入方法,其特征在于,该异或运算单元根据该些标志暂存器的状态及该写入程序控制指令,控制相对应于该些写入数据分流的异或运算处理程序,并将处理后的该些写入数据分流并列传输至该些正常储存装置相对应的该些储存装置存取控制器,包含当有一失效储存装置时,且在所要写入的储存区域的相对应于下边界的一奇偶校验储存区块,属于该失效储存装置时,判断该奇偶校验储存区块的奇偶校验数据不用写入,略过对该奇偶校验储存区块的奇偶校验数据产生处理,而直接将该些写入数据分流的相对应于下边界储存区块的数据并列传输至该些正常储存装置相对应的该些储存装置存取控制器。

23.如权利要求17所述的磁盘阵列5写入方法,其特征在于,该异或运算单元根据该些标志暂存器的状态及该写入程序控制指令,控制相对应于该些写入数据分流的异或运算处理程序,包含当没有失效储存装置时,且在所要写入的储存区域的相对应的上边界或下边界储存区块,包含有不在所要写入的储存区域内的一非奇偶校验储存区块时,执行该非奇偶校验储存区块相对应的储存装置的读取程序,用以读出该非奇偶校验储存区块的数据,再根据该非奇偶校验储存区块的数据,执行异或运算处理以产生相对应的一奇偶校验数据。

24.如权利要求17所述的磁盘阵列5写入方法,其特征在于,该异或运算单元根据该些标志暂存器的状态及该写入程序控制指令,控制相对应于该些写入数据分流的异或运算处理程序,包含当没有失效储存装置时,且在所要写入的储存区域的相对应的上边界及下边界储存区块,均包含于所要写入的储存区域内时,直接根据该些写入数据分流的相对应数据,执行异或运算处理以产生相对应的一奇偶校验数据。

25.如权利要求17所述的磁盘阵列5写入方法,其特征在于,该异或运算单元根据该些标志暂存器的状态及该写入程序控制指令,控制相对应于该些写入数据分流的异或运算处理程序,包含当有失效储存装置时,且在所要写入的储存区域的相对应的上边界及下边界储存区块,均包含于所要写入的储存区域内时,根据该些写入数据分流的相对应数据,执行异或运算处理以产生要写入非失效硬盘相对应的一奇偶校验数据。

26.如权利要求17所述的磁盘阵列5写入方法,其特征在于,该些储存装置存取控制器将该些写入数据分流分别写入该些正常储存装置,是该些储存装置存取控制器以该些储存装置的最小存取单位作为基本写入单位,将该些写入数据分流分别写入该些正常储存装置。

说明书 :

磁盘阵列5控制器及存取方法

技术领域

[0001] 本发明是有关于一种磁盘阵列控制器及相关存取方法,尤指一种基于储存装置最小存取区块的分流与聚流运作的磁盘阵列5控制器及相关存取方法。

背景技术

[0002] 随着数据处理量的日益增加以及数据数字化的趋势,如何建构一个高可用性(high availability)、高效能(high performance)及大容量(high volume)的储存系统已成为一重要课题。目前,在电脑系统中,磁盘阵列(Redundant Array ofIndependent Disks,RAID)系统为常采用的储存系统之一,而磁盘阵列系统即用以提供高可用性、高效能及大容量的数据储存空间给主机端(host entity)。
[0003] 磁盘阵列系统根据其操作模式可分类为磁盘阵列等级0,1,2,3,4,5或6等,就低系统复杂度的应用而言,是以磁盘阵列等级0及1系统为主。但磁盘阵列0系统不提供容错能力,数据分散储存于磁盘阵列中,若任何一颗硬盘机损毁,则数据也随的消失。至于磁盘阵列1系统系将数据同时储存于二硬盘机,换句话说,二硬盘机储存相同的数据,当有一硬盘机损坏而无法读取数据时,可由另一硬盘机读取数据,而损坏的硬盘机更新后,新的硬盘机就可由另一硬盘机备份数据,虽然提供数据安全保护机制,但储存空间的实际利用率只有50%。
[0004] 一般而言,兼具数据安全保护机制及高储存空间利用率的优点的系统,是以磁盘阵列5系统为代表,磁盘阵列5系统类似磁盘阵列4系统,磁盘阵列4系统使用额外的一部同位硬盘机(parity disk),用来储存奇偶校验信息(parityinformation),磁盘阵列5系统并不使用同位硬盘机,而是将奇偶校验信息分别储存在磁盘阵列不同的硬盘机中。
[0005] 请参考图1,图1显示现有磁盘阵列5系统100的功能方块示意图。磁盘阵列5系统100包含耦接至一主机101的一磁盘阵列5控制器(RAID5controller)110以及连接至磁盘阵列5控制器110的一磁盘阵列170,磁盘阵列170包含多部硬盘机(Hard Disk Drive,HDD)181、182、183、184及185,磁盘阵列5控制器110包含一中央处理单元130、耦接至中央处理单元130的一存储器120、及耦接至存储器120及中央处理单元130的数据存取控制器140。磁盘阵列系统100必须先进行磁盘阵列建立(RAID creation)的过程以定义磁盘阵列170,完成后再呈现给主机101,此时可称为磁盘阵列170相对于主机101存在(可使用,available),主机101也就可以开始存取(access)数据于磁盘阵列170。
[0006] 在现有的磁盘阵列5系统100的存取操作中,要写入数据时,先储存数据于存储器120,再经中央处理单元130分析所要写入的储存区域的状况,以执行相对应的数据读取处理,其后,中央处理单元130才可根据所要写入的数据,配合所读取的数据,执行异或运算处理产生奇偶校验数据,再将要写入的数据及奇偶校验数据分散储存在磁盘阵列不同的硬盘机中,不过,若有失效硬盘机,且奇偶校验数据运算所需要的数据也包含失效硬盘机的数据,则先要执行失效硬盘机相对应数据的恢复处理。
[0007] 要读取数据时,也先储存来自各硬盘机的数据于存储器120,若没有失效硬盘机,则中央处理单元130执行奇偶校验数据弃除程序,及组合所要的数据以产生输出数据,若有失效硬盘机,则中央处理单元130执行失效硬盘机相对应数据的恢复处理,即利用其余硬盘机的数据执行异或运算处理,恢复失效硬盘机的数据后,中央处理单元130才可执行奇偶校验数据弃除程序,及组合所要的数据以产生输出数据。
[0008] 由于目前磁盘阵列5系统的架构及存取方法大多使用电脑架构或I/O处理器完成,即所谓的软件磁盘阵列,但因先天架构限制关系,为了达到磁盘阵列5高效能的目的,数据分流单位大多从4KB至256KB,甚至更大,导致在执行待处理储存区域边界部分的存取操作时,需要相当复杂的判断与运算程序。

发明内容

[0009] 因此本发明的主要目的是在采用储存装置最小存取区块作为分流及聚流单位,用以简化在执行待处理储存区域边界部分的存取操作时所需的判断与运算程序,并得以借由硬件加速来达到高存取效率的磁盘阵列5系统。
[0010] 依据本发明的实施例,其揭示一种基于储存装置最小存取区块的分流与聚流运作的磁盘阵列5(RAID5)控制器,此控制器包含一数据配置及组合单元、一异或运算单元、多个传输控制器、多个储存装置存取控制器、以及多个数据暂存器。数据配置及组合单元用以将一写入数据流基于储存装置最小存取区块为处理单位而分散配置于多条写入数据分流,或将多条读出数据分流基于储存装置最小存取区块为处理单位而组合为一读出数据流。异或运算单元耦合于数据配置及组合单元。每一个传输控制器均耦合于异或运算单元。每一个数据暂存器是耦合于相对应的一传输控制器与相对应的一储存装置存取控制器之间。每一个储存装置存取控制器是耦合于相对应的一数据暂存器与相对应的一储存装置之间。
[0011] 依据本发明的实施例,其另揭示一种基于储存装置最小存取区块的聚流运作的磁盘阵列5读取方法,用以根据一读取指令从多个储存装置读取一读出数据流,此方法包含根据标志暂存器的状态,解码读取指令,以产生相对应的一读取程序控制指令,根据读取程序控制指令及标志暂存器的状态,执行对于多个正常储存装置的相对应数据的读取操作,用以产生多条读出数据分流,将该些读出数据分流并列传输至一异或运算单元,异或运算单元根据标志暂存器的状态及读取程序控制指令,控制相对应于该些读出数据分流的异或运算处理程序,并将处理后的该些读出数据分流并列传输至一数据配置及组合单元,以及数据配置及组合单元根据标志暂存器的状态及读取程序控制指令,将该些读出数据分流基于储存装置最小存取区块为聚流单位而组合为读出数据流。
[0012] 依据本发明的实施例,其另揭示一种基于储存装置最小存取区块的分流运作的磁盘阵列5写入方法,用以根据一写入指令将一写入数据流写入多个储存装置,此方法包含根据标志暂存器的状态,解码写入指令,以产生相对应的一写入程序控制指令,根据写入程序控制指令及标志暂存器的状态,利用一数据配置及组合单元将写入数据流基于储存装置最小存取区块为分流单位而分散配置为多条写入数据分流,再将该些写入数据分流并行传输至一异或运算单元,异或运算单元根据标志暂存器的状态及写入程序控制指令,控制相对应于该些写入数据分流的异或运算处理程序,并将处理后的该些写入数据分流并列传输至多个正常储存装置相对应的多个储存装置存取控制器,以及该些储存装置存取控制器将该些写入数据分流分别写入该些正常储存装置。

附图说明

[0013] 为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
[0014] 图1显示现有磁盘阵列5系统的功能方块示意图。
[0015] 图2显示依本发明实施例的磁盘阵列5控制器的功能方块示意图。
[0016] 图3显示没有失效硬盘机的五硬盘机的对应于读取操作的储存区块阵列示意图。
[0017] 图4显示具有失效硬盘机的五硬盘机的对应于读取操作的储存区块阵列的第一范例示意图。
[0018] 图5显示具有失效硬盘机的五硬盘机的对应于读取操作的储存区块阵列的第二范例示意图。
[0019] 图6显示没有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第一范例示意图。
[0020] 图7显示没有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第二范例示意图。
[0021] 图8显示具有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第一范例示意图。
[0022] 图9显示具有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第二范例示意图。
[0023] 图10显示具有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第三范例示意图。
[0024] 图11显示图2的磁盘阵列5控制器的读取方法的流程图。
[0025] 图12显示图2的磁盘阵列5控制器的写入方法的流程图。
[0026] 主要元件符号说明:
[0027] 100 磁盘阵列5系统
[0028] 101、201 主机
[0029] 110、210 磁盘阵列5控制器
[0030] 120 存储器
[0031] 130 中央处理单元
[0032] 140 数据存取控制器
[0033] 170、270 磁盘阵列
[0034] 181、182、183、 硬盘机184、185
[0035] 205 标志暂存器单元
[0036] 220 控制器
[0037] 225 指令解码器
[0038] 230 数据配置及组合单元
[0039] 235 异或运算单元
[0040] 241、242、243、 传输控制器244、245
[0041] 251、252、253、 数据暂存器254、255
[0042] 261、262、263、 硬盘存取控制器264、265
[0043] 281 硬盘机A
[0044] 282 硬盘机B
[0045] 283 硬盘机C
[0046] 284 硬盘机D
[0047] 285 硬盘机E
[0048] 1100 读取方法
[0049] 1200 写入方法
[0050] F1、F2、F3、 标志暂存器F4、F5、Fn
[0051] Pu、Pd、Pi1-Pi8 奇偶校验储存区块
[0052] S1110-S1170、 步骤
[0053] S1210-S1295

具体实施方式

[0054] 为让本发明的目的、特征和优点更显而易懂,下文依本发明的磁盘阵列5控制器及存取方法,特举实施例配合所附图式作详细说明,但所提供的实施例并不用以限制本发明所涵盖的技术范围,而方法流程步骤编号更非用以限制其执行先后次序,任何由方法步骤重新组合的执行流程,所产生具有均等功效的方法,均为本发明所涵盖的技术范围。
[0055] 请参考图2,图2是显示依本发明实施例的磁盘阵列5控制器210的功能方块示意图。磁盘阵列5控制器210可耦合于一主机201及一磁盘阵列270,磁盘阵列270包含硬盘机A281、硬盘机B282、硬盘机C283、硬盘机D284及硬盘机E285,该些硬盘机可为SATA硬盘机、SAS硬盘机、固态记忆装置(SSD,Solid State Drive)、或基于倍数据传输率随机存取存储器(Double Data RateRandom Access Memory)的储存装置(i-RAM)。磁盘阵列5控制器210包含一控制器220、耦合于控制器220的一指令解码器225、耦合于控制器220及指令解码器225的一数据配置及组合单元230、耦合于数据配置及组合单元230及指令解码器225的一异或运算单元235、耦合于异或运算单元235及指令解码器225的多个传输控制器
241…245、耦合于相对应的传输控制器的多个数据暂存器251…255、耦合于相对应的数据暂存器的多个硬盘存取控制器261…265、及一标志暂存器单元205。
[0056] 如图2所示,每一硬盘存取控制器均耦合于磁盘阵列270的相对应的一硬盘机,譬如硬盘存取控制器261耦合于硬盘机A281,硬盘存取控制器265耦合于硬盘机E285,其余类推。图2所示的磁盘阵列270是以5部硬盘机为例,但本发明的磁盘阵列5控制器并不限于5部硬盘机,对任何现有磁盘阵列5控制器所控制的磁盘阵列,均可由图2的磁盘阵列5控制器210的均等变化而提高数据存取效率。此外,每一硬盘存取控制器可以一串行式ATA(Serial AdvancedTechnology Attachment,SATA)接口、一通用串行总线(Universal Serial Bus,USB)接口、一SAS(Serial Attached Small Computer System Interface,Serial AttachedSCSI)接口、一IEEE-1394接口、或一eSATA接口,耦合于相对应的硬盘机。
[0057] 控制器220可将从主机201送来的存取指令传送至指令解码器225,并执行主机201与数据配置及组合单元230之间的双向数据传送。标志暂存器单元205包含多个标志暂存器F1…Fn,标志暂存器是用以显示各种系统状态,举例而言,标志暂存器F1可用以显示硬盘机A281的状态,当标志暂存器F1为逻辑0时,可表示硬盘机A281在正常状态,当标志暂存器F1为逻辑1时,可表示硬盘机A281在失效状态,其余同理类推。
[0058] 指令解码器225可将由控制器220传来的存取指令,根据标志暂存器F1…Fn所提供的各种系统状态(譬如各硬盘机的正常或失效状态)及存取指令所提供的存取参数(譬如读取或写入、数据大小、及存取地址等),而解码出存取操作所需的程序控制指令,程序控制指令系根据所要存取的储存区域的储存区块状态(譬如储存区块是否为奇偶校验储存区块,或储存区块是否在储存区域的上边界或下边界),而控制系统各功能电路的操作程序或提供操作参数,譬如控制每一传输控制器241…245与异或运算单元235之间的数据传输,或提供每一硬盘存取控制器261…265执行对于相对应的一硬盘机的写入或读取操作参数。异或运算单元235根据所解码出来的存取操作程序控制指令,而执行相对应的操作,可以是单纯的数据传送,或是执行异或运算处理以产生奇偶校验数据,或是执行异或运算处理以恢复一失效硬盘机所储存的数据。传输控制器241…245可根据存取操作程序控制指令,配合异或运算单元235执行相对应数据的传送操作,也可以直接根据标志暂存器F1…Fn所提供的各种系统状态,而执行相对应数据的传送操作,譬如停止执行相对应于一失效硬盘机的数据传输。数据暂存器251…255是用以在数据流的讯号处理过程中,暂时储存要写入或读出的数据。硬盘存取控制器261…265是用以分别执行对硬盘机A281…E285的存取操作处理。请注意,在本文叙述中,“储存区块”是用以定义储存装置的最小存取单位。对图2以目前硬盘机作为储存装置的实施例而言,“储存区块”即为以存取地址能存取的一个磁区(Sector),所以硬盘存取控制器261…265就可以磁区为基本存取单位,执行对硬盘机A281…E285的存取操作处理。另外,在数据的处理过程中,不管是分流(分散配置)、聚流(组合)、或执行异或运算等,皆使用“储存区块”为运作单位。
[0059] 磁盘阵列5控制器210的概略读取工作原理举例如下,当硬盘机A281失效时,指令解码器225接收到控制器220传来的读取指令后,就可根据标志暂存器F1的逻辑1状态,而解码出相对应的读取程序控制指令,此读取程序控制指令所控制的操作程序可包含硬盘存取控制器262…265分别执行对正常硬盘机B282…E285的数据读取操作,以产生多条读出数据分流,禁止硬盘存取控制器261对失效硬盘机A281执行数据读取操作,数据暂存器252…255暂存硬盘机B282…E285所读出的该些读出数据分流,传输控制器242…245以并列传输模式将数据暂存器252…255所储存的该些读出数据分流传送至异或运算单元235,异或运算单元235执行对该些读出数据分流的异或运算处理,以恢复原本要从硬盘机A281读出的读出数据分流,也就是说,传输控制器241根据硬盘机A281的失效状态而不执行数据传输处理,异或运算单元235则以被恢复的读出数据分流取代原本要从传输控制器241接收的读出数据分流,其后,将被恢复的读出数据分流及所读出的4条读出数据分流由5条并列传输管道传送至数据配置及组合单元230,以及数据配置及组合单元230从并列输入的5条读出数据分流中,弃除奇偶校验数据后,将所要的读出数据以储存区块为处理单位而依序组合为一读出数据流,经由控制器220传送至主机201。
[0060] 在上述有关磁盘阵列5控制器210的概略读取工作原理中,从硬盘机数据读取到数据组合,是并行串列处理,再直接汇合的程序。所以相较于传统技术,依本发明的磁盘阵列5控制器210可提供更高效率的数据读取方法。
[0061] 至于磁盘阵列5控制器210的概略写入工作原理举例如下,当硬盘机A281失效时,指令解码器225接收到控制器220传来的写入指令后,就可根据标志暂存器F1的逻辑1状态,而解码出相对应的写入程序控制指令,此写入程序控制指令所控制的操作程序可包含数据配置及组合单元230从控制器220接收由主机201传来的一写入数据流,将写入数据流的数据以储存区块为处理单位而分散配置至5条写入数据分流,再并列传送至异或运算单元235,异或运算单元235执行相对应于正常硬盘机B282…E285的奇偶校验数据产生处理,即根据5条并列输入的写入数据分流,执行异或运算处理以产生要储存于硬盘机B282…E285的奇偶校验数据,并将奇偶校验数据以储存区块为处理单位而插入相对应的写入数据分流,再将相对应于正常硬盘机B282…E285的4条写入数据分流分别经由传输控制器242…245及数据暂存器252…255,并列传送至硬盘存取控制器262…265,其后,硬盘存取控制器262…265就分别将相对应的写入数据分流写入硬盘机B282…E285。
[0062] 在上述有关磁盘阵列5控制器210的概略写入工作原理中,从主机201输入的写入数据流的分散配置到写入硬盘机,仍为并行串列处理。所以相较于传统技术,依本发明的磁盘阵列5控制器210也可提供更高效率的数据写入方法。
[0063] 此外,磁盘阵列5控制器210在不同硬盘机状态及不同储存区域的数据存取细节操作原理,则分别配合图3至图10,举例说明如下。请参考图3,图3系显示没有失效硬盘机的五硬盘机的对应于读取操作的储存区块阵列示意图。没有失效硬盘机的数据读取方法,以图3的五硬盘机A、B、C、D及E为例,所要读取的储存区域是以粗线包围所涵盖的区域,标示为Pi1至Pi8的储存区块是奇偶校验储存区块,储存区块所标示的数字表示相对应于所要读取的数据顺序,也就是说,数据是以储存区块0、储存区块1至储存区块28的顺序而循序输出,至于不在所要读取的储存区域的储存区块,则根据其在所要读取的储存区域之后或之前,而编以后续数字,或负数数字。
[0064] 所以,读出数据是从硬盘机C的储存区块0开始,循序至硬盘机D的储存区块28结束。因没有失效硬盘机,所以读取操作并不需要奇偶校验储存区块的数据,因此位于上下边界的奇偶校验储存区块Pi1及Pi8可直接省略不读,但对于非上下边界的奇偶校验储存区块Pi2至Pi7,基于个别硬盘机循序读取方式及效率因素仍然读出,只是其后会被数据配置及组合单元230弃除。
[0065] 根据上述方法,当指令解码器225接收到控制器220传来的主机201的读取指令,并根据标志暂存器状态解码出相对应的读取程序控制指令后,硬盘存取控制器261即控制硬盘机A依序读出储存区块2、Pi3、10、14、18及22所储存的数据,以产生一读出数据分流,并依序传送至数据暂存器251,硬盘存取控制器262即控制硬盘机B依序读出储存区块3、6、Pi4、15、19、23及26所储存的数据,以产生一读出数据分流,并依序传送至数据暂存器
252,硬盘存取控制器263即控制硬盘机C依序读出储存区块0、4、7、11、Pi5、20、24及27所储存的数据,以产生一读出数据分流,并依序传送至数据暂存器253,硬盘存取控制器264即控制硬盘机D依序读出储存区块5、8、12、16、Pi6、25及28所储存的数据,以产生一读出数据分流,并依序传送至数据暂存器254,硬盘存取控制器265即控制硬盘机E依序读出储存区块1、Pi2、9、13、17、21及Pi7所储存的数据,以产生一读出数据分流,并依序传送至数据暂存器255。也就是说,根据标志暂存器状态所提供的信息,硬盘机A略过位于储存区域下边界的储存区块Pi8的数据读取,硬盘机D略过位于储存区域上边界的储存区块Pi1的数据读取,用以提高读取效率。
[0066] 其后,传输控制器241…245将数据暂存器251…255所储存的该些读出数据分流的数据依序传送至异或运算单元235,由于没有失效硬盘机,所以不需要执行异或运算处理以恢复数据,因此,异或运算单元235直接将并行传入的该些读出数据分流,直接并行传送至数据配置及组合单元230。数据配置及组合单元230从并行传入的该些读出数据分流中,弃除奇偶校验数据后,以储存区块为处理单位而依序组合所要的读出数据以产生一读出数据流,经由控制器220传送至主机201。
[0067] 请参考图4,图4是显示具有失效硬盘机的五硬盘机的对应于读取操作的储存区块阵列的第一范例示意图。有失效硬盘机的数据读取方法,以图4的五硬盘机A、B、C、D及E为例,其中硬盘机C为一失效硬盘机,所要读取的储存区域仍为以粗线包围所涵盖的区域。要读出的数据原本应以储存区块0、储存区块1至储存区块13的顺序而循序输出,换句话说,要读出的数据原本应从硬盘机C的储存区块0开始,循序至硬盘机C的储存区块13结束。但由于硬盘机C为失效硬盘机,所以要从硬盘机C读出的数据,就要根据其余4硬盘机的数据的异或运算处理而取得。
[0068] 因此要取得储存区块0的数据时,就要读取储存区块-1、Pu、1及2的数据,经由异或运算处理而取得原储存区块0的数据,换句话说,储存区块-1及Pu虽然不在所要读取的储存区域中,但仍要读取其储存的数据。同理,要取得储存区块13的数据时,就要读取储存区块11、12、14及Pd的数据,经由异或运算处理而取得原储存区块13的数据,换句话说,储存区块14及Pd虽然不在所要读取的储存区域中,但仍要读取其储存的数据。
[0069] 根据上述方法,当指令解码器225接收到控制器220传来的主机201的读取指令,并根据标志暂存器状态解码出相对应的读取程序控制指令后,硬盘存取控制器261即控制硬盘机A依序读出储存区块-1、3、7及11所储存的数据,以产生一读出数据分流,并依序传送至数据暂存器251,硬盘存取控制器262即控制硬盘机B依序读出储存区块Pu、4、8及12所储存的数据,以产生一读出数据分流,并依序传送至数据暂存器252,硬盘机C为失效硬盘机,所以硬盘存取控制器263不执行数据读取,硬盘存取控制器264即控制硬盘机D依序读出储存区块1、5、Pi2及14所储存的数据,以产生一读出数据分流,并依序传送至数据暂存器254,硬盘存取控制器265即控制硬盘机E依序读出储存区块2、6、10及Pd所储存的数据,以产生一读出数据分流,并依序传送至数据暂存器255,也就是说,根据标志暂存器状态所提供的硬盘机C失效信息以及根据读取程序控制指令,硬盘机A要多读位于储存区域上边界的储存区块-1的数据,硬盘机B要多读位于储存区域上边界的储存区块Pu的数据,硬盘机D要多读位于储存区域下边界的储存区块14的数据,硬盘机E要多读位于储存区域下边界的储存区块Pd的数据。
[0070] 其后,传输控制器241、242、244及245将数据暂存器251、252、254及255所储存的该些读出数据分流的数据依序传送至异或运算单元235。根据标志暂存器状态所提供的硬盘机C失效信息以及根据读取程序控制指令,异或运算单元235执行异或运算处理以恢复硬盘机C的储存区块0、9及13的数据,即恢复一读出数据分流,至于储存区块Pi1则可根据标志暂存器状态知其为奇偶校验储存区块,所以并不需要执行异或运算处理恢复其奇偶校验数据,接着,异或运算单元235将并行传入的4条读出数据分流及被恢复的读出数据分流,并行传送至数据配置及组合单元230。数据配置及组合单元230从并行传入的5条读出数据分流中,弃除奇偶校验数据后,以储存区块为处理单位而依序组合所要的读出数据以产生一读出数据流,经由控制器220传送至主机201。
[0071] 请参考图5,图5是显示具有失效硬盘机的五硬盘机的对应于读取操作的储存区块阵列的第二范例示意图。有失效硬盘机的数据读取方法,以图5的五硬盘机A、B、C、D及E为例,其中硬盘机D为一失效硬盘机,所要读取的储存区域仍为以粗线包围所涵盖的区域。要读出的数据原本应以储存区块0、储存区块1至储存区块11的顺序而循序输出,换句话说,要读出的数据原本应从硬盘机C的储存区块0开始,循序至硬盘机C的储存区块11结束。但由于硬盘机D为失效硬盘机,所以要从硬盘机D读出的数据,就要根据其余4硬盘机的数据的异或运算处理而取得。
[0072] 因硬盘机D的上边界储存区块Pi1是为一奇偶校验储存区块,故可略过其数据恢复所需的异或运算处理,所以储存区块-1及-2并不需因硬盘机D的失效而读取。至于硬盘机D的下边界储存区块12,并不在所要读取的储存区域内,所以不需执行异或运算处理以恢复其数据,因此储存区块13并不需因硬盘机D的失效而读取。此外,硬盘机B的奇偶校验储存区块Pi4因在下边界,且不需用以恢复失效储存区块12的数据,所以,也不需读取。
[0073] 根据上述方法,当指令解码器225接收到控制器220传来的主机201的读取指令,并根据标志暂存器状态解码出相对应的读取程序控制指令后,硬盘存取控制器261即控制硬盘机A依序读出储存区块2、Pi3及10所储存的数据,以产生一读出数据分流,并依序传送至数据暂存器251,硬盘存取控制器262即控制硬盘机B依序读出储存区块3及6所储存的数据,以产生一读出数据分流,并依序传送至数据暂存器252,硬盘存取控制器263即控制硬盘机C依序读出储存区块0、4、7及11所储存的数据,以产生一读出数据分流,并依序传送至数据暂存器253,硬盘机D为失效硬盘机,所以硬盘存取控制器264不执行数据读取,硬盘存取控制器265即控制硬盘机E依序读出储存区块1、Pi2及9所储存的数据,以产生一读出数据分流,并依序传送至数据暂存器255。
[0074] 其后,传输控制器241、242、243及245将数据暂存器251、252、253及255所储存的该些读出数据分流的数据依序传送至异或运算单元235。根据标志暂存器状态所提供的硬盘机D失效信息,异或运算单元235执行异或运算处理以恢复硬盘机D的储存区块5及8的数据,即恢复一读出数据分流,至于储存区块Pi1则可根据标志暂存器状态知其为奇偶校验储存区块,所以并不需要执行异或运算处理恢复其奇偶校验数据,接着,异或运算单元
235将并行传入的4条读出数据分流及被恢复的读出数据分流,并行传送至数据配置及组合单元230。数据配置及组合单元230从并行传入的5条读出数据分流中,弃除奇偶校验数据后,以储存区块为处理单位而依序组合所要的读出数据以产生一读出数据流,经由控制器220传送至主机201。
[0075] 请参考图6,图6是显示没有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第一范例示意图。没有失效硬盘机的数据写入方法,以图6的五硬盘机A、B、C、D及E为例,所要写入的储存区域为以粗线包围所涵盖的区域,储存区块所标示的数字表示相对应于所要写入的数据顺序,也就是说,数据系以储存区块0、储存区块Pi1至储存区块9的顺序而循序写入,至于不在所要写入的储存区域的储存区块,则根据其在所要写入的储存区域之后或之前,而编以后续数字,或负数数字。
[0076] 所以,写入数据系从硬盘机D的储存区块0开始,循序至硬盘机A的储存区块9结束。因没有硬盘机失效,所以,在所要写入的储存区域内,所有储存区块均要写入数据。此外,不在所要写入的储存区域内,但位于上下边界的非奇偶校验储存区块的数据均要被读取,用以执行异或运算处理产生位于上下边界的奇偶校验储存区块的奇偶校验数据。而不论是否在所要写入的储存区域内,位于上下边界的奇偶校验储存区块的奇偶校验数据均要被更新或写入。
[0077] 储存区块0的数据可以直接写入,在上边界的奇偶校验储存区块Pi1的奇偶校验数据,则要根据储存区块0、-1、-2及-3的数据的异或运算处理产生,也就是说,先要读出不在所要写入的储存区域内的储存区块-1、-2及-3的数据,再配合储存区块0所要写入的数据,异或运算单元235才能算出奇偶校验储存区块Pi1的奇偶校验数据。在下边界的奇偶校验储存区块Pd,并不在所要写入的储存区域内,但奇偶校验储存区块Pd的奇偶校验数据因储存区块9的数据写入,所以要更新,因此储存区块10、11及12的数据均要被读出,配合储存区块9所要写入的数据,异或运算单元235才可执行异或运算处理以更新储存区块Pd的奇偶校验数据。
[0078] 根据上述方法,当指令解码器225接收到控制器220传来的主机201的写入指令,并根据标志暂存器状态解码出相对应的写入程序控制指令后,数据配置及组合单元230根据写入程序控制指令,将主机201借由控制器220而传来的写入数据流,执行分散配置处理,即将写入数据流以储存区块为处理单位而分散配置为并行传输的5条写入数据分流,传送至异或运算单元235,异或运算单元235根据并行输入的5条写入数据分流,配合来自硬盘机的读取数据,执行异或运算处理产生所要写入或更新的奇偶校验数据,至于是否需要配合来自硬盘机的读取数据以产生奇偶校验数据,系由硬盘存取控制器261…265与传输控制器241…245根据写入程序控制指令以及标志暂存器的状态,而控制可能的数据读取操作,在下述各硬盘机的数据写入方法的操作程序中,即提供可能的数据读取操作状况。
[0079] 数据写入方法对于硬盘机A的操作程序,包含由硬盘存取控制器261控制硬盘机A读出储存区块-3所储存的数据、将奇偶校验数据写入储存区块Pi2、及将数据写入储存区块5及9,其中储存区块Pi2所要写入的奇偶校验数据,是由异或运算单元235根据储存区块1、2、3及4所要写入的数据,执行异或运算处理所产生。
[0080] 数据写入方法对于硬盘机B的操作程序,包含由硬盘存取控制器262控制硬盘机B读出储存区块-2所储存的数据、将数据写入储存区块1、将奇偶校验数据写入储存区块Pi3、及读出储存区块10的数据,其中储存区块Pi3所要写入的奇偶校验数据,是由异或运算单元235根据储存区块5、6、7及8所要写入的数据,执行异或运算处理所产生。数据写入方法对于硬盘机C的操作程序,包含由硬盘存取控制器263控制硬盘机C读出储存区块-1所储存的数据、将数据写入储存区块2及6、及更新储存区块Pd的奇偶校验数据,其中储存区块Pd所要更新的奇偶校验数据,是根据储存区块9所要写入的数据及储存区块10、11及12所读出的数据,由异或运算单元235执行异或运算处理所产生。
[0081] 数据写入方法对于硬盘机D的操作程序,包含由硬盘存取控制器264控制硬盘机D将数据写入储存区块0、3及7、及读出储存区块11的数据。数据写入方法对于硬盘机E的操作程序,包含由硬盘存取控制器265控制硬盘机E将奇偶校验数据写入储存区块Pi1、将数据写入储存区块4及8、及读出储存区块12的数据,其中储存区块Pi1所要写入的奇偶校验数据,系根据储存区块0所要写入的数据及储存区块-3、-2及-1所读出的数据,由异或运算单元235执行异或运算处理所产生。
[0082] 请参考图7,图7是显示没有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第二范例示意图。没有失效硬盘机的数据写入方法,以图7的五硬盘机A、B、C、D及E为例,所要写入的储存区域仍为以粗线包围所涵盖的区域。
[0083] 在上边界的奇偶校验储存区块Pi1的奇偶校验数据,系要根据储存区块0所要写入的数据,配合储存区块-1、-2及-3所读出的数据,借由异或运算单元235执行异或运算处理而产生。在下边界的奇偶校验储存区块Pi2的奇偶校验数据,系要根据储存区块1所要写入的数据,配合储存区块2、3及4所读出的数据,借由异或运算单元235执行异或运算处理而产生。
[0084] 根据上述方法,写入数据流及写入指令的前级处理类似于图6的第一范例说明,不再赘述,而直接说明如何控制各硬盘机在数据写入方法中的操作程序。数据写入方法对于硬盘机A的操作程序,包含由硬盘存取控制器261控制硬盘机A读出储存区块-3的数据、及将数据写入储存区块Pi2,其中储存区块Pi2所要写入的奇偶校验数据,系根据储存区块1所要写入的数据及储存区块2、3及4所读出的数据,由异或运算单元235执行异或运算处理所产生。数据写入方法对于硬盘机B的操作程序,包含由硬盘存取控制器262控制硬盘机B读出储存区块-2的数据、及将数据写入储存区块1。
[0085] 数据写入方法对于硬盘机C的操作程序,包含由硬盘存取控制器263控制硬盘机C读出储存区块-1及2的数据。数据写入方法对于硬盘机D的操作程序,包含由硬盘存取控制器264控制硬盘机D将数据写入储存区块0、及读出储存区块3的数据。数据写入方法对于硬盘机E的操作程序,包含由硬盘存取控制器265控制硬盘机E将数据写入储存区块Pi1、及读出储存区块4的数据,其中储存区块Pi1所要写入的奇偶校验数据,系根据储存区块0所要写入的数据及储存区块-1、-2及-3所读出的数据,由异或运算单元235执行异或运算处理所产生。
[0086] 在另一种没有失效硬盘机的写入操作中,若所要写入的储存区域的相对应的上边界及下边界储存区块,均包含于所要写入的储存区域内时,则不需要执行任何额外的读取操作,而可直接根据5条写入数据分流的数据,执行异或运算处理以产生奇偶校验数据,再将奇偶校验数据以储存区块为处理单位而插入相对应的写入数据分流后,就可将5条写入数据分流并行写入五硬盘机A、B、C、D及E。
[0087] 请参考图8,图8是显示具有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第一范例示意图。具有失效硬盘机的数据写入方法,以图8的五硬盘机A、B、C、D及E为例,其中硬盘机D是为一失效硬盘机,所要写入的储存区域仍为以粗线包围所涵盖的区域。
[0088] 因硬盘机D为一失效硬盘机,所以数据写入方法的操作程序中,并没有对硬盘机D执行任何写入或读取的操作,也就是说,原本要执行对硬盘机D的写入操作均略过,原本要执行对硬盘机D的读取操作以取得的数据,则要由异或运算单元235对其余硬盘机的相对应数据执行异或运算处理以产生。
[0089] 所以,对于在上边界的奇偶校验储存区块Pi1而言,所要写入的奇偶校验数据,是根据储存区块-1、-2及-3所读出的数据,配合硬盘机D的储存区块0原本要写入的数据,由异或运算单元235执行异或运算处理而产生。对于在下边界的奇偶校验储存区块Pd而言,因硬盘机D的储存区块11的数据已失效,所以要更新奇偶校验储存区块Pd的奇偶校验数据之前,先要读取原本储存在奇偶校验储存区块Pd的旧奇偶校验数据、储存在储存区块9的旧数据、及储存区块10及12的数据,再根据所读取的旧奇偶校验数据、储存区块9的旧数据及储存区块10及12的数据,由异或运算单元235执行异或运算处理以恢复原本储存在硬盘机D的储存区块11的数据,其后,再根据储存区块11被恢复的数据、储存区块9所要写入的数据及储存区块10及12所读出的数据,由异或运算单元235执行异或运算处理以更新奇偶校验储存区块Pd的奇偶校验数据。
[0090] 根据上述方法,写入数据流及写入指令的前级处理类似于图6的第一范例说明,不再赘述,而直接说明如何控制各硬盘机在数据写入方法中的操作程序。数据写入方法对于硬盘机A的操作程序,包含由硬盘存取控制器261控制硬盘机A读出储存区块-3的数据、将奇偶校验数据写入储存区块Pi2、将数据写入储存区块5、读出储存区块9的旧数据及将数据写入储存区块9,其中储存区块Pi2所要写入的奇偶校验数据,是根据储存区块1、2、3及4所要写入的数据,由异或运算单元235执行异或运算处理所产生。数据写入方法对于硬盘机B的操作程序,包含由硬盘存取控制器262控制硬盘机B读出储存区块-2的数据、将数据写入储存区块1、将奇偶校验数据写入储存区块Pi3、及读出储存区块10的数据,其中储存区块Pi3所要写入的奇偶校验数据,是根据储存区块5、6、7及8所要写入的数据,由异或运算单元235执行异或运算处理所产生。
[0091] 数据写入方法对于硬盘机C的操作程序,包含由硬盘存取控制器263控制硬盘机C读出储存区块-1的数据、将数据写入储存区块2及6、读出储存区块Pd的旧奇偶校验数据、及更新储存区块Pd的奇偶校验数据,读出储存区块Pd的旧奇偶校验数据系用以配合储存区块9所读出的旧数据及储存区块10及12所读出的数据,由异或运算单元235执行异或运算处理以恢复储存区块11的数据,其后,储存区块Pd所要更新的奇偶校验数据,即可根据储存区块11被恢复的数据、储存区块9所要写入的数据及储存区块10及12所读出的数据,由异或运算单元235执行异或运算处理所产生。数据写入方法对于硬盘机E的操作程序,包含由硬盘存取控制器265控制硬盘机E将奇偶校验数据写入储存区块Pi1、将数据写入储存区块4及8、及读出储存区块12的数据,其中储存区块Pi1所要写入的奇偶校验数据,是根据储存区块0所要写入的数据(虽然并不执行储存区块0的数据写入程序)及储存区块-3、-2及-1所读出的数据,由异或运算单元235执行异或运算处理所产生。
[0092] 请参考图9,图9是显示具有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第二范例示意图。具有失效硬盘机的数据写入方法,以图9的五硬盘机A、B、C、D及E为例,其中硬盘机C为一失效硬盘机,所要写入的储存区域仍为以粗线包围所涵盖的区域。
[0093] 因硬盘机C为一失效硬盘机,所以数据写入方法的操作程序中,并没有对硬盘机C执行任何写入或读取的操作,也就是说,原本要执行对硬盘机C的写入操作均略过,原本要执行对硬盘机C的读取操作以取得的数据,则要由异或运算单元235对其余硬盘机的相对应数据执行异或运算处理以产生。
[0094] 所以,对于在上边界的奇偶校验储存区块Pi1而言,所要写入的奇偶校验数据,是根据储存区块-1、-2及-3所读出的数据,配合硬盘机D的储存区块0要写入的数据,执行异或运算处理而产生,但储存区块-1为失效储存区块,所以要恢复储存区块-1的数据,即先要读出储存区块-2及-3的数据,及读出储存区块0及Pi1的旧数据及旧奇偶校验数据,由异或运算单元235执行异或运算处理以恢复储存区块-1的数据,接着,才能计算产生储存区块Pi1所要写入的奇偶校验数据。对于在下边界的奇偶校验储存区块Pd而言,因其为失效储存区块,所以不需额外处理。
[0095] 根据上述方法,写入数据流及写入指令的前级处理类似于图6的第一范例说明,不再赘述,而直接说明如何控制各硬盘机在数据写入方法中的操作程序。数据写入方法对于硬盘机A的操作程序,包含由硬盘存取控制器261控制硬盘机A读出储存区块-3的数据、将奇偶校验数据写入储存区块Pi2、及将数据写入储存区块5及9,其中储存区块Pi2所要写入的奇偶校验数据,是根据储存区块1、2、3及4所要写入的数据,由异或运算单元235执行异或运算处理所产生。数据写入方法对于硬盘机B的操作程序,包含由硬盘存取控制器262控制硬盘机B读出储存区块-2的数据、将数据写入储存区块1、及将奇偶校验数据写入储存区块Pi3,其中储存区块Pi3所要写入的奇偶校验数据,系根据储存区块5、6、7及8所要写入的数据,由异或运算单元235执行异或运算处理所产生。
[0096] 数据写入方法对于硬盘机D的操作程序,包含由硬盘存取控制器264控制硬盘机D读出储存区块0的旧数据、及将数据写入储存区块0、3及7。数据写入方法对于硬盘机E的操作程序,包含由硬盘存取控制器265控制硬盘机E读出储存区块Pi1的旧奇偶校验数据、将奇偶校验数据写入储存区块Pi1、及将数据写入储存区块4及8,其中储存区块Pi1所要写入的奇偶校验数据,是根据储存区块0所要写入的数据、储存区块-3及-2所读出的数据、及储存区块-1被恢复的数据,由异或运算单元235执行异或运算处理所产生。
[0097] 请参考图10,图10是显示具有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第三范例示意图。具有失效硬盘机的数据写入方法,以图10的五硬盘机A、B、C、D及E为例,其中硬盘机C是为一失效硬盘机,所要写入的储存区域仍为以粗线包围所涵盖的区域。
[0098] 同理,因硬盘机C为一失效硬盘机,所以数据写入方法的操作程序中,并没有对硬盘机C执行任何写入或读取的操作,也就是说,原本要执行对硬盘机C的写入操作均略过,原本要执行对硬盘机C的读取操作以取得的数据,则要由异或运算单元235对其余硬盘机的相对应数据执行异或运算处理以产生。
[0099] 所以,对于在上边界的奇偶校验储存区块Pu而言,所要更新的奇偶校验数据,是根据储存区块-1、-2及-3所读出的数据,配合硬盘机E的储存区块0要写入的数据,由异或运算单元235执行异或运算处理而产生,但储存区块-2为失效储存区块,所以要恢复储存区块-2的数据,即先要读出储存区块-1及-3的数据,及读出储存区块0及Pu的旧数据及旧奇偶校验数据,由异或运算单元235执行异或运算处理以恢复储存区块-2的数据,接着,才能计算产生储存区块Pu所要更新的奇偶校验数据。对于在下边界的奇偶校验储存区块Pd而言,所要更新的奇偶校验数据,系根据储存区块6、7及8所读出的数据,配合硬盘机A的储存区块5所要写入的数据,由异或运算单元235执行异或运算处理而产生,但储存区块7为失效储存区块,所以要恢复储存区块7的数据,即先要读出储存区块6及8的数据,及读出储存区块5及Pd的旧数据及旧奇偶校验数据,由异或运算单元235执行异或运算处理以恢复储存区块7的数据,接着,才能计算产生储存区块Pd所要更新的奇偶校验数据。
[0100] 根据上述方法,写入数据流及写入指令的前级处理类似于图6的第一范例说明,不再赘述,而直接说明如何控制各硬盘机在数据写入方法中的操作程序。数据写入方法对于硬盘机A的操作程序,包含由硬盘存取控制器261控制硬盘机A读出储存区块-3的数据、将数据写入储存区块1、读出储存区块5的旧数据、及将数据写入储存区块5。数据写入方法对于硬盘机B的操作程序,包含由硬盘存取控制器262控制硬盘机B读出储存区块Pu的旧奇偶校验数据、将新奇偶校验数据写入储存区块Pu、将数据写入储存区块2、及读出储存区块6的数据,其中储存区块Pu的新奇偶校验数据是根据储存区块-3及-1所读出的数据、储存区块-2被恢复的数据、及储存区块0所要写入的数据,由异或运算单元235执行异或运算处理所产生。
[0101] 数据写入方法对于硬盘机D的操作程序,包含由硬盘存取控制器264控制硬盘机D读出储存区块-1的数据、将数据写入储存区块3、读出储存区块Pd的旧奇偶校验数据、及将新奇偶校验数据写入储存区块Pd,其中储存区块Pd的新奇偶校验数据系根据储存区块6及8所读出的数据、储存区块7被恢复的数据、及储存区块5所要写入的数据,由异或运算单元235执行异或运算处理所产生。数据写入方法对于硬盘机E的操作程序,包含由硬盘存取控制器265控制硬盘机E读出储存区块0的旧数据、将数据写入储存区块0、将数据写入储存区块4、及读出储存区块8的数据。
[0102] 请参考图11,图11是配合图2的磁盘阵列5控制器,并根据图3至图5的读取操作方法,以显示依本发明的磁盘阵列5读取方法1100的流程图。磁盘阵列5读取方法1100的流程包含下列步骤:
[0103] 步骤S1110:控制器220接收来自主机201的一读取指令,并传送读取指令至指令解码器225;
[0104] 步骤S1115:指令解码器225根据标志暂存器状态解码读取指令以产生相对应的读取程序控制指令;
[0105] 步骤S1120:根据标志暂存器状态判断是否有失效硬盘机,若是,则执行步骤S1125,否则执行步骤S1150;
[0106] 步骤S1125:相对应于所有正常硬盘机的硬盘存取控制器,执行相对应数据的读取操作,用以产生多条读出数据分流;
[0107] 步骤S1130:将该些读出数据分流并列传输至异或运算单元235;
[0108] 步骤S1135:异或运算单元235根据该些读出数据分流,执行异或运算处理,以恢复相对应于失效硬盘机的非奇偶校验数据分流;
[0109] 步骤S1140:将该些读出数据分流及被恢复的非奇偶校验数据分流并列传输至数据配置及组合单元230;
[0110] 步骤S1145:数据配置及组合单元230弃除该些读出数据分流的奇偶校验数据,并配合被恢复的非奇偶校验数据分流,以储存区块为处理单位而依序组合非奇偶校验数据以产生一读出数据流,执行步骤S1165;
[0111] 步骤S1150:硬盘存取控制器261…265分别对硬盘机A281…E285执行相对应数据的读取操作,用以产生多条读出数据分流;
[0112] 步骤S1155:将该些读出数据分流并列传输至数据配置及组合单元230;
[0113] 步骤S1160:数据配置及组合单元230从并列输入的该些读出数据分流中,弃除奇偶校验数据后,以储存区块为处理单位而依序组合非奇偶校验数据以产生一读出数据流;
[0114] 步骤S1165:控制器220将读出数据流传送至主机201;以及
[0115] 步骤S1170:完成读取操作。
[0116] 在上述磁盘阵列5读取方法1100的流程中,步骤S1125所述的相对应于所有正常硬盘机的硬盘存取控制器,执行相对应数据的读取操作,是为以磁区为基本读取单位,相对应于所有正常硬盘机的硬盘存取控制器,执行相对应数据的读取操作。此外,步骤S1125所述的执行相对应数据的读取操作,为当失效硬盘机的非奇偶校验储存区块,包含有在所要读出的储存区域的上边界储存区块时,则不包含于所要读出的储存区域的上边界储存区块的数据也要读取,或当失效硬盘机的非奇偶校验储存区块,包含有在所要读出的储存区域的下边界储存区块时,则不包含于所要读出的储存区域的下边界储存区块的数据也要读取。步骤S1150所述的硬盘存取控制器261…265分别对硬盘机A281…E285执行相对应数据的读取操作,为硬盘存取控制器261…265以磁区为基本读取单位,分别对硬盘机A281…E285执行相对应数据的读取操作
[0117] 请参考图12,图12是配合图2的磁盘阵列5控制器,并根据图6至图10的写入操作方法,以显示依本发明的磁盘阵列5写入方法1200的流程图。磁盘阵列5写入方法1200的流程包含下列步骤:
[0118] 步骤S1210:控制器220接收来自主机201的一写入指令及一写入数据流,并传送写入指令至指令解码器225,及传送写入数据流至数据配置及组合单元230;
[0119] 步骤S1215:指令解码器225根据标志暂存器状态解码写入指令以产生相对应的写入程序控制指令;
[0120] 步骤S1220:数据配置及组合单元230将写入数据流以储存区块为处理单位而分散配置为多条写入数据分流,再并行传输至异或运算单元235;
[0121] 步骤S1225:根据标志暂存器状态判断是否有失效硬盘机,若是,则执行步骤S1230,否则执行步骤S1270;
[0122] 步骤S1230:在所要写入的储存区域的相对应的上下边界储存区块,是否包含有不在所要写入的储存区域内的非奇偶校验储存区块,若是,则执行步骤S1235,否则执行步骤S1255;
[0123] 步骤S1235:位于上下边界且不在所要写入的储存区域内的非奇偶校验储存区块是否属于失效硬盘机,若是,则执行步骤S1240,否则执行步骤S1245;
[0124] 步骤S1240:异或运算单元235根据相关储存区块的读出数据,执行异或运算处理,以恢复失效硬盘机的非奇偶校验储存区块的数据,执行步骤S1255;
[0125] 步骤S1245:位于上下边界的奇偶校验储存区块是否属于失效硬盘机,若是,则执行步骤S1255,否则执行步骤S1250;
[0126] 步骤S1250:在上下边界中,于奇偶校验储存区块不属于失效硬盘机的一边界,读取位于该边界且不在所要写入的储存区域内的非奇偶校验储存区块的数据,执行步骤S1255;
[0127] 步骤S1255:执行异或运算处理以产生奇偶校验数据,并将奇偶校验数据插入相对应的写入数据分流;
[0128] 步骤S1260:将该些写入数据分流并列传输至正常硬盘机相对应的硬盘存取控制器;
[0129] 步骤S1265:将包含奇偶校验数据的该些写入数据分流分别写入相对应的正常硬盘机,执行步骤S1295;
[0130] 步骤S1270:在所要写入的储存区域的相对应的上下边界储存区块,是否包含不在所要写入的储存区域内的非奇偶校验储存区块,若是,则执行步骤S1275,否则执行步骤S1280;
[0131] 步骤S1275:读取位于上下边界且不在所要写入的储存区域内的非奇偶校验储存区块的数据,执行步骤S1280;
[0132] 步骤S1280:执行异或运算处理以产生奇偶校验数据,并将奇偶校验数据插入相对应的写入数据分流;
[0133] 步骤S1285:将包含奇偶校验数据的该些写入数据分流并列传输至相对应的硬盘存取控制器;
[0134] 步骤S1290:将包含奇偶校验数据的该些写入数据分流分别写入相对应的硬盘机;以及
[0135] 步骤S1295:完成写入操作。
[0136] 在上述磁盘阵列5写入方法1200的流程中,步骤S1255所述的执行异或运算处理以产生奇偶校验数据,并将奇偶校验数据插入相对应的写入数据分流,包含当位于上下边界的奇偶校验储存区块均属于失效硬盘机时,略过上下边界的奇偶校验储存区块的奇偶校验数据产生处理,而直接将该些写入数据分流的相对应于上下边界储存区块的数据并列传输至多个正常硬盘机相对应的多个硬盘存取控制器。步骤S1265所述的将包含奇偶校验数据的该些写入数据分流分别写入相对应的正常硬盘机,是以磁区为基本写入单位,将包含奇偶校验数据的该些写入数据分流分别写入相对应的正常硬盘机。步骤S1290所述的将包含奇偶校验数据的该些写入数据分流分别写入相对应的硬盘机,是以磁区为基本写入单位,将包含奇偶校验数据的该些写入数据分流分别写入相对应的硬盘机。
[0137] 请注意,在上述对本发明的基于储存装置最小存取区块的分流与聚流运作的磁盘阵列5控制器及存取方法的实施方式说明中,虽然使用硬盘机作为磁盘阵列5的储存装置实施例,但本发明的应用并不限于使用硬盘机的磁盘阵列5,也适用于使用其他类型的储存装置,譬如固态记忆装置(SSD,Solid State Drive)或基于倍数据传输率随机存取存储器(Double Data Rate Random Access Memory)的储存装置(i-RAM),而硬盘存取控制器可替换为其他类型储存装置存取控制器,储存装置存取控制器耦合于储存装置的接口则可为一串行式ATA接口、一通用串行总线接口、一SAS接口、一IEEE-1394接口、或一eSATA接口。
[0138] 由上述可知,依本发明的磁盘阵列5控制器及存取方法,其基本精神为使用储存装置的最小存取单位为磁盘阵列5的数据及奇偶校验的储存及运算区块,再利用一数据流及多条数据分流之间的分散配置及组合处理方法,加速磁盘阵列5的数据存取速度,尤其是在执行异或运算处理以产生奇偶校验数据或恢复数据的过程中,是以并行串列模式进行,所以,不论是从一写入数据流至多条写入数据分流的数据写入过程,或是从多条读出数据分流至一读出数据流的数据读出过程,皆能借由并行数据传输处理过程而提供快速数据存取。
[0139] 本发明是使用储存装置的最小存取单位为运算区块大小,相较于一般以多个储存区块作为运算区块大小的磁盘阵列5可以省掉复杂的判断与运算行为,假设多储存区块运算的磁盘阵列5是以16个磁区为运算区块大小,在读取或写入上下边界的数据时,当其边界起始或结束地址不整除16,那控制器在读取或写入不整除的运算区块时,就要判断出在该运算区块中哪些部分是要读取及哪些部分要写入,来分别进行不同的后续奇偶校验运算动作,因而增加了运算复杂度,这些部分判断与运算是本发明的磁盘阵列5控制器及存取方法所不需要的,如此一来,本发明就可透过简化的判断与运算以达到高存取效率。
[0140] 虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。