具体实施方式
为让本发明的目的、特征和优点更显而易懂,下文依本发明的磁盘阵列5控制器及存取方法,特举实施例配合所附图式作详细说明,但所提供的实施例并不用以限制本发明所涵盖的技术范围,而方法流程步骤编号更非用以限制其执行先后次序,任何由方法步骤重新组合的执行流程,所产生具有均等功效的方法,均为本发明所涵盖的技术范围。
请参考图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。
如图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接口,耦合于相对应的硬盘机。
控制器220可将从主机201送来的存取指令传送至指令解码器225,并执行主机201与数据配置及组合单元230之间的双向数据传送。标志暂存器单元205包含多个标志暂存器F1…Fn,标志暂存器是用以显示各种系统状态,举例而言,标志暂存器F1可用以显示硬盘机A281的状态,当标志暂存器F1为逻辑0时,可表示硬盘机A281在正常状态,当标志暂存器F1为逻辑1时,可表示硬盘机A281在失效状态,其余同理类推。
指令解码器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的存取操作处理。另外,在数据的处理过程中,不管是分流(分散配置)、聚流(组合)、或执行异或运算等,皆使用“储存区块”为运作单位。
磁盘阵列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。
在上述有关磁盘阵列5控制器210的概略读取工作原理中,从硬盘机数据读取到数据组合,是并行串列处理,再直接汇合的程序。所以相较于传统技术,依本发明的磁盘阵列5控制器210可提供更高效率的数据读取方法。
至于磁盘阵列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。
在上述有关磁盘阵列5控制器210的概略写入工作原理中,从主机201输入的写入数据流的分散配置到写入硬盘机,仍为并行串列处理。所以相较于传统技术,依本发明的磁盘阵列5控制器210也可提供更高效率的数据写入方法。
此外,磁盘阵列5控制器210在不同硬盘机状态及不同储存区域的数据存取细节操作原理,则分别配合图3至图10,举例说明如下。请参考图3,图3系显示没有失效硬盘机的五硬盘机的对应于读取操作的储存区块阵列示意图。没有失效硬盘机的数据读取方法,以图3的五硬盘机A、B、C、D及E为例,所要读取的储存区域是以粗线包围所涵盖的区域,标示为Pi1至Pi8的储存区块是奇偶校验储存区块,储存区块所标示的数字表示相对应于所要读取的数据顺序,也就是说,数据是以储存区块0、储存区块1至储存区块28的顺序而循序输出,至于不在所要读取的储存区域的储存区块,则根据其在所要读取的储存区域之后或之前,而编以后续数字,或负数数字。
所以,读出数据是从硬盘机C的储存区块0开始,循序至硬盘机D的储存区块28结束。因没有失效硬盘机,所以读取操作并不需要奇偶校验储存区块的数据,因此位于上下边界的奇偶校验储存区块Pi1及Pi8可直接省略不读,但对于非上下边界的奇偶校验储存区块Pi2至Pi7,基于个别硬盘机循序读取方式及效率因素仍然读出,只是其后会被数据配置及组合单元230弃除。
根据上述方法,当指令解码器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的数据读取,用以提高读取效率。
其后,传输控制器241…245将数据暂存器251…255所储存的该些读出数据分流的数据依序传送至异或运算单元235,由于没有失效硬盘机,所以不需要执行异或运算处理以恢复数据,因此,异或运算单元235直接将并行传入的该些读出数据分流,直接并行传送至数据配置及组合单元230。数据配置及组合单元230从并行传入的该些读出数据分流中,弃除奇偶校验数据后,以储存区块为处理单位而依序组合所要的读出数据以产生一读出数据流,经由控制器220传送至主机201。
请参考图4,图4是显示具有失效硬盘机的五硬盘机的对应于读取操作的储存区块阵列的第一范例示意图。有失效硬盘机的数据读取方法,以图4的五硬盘机A、B、C、D及E为例,其中硬盘机C为一失效硬盘机,所要读取的储存区域仍为以粗线包围所涵盖的区域。要读出的数据原本应以储存区块0、储存区块1至储存区块13的顺序而循序输出,换句话说,要读出的数据原本应从硬盘机C的储存区块0开始,循序至硬盘机C的储存区块13结束。但由于硬盘机C为失效硬盘机,所以要从硬盘机C读出的数据,就要根据其余4硬盘机的数据的异或运算处理而取得。
因此要取得储存区块0的数据时,就要读取储存区块-1、Pu、1及2的数据,经由异或运算处理而取得原储存区块0的数据,换句话说,储存区块-1及Pu虽然不在所要读取的储存区域中,但仍要读取其储存的数据。同理,要取得储存区块13的数据时,就要读取储存区块11、12、14及Pd的数据,经由异或运算处理而取得原储存区块13的数据,换句话说,储存区块14及Pd虽然不在所要读取的储存区域中,但仍要读取其储存的数据。
根据上述方法,当指令解码器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的数据。
其后,传输控制器241、242、244及245将数据暂存器251、252、254及255所储存的该些读出数据分流的数据依序传送至异或运算单元235。根据标志暂存器状态所提供的硬盘机C失效信息以及根据读取程序控制指令,异或运算单元235执行异或运算处理以恢复硬盘机C的储存区块0、9及13的数据,即恢复一读出数据分流,至于储存区块Pi1则可根据标志暂存器状态知其为奇偶校验储存区块,所以并不需要执行异或运算处理恢复其奇偶校验数据,接着,异或运算单元235将并行传入的4条读出数据分流及被恢复的读出数据分流,并行传送至数据配置及组合单元230。数据配置及组合单元230从并行传入的5条读出数据分流中,弃除奇偶校验数据后,以储存区块为处理单位而依序组合所要的读出数据以产生一读出数据流,经由控制器220传送至主机201。
请参考图5,图5是显示具有失效硬盘机的五硬盘机的对应于读取操作的储存区块阵列的第二范例示意图。有失效硬盘机的数据读取方法,以图5的五硬盘机A、B、C、D及E为例,其中硬盘机D为一失效硬盘机,所要读取的储存区域仍为以粗线包围所涵盖的区域。要读出的数据原本应以储存区块0、储存区块1至储存区块11的顺序而循序输出,换句话说,要读出的数据原本应从硬盘机C的储存区块0开始,循序至硬盘机C的储存区块11结束。但由于硬盘机D为失效硬盘机,所以要从硬盘机D读出的数据,就要根据其余4硬盘机的数据的异或运算处理而取得。
因硬盘机D的上边界储存区块Pi1是为一奇偶校验储存区块,故可略过其数据恢复所需的异或运算处理,所以储存区块-1及-2并不需因硬盘机D的失效而读取。至于硬盘机D的下边界储存区块12,并不在所要读取的储存区域内,所以不需执行异或运算处理以恢复其数据,因此储存区块13并不需因硬盘机D的失效而读取。此外,硬盘机B的奇偶校验储存区块Pi4因在下边界,且不需用以恢复失效储存区块12的数据,所以,也不需读取。
根据上述方法,当指令解码器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。
其后,传输控制器241、242、243及245将数据暂存器251、252、253及255所储存的该些读出数据分流的数据依序传送至异或运算单元235。根据标志暂存器状态所提供的硬盘机D失效信息,异或运算单元235执行异或运算处理以恢复硬盘机D的储存区块5及8的数据,即恢复一读出数据分流,至于储存区块Pi1则可根据标志暂存器状态知其为奇偶校验储存区块,所以并不需要执行异或运算处理恢复其奇偶校验数据,接着,异或运算单元235将并行传入的4条读出数据分流及被恢复的读出数据分流,并行传送至数据配置及组合单元230。数据配置及组合单元230从并行传入的5条读出数据分流中,弃除奇偶校验数据后,以储存区块为处理单位而依序组合所要的读出数据以产生一读出数据流,经由控制器220传送至主机201。
请参考图6,图6是显示没有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第一范例示意图。没有失效硬盘机的数据写入方法,以图6的五硬盘机A、B、C、D及E为例,所要写入的储存区域为以粗线包围所涵盖的区域,储存区块所标示的数字表示相对应于所要写入的数据顺序,也就是说,数据系以储存区块0、储存区块Pi1至储存区块9的顺序而循序写入,至于不在所要写入的储存区域的储存区块,则根据其在所要写入的储存区域之后或之前,而编以后续数字,或负数数字。
所以,写入数据系从硬盘机D的储存区块0开始,循序至硬盘机A的储存区块9结束。因没有硬盘机失效,所以,在所要写入的储存区域内,所有储存区块均要写入数据。此外,不在所要写入的储存区域内,但位于上下边界的非奇偶校验储存区块的数据均要被读取,用以执行异或运算处理产生位于上下边界的奇偶校验储存区块的奇偶校验数据。而不论是否在所要写入的储存区域内,位于上下边界的奇偶校验储存区块的奇偶校验数据均要被更新或写入。
储存区块0的数据可以直接写入,在上边界的奇偶校验储存区块Pi1的奇偶校验数据,则要根据储存区块0、-1、-2及-3的数据的异或运算处理产生,也就是说,先要读出不在所要写入的储存区域内的储存区块-1、-2及-3的数据,再配合储存区块0所要写入的数据,异或运算单元235才能算出奇偶校验储存区块Pi1的奇偶校验数据。在下边界的奇偶校验储存区块Pd,并不在所要写入的储存区域内,但奇偶校验储存区块Pd的奇偶校验数据因储存区块9的数据写入,所以要更新,因此储存区块10、11及12的数据均要被读出,配合储存区块9所要写入的数据,异或运算单元235才可执行异或运算处理以更新储存区块Pd的奇偶校验数据。
根据上述方法,当指令解码器225接收到控制器220传来的主机201的写入指令,并根据标志暂存器状态解码出相对应的写入程序控制指令后,数据配置及组合单元230根据写入程序控制指令,将主机201借由控制器220而传来的写入数据流,执行分散配置处理,即将写入数据流以储存区块为处理单位而分散配置为并行传输的5条写入数据分流,传送至异或运算单元235,异或运算单元235根据并行输入的5条写入数据分流,配合来自硬盘机的读取数据,执行异或运算处理产生所要写入或更新的奇偶校验数据,至于是否需要配合来自硬盘机的读取数据以产生奇偶校验数据,系由硬盘存取控制器261…265与传输控制器241…245根据写入程序控制指令以及标志暂存器的状态,而控制可能的数据读取操作,在下述各硬盘机的数据写入方法的操作程序中,即提供可能的数据读取操作状况。
数据写入方法对于硬盘机A的操作程序,包含由硬盘存取控制器261控制硬盘机A读出储存区块-3所储存的数据、将奇偶校验数据写入储存区块Pi2、及将数据写入储存区块5及9,其中储存区块Pi2所要写入的奇偶校验数据,是由异或运算单元235根据储存区块1、2、3及4所要写入的数据,执行异或运算处理所产生。
数据写入方法对于硬盘机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执行异或运算处理所产生。
数据写入方法对于硬盘机D的操作程序,包含由硬盘存取控制器264控制硬盘机D将数据写入储存区块0、3及7、及读出储存区块11的数据。数据写入方法对于硬盘机E的操作程序,包含由硬盘存取控制器265控制硬盘机E将奇偶校验数据写入储存区块Pi1、将数据写入储存区块4及8、及读出储存区块12的数据,其中储存区块Pi1所要写入的奇偶校验数据,系根据储存区块0所要写入的数据及储存区块-3、-2及-1所读出的数据,由异或运算单元235执行异或运算处理所产生。
请参考图7,图7是显示没有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第二范例示意图。没有失效硬盘机的数据写入方法,以图7的五硬盘机A、B、C、D及E为例,所要写入的储存区域仍为以粗线包围所涵盖的区域。
在上边界的奇偶校验储存区块Pi1的奇偶校验数据,系要根据储存区块0所要写入的数据,配合储存区块-1、-2及-3所读出的数据,借由异或运算单元235执行异或运算处理而产生。在下边界的奇偶校验储存区块Pi2的奇偶校验数据,系要根据储存区块1所要写入的数据,配合储存区块2、3及4所读出的数据,借由异或运算单元235执行异或运算处理而产生。
根据上述方法,写入数据流及写入指令的前级处理类似于图6的第一范例说明,不再赘述,而直接说明如何控制各硬盘机在数据写入方法中的操作程序。数据写入方法对于硬盘机A的操作程序,包含由硬盘存取控制器261控制硬盘机A读出储存区块-3的数据、及将数据写入储存区块Pi2,其中储存区块Pi2所要写入的奇偶校验数据,系根据储存区块1所要写入的数据及储存区块2、3及4所读出的数据,由异或运算单元235执行异或运算处理所产生。数据写入方法对于硬盘机B的操作程序,包含由硬盘存取控制器262控制硬盘机B读出储存区块-2的数据、及将数据写入储存区块1。
数据写入方法对于硬盘机C的操作程序,包含由硬盘存取控制器263控制硬盘机C读出储存区块-1及2的数据。数据写入方法对于硬盘机D的操作程序,包含由硬盘存取控制器264控制硬盘机D将数据写入储存区块0、及读出储存区块3的数据。数据写入方法对于硬盘机E的操作程序,包含由硬盘存取控制器265控制硬盘机E将数据写入储存区块Pi1、及读出储存区块4的数据,其中储存区块Pi1所要写入的奇偶校验数据,系根据储存区块0所要写入的数据及储存区块-1、-2及-3所读出的数据,由异或运算单元235执行异或运算处理所产生。
在另一种没有失效硬盘机的写入操作中,若所要写入的储存区域的相对应的上边界及下边界储存区块,均包含于所要写入的储存区域内时,则不需要执行任何额外的读取操作,而可直接根据5条写入数据分流的数据,执行异或运算处理以产生奇偶校验数据,再将奇偶校验数据以储存区块为处理单位而插入相对应的写入数据分流后,就可将5条写入数据分流并行写入五硬盘机A、B、C、D及E。
请参考图8,图8是显示具有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第一范例示意图。具有失效硬盘机的数据写入方法,以图8的五硬盘机A、B、C、D及E为例,其中硬盘机D是为一失效硬盘机,所要写入的储存区域仍为以粗线包围所涵盖的区域。
因硬盘机D为一失效硬盘机,所以数据写入方法的操作程序中,并没有对硬盘机D执行任何写入或读取的操作,也就是说,原本要执行对硬盘机D的写入操作均略过,原本要执行对硬盘机D的读取操作以取得的数据,则要由异或运算单元235对其余硬盘机的相对应数据执行异或运算处理以产生。
所以,对于在上边界的奇偶校验储存区块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的奇偶校验数据。
根据上述方法,写入数据流及写入指令的前级处理类似于图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执行异或运算处理所产生。
数据写入方法对于硬盘机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执行异或运算处理所产生。
请参考图9,图9是显示具有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第二范例示意图。具有失效硬盘机的数据写入方法,以图9的五硬盘机A、B、C、D及E为例,其中硬盘机C为一失效硬盘机,所要写入的储存区域仍为以粗线包围所涵盖的区域。
因硬盘机C为一失效硬盘机,所以数据写入方法的操作程序中,并没有对硬盘机C执行任何写入或读取的操作,也就是说,原本要执行对硬盘机C的写入操作均略过,原本要执行对硬盘机C的读取操作以取得的数据,则要由异或运算单元235对其余硬盘机的相对应数据执行异或运算处理以产生。
所以,对于在上边界的奇偶校验储存区块Pi1而言,所要写入的奇偶校验数据,是根据储存区块-1、-2及-3所读出的数据,配合硬盘机D的储存区块0要写入的数据,执行异或运算处理而产生,但储存区块-1为失效储存区块,所以要恢复储存区块-1的数据,即先要读出储存区块-2及-3的数据,及读出储存区块0及Pi1的旧数据及旧奇偶校验数据,由异或运算单元235执行异或运算处理以恢复储存区块-1的数据,接着,才能计算产生储存区块Pi1所要写入的奇偶校验数据。对于在下边界的奇偶校验储存区块Pd而言,因其为失效储存区块,所以不需额外处理。
根据上述方法,写入数据流及写入指令的前级处理类似于图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执行异或运算处理所产生。
数据写入方法对于硬盘机D的操作程序,包含由硬盘存取控制器264控制硬盘机D读出储存区块0的旧数据、及将数据写入储存区块0、3及7。数据写入方法对于硬盘机E的操作程序,包含由硬盘存取控制器265控制硬盘机E读出储存区块Pi1的旧奇偶校验数据、将奇偶校验数据写入储存区块Pi1、及将数据写入储存区块4及8,其中储存区块Pi1所要写入的奇偶校验数据,是根据储存区块0所要写入的数据、储存区块-3及-2所读出的数据、及储存区块-1被恢复的数据,由异或运算单元235执行异或运算处理所产生。
请参考图10,图10是显示具有失效硬盘机的五硬盘机的对应于写入操作的储存区块阵列的第三范例示意图。具有失效硬盘机的数据写入方法,以图10的五硬盘机A、B、C、D及E为例,其中硬盘机C是为一失效硬盘机,所要写入的储存区域仍为以粗线包围所涵盖的区域。
同理,因硬盘机C为一失效硬盘机,所以数据写入方法的操作程序中,并没有对硬盘机C执行任何写入或读取的操作,也就是说,原本要执行对硬盘机C的写入操作均略过,原本要执行对硬盘机C的读取操作以取得的数据,则要由异或运算单元235对其余硬盘机的相对应数据执行异或运算处理以产生。
所以,对于在上边界的奇偶校验储存区块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所要更新的奇偶校验数据。
根据上述方法,写入数据流及写入指令的前级处理类似于图6的第一范例说明,不再赘述,而直接说明如何控制各硬盘机在数据写入方法中的操作程序。数据写入方法对于硬盘机A的操作程序,包含由硬盘存取控制器261控制硬盘机A读出储存区块-3的数据、将数据写入储存区块1、读出储存区块5的旧数据、及将数据写入储存区块5。数据写入方法对于硬盘机B的操作程序,包含由硬盘存取控制器262控制硬盘机B读出储存区块Pu的旧奇偶校验数据、将新奇偶校验数据写入储存区块Pu、将数据写入储存区块2、及读出储存区块6的数据,其中储存区块Pu的新奇偶校验数据是根据储存区块-3及-1所读出的数据、储存区块-2被恢复的数据、及储存区块0所要写入的数据,由异或运算单元235执行异或运算处理所产生。
数据写入方法对于硬盘机D的操作程序,包含由硬盘存取控制器264控制硬盘机D读出储存区块-1的数据、将数据写入储存区块3、读出储存区块Pd的旧奇偶校验数据、及将新奇偶校验数据写入储存区块Pd,其中储存区块Pd的新奇偶校验数据系根据储存区块6及8所读出的数据、储存区块7被恢复的数据、及储存区块5所要写入的数据,由异或运算单元235执行异或运算处理所产生。数据写入方法对于硬盘机E的操作程序,包含由硬盘存取控制器265控制硬盘机E读出储存区块0的旧数据、将数据写入储存区块0、将数据写入储存区块4、及读出储存区块8的数据。
请参考图11,图11是配合图2的磁盘阵列5控制器,并根据图3至图5的读取操作方法,以显示依本发明的磁盘阵列5读取方法1100的流程图。磁盘阵列5读取方法1100的流程包含下列步骤:
步骤S1110:控制器220接收来自主机201的一读取指令,并传送读取指令至指令解码器225;
步骤S1115:指令解码器225根据标志暂存器状态解码读取指令以产生相对应的读取程序控制指令;
步骤S1120:根据标志暂存器状态判断是否有失效硬盘机,若是,则执行步骤S1125,否则执行步骤S1150;
步骤S1125:相对应于所有正常硬盘机的硬盘存取控制器,执行相对应数据的读取操作,用以产生多条读出数据分流;
步骤S1130:将该些读出数据分流并列传输至异或运算单元235;
步骤S1135:异或运算单元235根据该些读出数据分流,执行异或运算处理,以恢复相对应于失效硬盘机的非奇偶校验数据分流;
步骤S1140:将该些读出数据分流及被恢复的非奇偶校验数据分流并列传输至数据配置及组合单元230;
步骤S1145:数据配置及组合单元230弃除该些读出数据分流的奇偶校验数据,并配合被恢复的非奇偶校验数据分流,以储存区块为处理单位而依序组合非奇偶校验数据以产生一读出数据流,执行步骤S1165;
步骤S1150:硬盘存取控制器261…265分别对硬盘机A281…E285执行相对应数据的读取操作,用以产生多条读出数据分流;
步骤S1155:将该些读出数据分流并列传输至数据配置及组合单元230;
步骤S1160:数据配置及组合单元230从并列输入的该些读出数据分流中,弃除奇偶校验数据后,以储存区块为处理单位而依序组合非奇偶校验数据以产生一读出数据流;
步骤S1165:控制器220将读出数据流传送至主机201;以及
步骤S1170:完成读取操作。
在上述磁盘阵列5读取方法1100的流程中,步骤S1125所述的相对应于所有正常硬盘机的硬盘存取控制器,执行相对应数据的读取操作,是为以磁区为基本读取单位,相对应于所有正常硬盘机的硬盘存取控制器,执行相对应数据的读取操作。此外,步骤S1125所述的执行相对应数据的读取操作,为当失效硬盘机的非奇偶校验储存区块,包含有在所要读出的储存区域的上边界储存区块时,则不包含于所要读出的储存区域的上边界储存区块的数据也要读取,或当失效硬盘机的非奇偶校验储存区块,包含有在所要读出的储存区域的下边界储存区块时,则不包含于所要读出的储存区域的下边界储存区块的数据也要读取。步骤S1150所述的硬盘存取控制器261…265分别对硬盘机A281…E285执行相对应数据的读取操作,为硬盘存取控制器261…265以磁区为基本读取单位,分别对硬盘机A281…E285执行相对应数据的读取操作
请参考图12,图12是配合图2的磁盘阵列5控制器,并根据图6至图10的写入操作方法,以显示依本发明的磁盘阵列5写入方法1200的流程图。磁盘阵列5写入方法1200的流程包含下列步骤:
步骤S1210:控制器220接收来自主机201的一写入指令及一写入数据流,并传送写入指令至指令解码器225,及传送写入数据流至数据配置及组合单元230;
步骤S1215:指令解码器225根据标志暂存器状态解码写入指令以产生相对应的写入程序控制指令;
步骤S1220:数据配置及组合单元230将写入数据流以储存区块为处理单位而分散配置为多条写入数据分流,再并行传输至异或运算单元235;
步骤S1225:根据标志暂存器状态判断是否有失效硬盘机,若是,则执行步骤S1230,否则执行步骤S1270;
步骤S1230:在所要写入的储存区域的相对应的上下边界储存区块,是否包含有不在所要写入的储存区域内的非奇偶校验储存区块,若是,则执行步骤S1235,否则执行步骤S1255;
步骤S1235:位于上下边界且不在所要写入的储存区域内的非奇偶校验储存区块是否属于失效硬盘机,若是,则执行步骤S1240,否则执行步骤S1245;
步骤S1240:异或运算单元235根据相关储存区块的读出数据,执行异或运算处理,以恢复失效硬盘机的非奇偶校验储存区块的数据,执行步骤S1255;
步骤S1245:位于上下边界的奇偶校验储存区块是否属于失效硬盘机,若是,则执行步骤S1255,否则执行步骤S1250;
步骤S1250:在上下边界中,于奇偶校验储存区块不属于失效硬盘机的一边界,读取位于该边界且不在所要写入的储存区域内的非奇偶校验储存区块的数据,执行步骤S1255;
步骤S1255:执行异或运算处理以产生奇偶校验数据,并将奇偶校验数据插入相对应的写入数据分流;
步骤S1260:将该些写入数据分流并列传输至正常硬盘机相对应的硬盘存取控制器;
步骤S1265:将包含奇偶校验数据的该些写入数据分流分别写入相对应的正常硬盘机,执行步骤S1295;
步骤S1270:在所要写入的储存区域的相对应的上下边界储存区块,是否包含不在所要写入的储存区域内的非奇偶校验储存区块,若是,则执行步骤S1275,否则执行步骤S1280;
步骤S1275:读取位于上下边界且不在所要写入的储存区域内的非奇偶校验储存区块的数据,执行步骤S1280;
步骤S1280:执行异或运算处理以产生奇偶校验数据,并将奇偶校验数据插入相对应的写入数据分流;
步骤S1285:将包含奇偶校验数据的该些写入数据分流并列传输至相对应的硬盘存取控制器;
步骤S1290:将包含奇偶校验数据的该些写入数据分流分别写入相对应的硬盘机;以及
步骤S1295:完成写入操作。
在上述磁盘阵列5写入方法1200的流程中,步骤S1255所述的执行异或运算处理以产生奇偶校验数据,并将奇偶校验数据插入相对应的写入数据分流,包含当位于上下边界的奇偶校验储存区块均属于失效硬盘机时,略过上下边界的奇偶校验储存区块的奇偶校验数据产生处理,而直接将该些写入数据分流的相对应于上下边界储存区块的数据并列传输至多个正常硬盘机相对应的多个硬盘存取控制器。步骤S1265所述的将包含奇偶校验数据的该些写入数据分流分别写入相对应的正常硬盘机,是以磁区为基本写入单位,将包含奇偶校验数据的该些写入数据分流分别写入相对应的正常硬盘机。步骤S1290所述的将包含奇偶校验数据的该些写入数据分流分别写入相对应的硬盘机,是以磁区为基本写入单位,将包含奇偶校验数据的该些写入数据分流分别写入相对应的硬盘机。
请注意,在上述对本发明的基于储存装置最小存取区块的分流与聚流运作的磁盘阵列5控制器及存取方法的实施方式说明中,虽然使用硬盘机作为磁盘阵列5的储存装置实施例,但本发明的应用并不限于使用硬盘机的磁盘阵列5,也适用于使用其他类型的储存装置,譬如固态记忆装置(SSD,Solid State Drive)或基于倍数据传输率随机存取存储器(Double Data Rate Random Access Memory)的储存装置(i-RAM),而硬盘存取控制器可替换为其他类型储存装置存取控制器,储存装置存取控制器耦合于储存装置的接口则可为一串行式ATA接口、一通用串行总线接口、一SAS接口、一IEEE-1394接口、或一eSATA接口。
由上述可知,依本发明的磁盘阵列5控制器及存取方法,其基本精神为使用储存装置的最小存取单位为磁盘阵列5的数据及奇偶校验的储存及运算区块,再利用一数据流及多条数据分流之间的分散配置及组合处理方法,加速磁盘阵列5的数据存取速度,尤其是在执行异或运算处理以产生奇偶校验数据或恢复数据的过程中,是以并行串列模式进行,所以,不论是从一写入数据流至多条写入数据分流的数据写入过程,或是从多条读出数据分流至一读出数据流的数据读出过程,皆能借由并行数据传输处理过程而提供快速数据存取。
本发明是使用储存装置的最小存取单位为运算区块大小,相较于一般以多个储存区块作为运算区块大小的磁盘阵列5可以省掉复杂的判断与运算行为,假设多储存区块运算的磁盘阵列5是以16个磁区为运算区块大小,在读取或写入上下边界的数据时,当其边界起始或结束地址不整除16,那控制器在读取或写入不整除的运算区块时,就要判断出在该运算区块中哪些部分是要读取及哪些部分要写入,来分别进行不同的后续奇偶校验运算动作,因而增加了运算复杂度,这些部分判断与运算是本发明的磁盘阵列5控制器及存取方法所不需要的,如此一来,本发明就可透过简化的判断与运算以达到高存取效率。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。