具磁盘阵列控制功能的核心逻辑单元及磁盘阵列控制方法

文档序号:6561656阅读:145来源:国知局
专利名称:具磁盘阵列控制功能的核心逻辑单元及磁盘阵列控制方法
技术领域
本发明涉及一种具磁盘阵列控制功能的核心逻辑单元以及磁盘阵列控制方法,特别涉及应用于个人计算机系统的具磁盘阵列控制功能的核心逻辑单元以及磁盘阵列控制方法。
背景技术
随着个人计算机使用者对于数据安全备份保护的要求日益增加,磁盘阵列(Redundant Array of Independent Disks,简称RAID)的应用便越来越普及。请参见图1,其是利用三个硬盘机101、102、103来组成具有平行同位检查(Parallel with Parity)功能的一磁盘阵列的方块示意图,其中,硬盘机101与硬盘机102可用以存储内容不同的数据,而硬盘机103则用以存储硬盘机101与硬盘机102中的数据进行互斥或运算而得到的同位值数据。举例来说,硬盘机101中一第一区块所存储的数据为D1,而硬盘机102中与硬盘机101中第一区块相同地址的一第二区块所存储的数据为D2,所以在硬盘机103中相同地址的一第三区块所存储的数据便为同位值数据P,而P=D1D2,代表互斥或运算。如此一来,当硬盘机101或硬盘机102中某一部硬盘机发生故障时,便可利用硬盘机103中的同位值数据P来进行数据重建。例如硬盘机102损坏,此时只需将D1与P分别从硬盘机101与硬盘机103读出,然后进行D1P的运算便可得回D2,以此类推,使用者只要将损坏的硬盘机102换新,便可利用硬盘机101与硬盘机103内的数据重新得回原有的数据。而为能达成此容错功能,系统在写入数据时则会花费较多时间与程序,例如使用者要把D1改写成D1’时,必须先将硬盘机102中的D2读出,进行D1’D2的运算而得到P’,然后再将D1’与P’写入硬盘机101与硬盘机103之中。
由于独立式的磁盘阵列系统的尺寸与价格并无法被一般使用者所接受,但为能使一般使用者也可得到磁盘阵列系统的好处,成本较低并可整合至机壳内的磁盘阵列卡便应运而生。请参见图2,其是一现有磁盘阵列卡应用于计算机系统中的功能方块示意图,其中,磁盘阵列卡20是信号连接至计算机系统2的核心逻辑芯片组21上并通过一驱动程序(图中未示出)来与计算机系统2的操作系统(图中未示出)进行沟通,以进行操作系统指派的数据读写动作,磁盘阵列卡20本身则具有存储器201以及运算单元202来达成数据缓冲与容错运算的功能,而总线控制器203则提供给三个不同的硬盘机27、28、29进行连接,用以将运算单元202处理过的数据写入硬盘机27、28、29中或是从硬盘机27、28、29中将数据读出,让使用者可用较低廉的价格来得到磁盘阵列的好处。
但是,由图2所示可知,磁盘阵列卡20本身需要有自己的存储器201来达成数据缓冲的功用,所以存储器201的尺寸直接影响数据存取的效率,但大尺寸存储器201的成本也直接使磁盘阵列卡的价格增加,因此为使价格可再下降,一种所谓软件磁盘阵列(software RAID)便被发展出来。其主要是将上述磁盘阵列卡20上的存储器201与运算单元202取消,只留下总线控制器203来给硬盘机连接,而改用软件来控制计算机系统原本就具有的系统存储器(图中未示出)与中央处理单元(图中未示出)来分别达成数据缓冲与容错运算的功能。如此一来,便可成功省下阵列卡上存储器201与运算单元202的成本,但是此种软件磁盘阵列的方法虽然可以节省成本,也相对会占用计算机系统本身的资源,使得系统存储器与中央处理单元必须兼顾上述任务而导致系统效能大幅下降,造成使用者的不便。

发明内容
有鉴于此,本发明提供一种具磁盘阵列控制功能的核心逻辑单元,应用于有一操作系统运行的一计算机系统,计算机系统包含有一中央处理单元、一系统存储器以及多个硬式磁盘机,而核心逻辑单元包含有一南桥模块以及一北桥模块,其中南桥模块包含有一硬盘控制器,其信号连接于硬式磁盘机,用以控制硬式磁盘机进行数据存取;至于北桥模块则包含有一地址判断单元,信号连接于中央处理单元,其是因应中央处理单元所发出至南桥模块的一命令中的地址信息属于一预设地址范围时转传命令;以及一容错数据运算单元,信号连接于地址判断单元、系统存储器,其是接收并因应地址判断单元所转传的命令的触发,进而对系统存储器中存放是相对应待运算数据进行一容错数据运算。
本发明另外再提供一种磁盘阵列控制方法,应用于其上运行有一操作系统的一计算机系统,计算机系统包含有一中央处理单元、一系统存储器、一南桥模块、一北桥模块以及多个硬式磁盘机,而磁盘阵列控制方法包含有下列步骤该中央处理单元发出一命令至该南桥模块;当该命令中的地址信息属于一预设地址范围时转传该命令至北桥模块;以及因应转传的命令的触发,北桥模块对系统存储器中存放的相对应待运算数据进行一容错数据运算。


图1是显示现有一磁盘阵列的的方块示意图。
图2是显示现有磁盘阵列卡应用于计算机系统中的功能方块示意图。
图3是显示本发明一具磁盘阵列控制功能的核心逻辑单元的较佳实施例功能方块示意图。
图4是本发明一较佳实施例中关于存储器配置的区块示意图。
图5是本发明一较佳实施例中进行数据写入时的步骤流程示意图。
图6是本发明一较佳实施例中进行数据读出时的步骤流程示意图。
附图符号说明硬盘机101、102、103磁盘阵列卡20 计算机系统2核心逻辑芯片组21 存储器201运算单元202 总线控制器203硬盘机27、28、29 操作系统38计算机系统3 中央处理单元30系统存储器31 核心逻辑单元32北桥模块320 南桥模块321进阶主机控制器接口3210 硬式磁盘机390、391、392总线控制器32100 第一寄存器组32101第二寄存器组3200 第一地址判断单元3201容错数据运算单元3202 存储器空间40系统存储器41 存储器空间区块401存储器空间区块400系统存储器区块411
系统存储器区块410存储器空间区块402存储器空间区块4020具体实施方式
请参见图3,其是本发明为改善现有手段的缺点所发展出来关于一具磁盘阵列控制功能的核心逻辑单元的较佳实施例功能方块示意图,其主要是应用于其上运行有一操作系统38的一计算机系统3,该计算机系统3包含有一中央处理单元30、一系统存储器31以及至少3个硬式磁盘机390、391以及392,而本发明所提出的核心逻辑单元32(例如可以是芯片组)则包含有一南桥模块321以及一北桥模块320,其中,该南桥模块321包含有一总线控制器32100,例如常见的整合电子驱动控制器(IDE Controller)。而总线控制器32100与一第一寄存器组32101可整合于一进阶主机控制器接口(Advanced Host Controller Interface,简称AHCI)3210所完成的硬盘控制器中,而第一寄存器组32101为一具有PCI元件地址的寄存器,其中填入用以在操作系统的存储器空间(例如是4G位组)中定义出一第一存储器区块的启始地址(例如是B0000000h)与尺寸(例如是4k位组)的数值。而该第一存储器区块主要是提供给该进阶主机控制器接口(AHCI)3210来使用。
至于北桥模块320则包含有一第二寄存器组3200、一第一地址判断单元3201以及一容错数据运算单元3202。其中第二寄存器组3200也为一具有PCI元件地址的寄存器,其中是填入用以在操作系统的存储器空间(例如是4G位组)中定义出一第二存储器区块的启始地址(例如是D0000000h)与尺寸(例如是64M位组)的数值。而该第二存储器区块可作为执行磁盘阵列控制功能(例如RAID3或RAID5等等)时所需的数据缓冲区。另外,信号连接于该中央处理单元30的第一地址判断单元3201,则可检测该中央处理单元30通过北桥模块320所发出至该南桥模块321的一命令中的地址信息,当该地址信息属于该容错数据运算单元3202的PCI元件地址时,第一地址判断单元3201便将该命令转传至该容错数据运算单元3202,而信号连接于该地址判断单元3201及该系统存储器31的该容错数据运算单元3202,其是接收并因应该地址判断单元3201所转传的该命令的触发,进而对该系统存储器31中该数据缓冲区(例如上述的第二存储器区块)内存放的相对应待运算数据进行一容错数据运算。
为能更清楚其中操作细节,请参见图4所示与相对应说明。图4是上述实施例中关于存储器配置的区块示意图,以本例来说,其中操作系统可管理到的存储器空间40,其地址是由0至4G位组,而系统上实际则具有512M位组的系统存储器41,而使用者藉由对第二寄存器组3200中数值的写入,用以决定出该数据缓冲区的启始地址(例如是上述例子的D0000000h)与尺寸(例如是上述例子的64M位组)的数值。如此一来,操作系统可管理到的存储器空间40,便有一块是属于数据缓冲区的第二存储器区块401,而专供中央处理单元使用的存储器空间则为448M位组(512M位组-64M位组=448M位组)的区块400,而系统存储器41中,则前448M位组的区块410对应至区块400,至于做为数据缓冲区的第二存储器区块401则对应至系统存储器41中的区块411,因此区块411将成为磁盘阵列专用的存储器区块。
另外,使用者藉由对第一寄存器组3200中数值的写入,用以在操作系统的存储器空间40中定义出可提供给该进阶主机控制器接口(AHCI)3210来使用的第一存储器区块402,而容错数据运算单元3202的PCI元件地址则是位于第一存储器区块402中的一小区块4020。
而根据上述的软硬件设计,本发明可执行如下述的磁盘阵列控制功能,为方便说明,本例是利用硬式磁盘机390、391以及392来组成具有平行同位检查(Parallel with Parity)功能的一磁盘阵列(例如RAID3或RAID5等等),其中,硬式磁盘机390、391可用以存储内容不同的数据,而硬式磁盘机392则用以存储硬式磁盘机390、391中的数据进行容错数据运算(最常见的是互斥或运算)而得到的同位值数据。另外,为方便说明,把硬式磁盘机390中一第一区块所存储的数据定义为D1,而硬式磁盘机391中与硬式磁盘机390中第一区块相同地址的一第二区块所存储的数据为D2,所以在硬式磁盘机392中相同地址的一第三区块所存储的数据便为同位值数据P,而P=D1D2,代表互斥或运算。
而当操作系统想要把第一区块所存储的的旧数据D1改写成新数据D1’时,在本发明技术手段便执行如图5所示的步骤流程示意图中的技术手段,首先,步骤S501中操作系统把新数据D1’写入系统存储器中的区块410内并对驱动程序发出命令,然后,在步骤S502中当磁盘阵列的驱动程序收到操作系统要把旧数据D1改写成新数据D1’的命令后,就在步骤S503中先把硬式磁盘机391中第二区块所存储的新数据D2读出并写入系统存储器中数据缓冲区专用的区块411之中,然后在步骤S504中驱动程序再准备一个互斥或运算命令,其记录有D1’与D2的地址、D1’D2的运算结果P’所欲存放的地址以及用以实际执行互斥或运算动作的容错数据运算单元3202的PCI元件地址,等上述互斥或运算命令准备好后,然后在步骤S505中,中央处理单元30通过北桥模块320发出互斥或运算命令至进阶主机控制器接口3210,但当互斥或运算命令经过地址判断单元3201时,经步骤S506的比对过程后,从比对结果可知道互斥或运算命令中含有容错数据运算单元3202的PCI元件地址(即小区块4020的地址范围),因此命令实际上不会如步骤S507中所述,送到南桥模块321,而是如步骤S508中所述,转传到位于北桥模块中实际以硬件完成的容错数据运算单元3202进行处理。于是信号连接于该地址判断单元3201及该系统存储器31的该容错数据运算单元3202,其接收并因应该地址判断单元3201所转传的该命令的触发,进而对该系统存储器31中该区块410与区块411内存放的相对应待运算数据进行一互斥或运算“D1’D2”而得到P’,然后再如步骤S509中所述,将D1’与P’分别写入硬盘机390与硬盘机392之中,进而完成整个更新动作。
另外,当硬式磁盘机390、391中某一部发生故障时,便可利用硬式磁盘机392中的同位值数据P来进行数据重建,其是如图6所示的步骤流程示意图中的技术手段。例如硬式磁盘机391损坏,但操作系统需要读取硬式磁盘机391中的数据D2时,本发明技术手段便执行下列手段首先,在步骤S601中,操作系统对驱动程序发出读取命令,然后,在步骤S602中,当磁盘阵列的驱动程序收到操作系统的读取命令后,就在步骤S603中,先把硬式磁盘机390、392中的D1与P读出并写入系统存储器中数据缓冲区专用的区块411之中,然后在步骤S604中,驱动程序再准备一互斥或运算命令,其记录有D1与P的数据地址、D1P的运算结果D2所欲存放的地址以及用以实际执行互斥或运算动作的容错数据运算单元3202的PCI元件地址,等上述互斥或运算命令准备好后,然后在步骤S605中,中央处理单元30通过北桥模块320发出该互斥或运算命令至该进阶主机控制器接口3210,但当该互斥或运算命令经过该地址判断单元3201时,经步骤S606的比对过程后,从比对结果便可知道该命令中含有容错数据运算单元3202的PCI元件地址(即小区块4020的地址范围),因此该命令实际上不会如步骤S607所述的送到南桥模块321,而是如步骤S608的所述,将其转传到位于北桥模块中实际以硬件完成的容错数据运算单元3202进行处理。于是信号连接于该地址判断单元3201及该系统存储器31的该容错数据运算单元3202,其接收并因应该地址判断单元3201所转传的该命令的触发,进而对该系统存储器31中该区块410与区块411内存放的相对应待运算数据进行一互斥或运算“D1P”而得到D2,然后再如步骤S609所述的将D2写入系统存储器的区块410之中,最后如步骤S607所述,驱动程序再通知操作系统此任务已完成。
而由上述的说明可知,本发明是在北桥模块320中设置一容错数据运算单元3202,用以处理实施例中的互斥或运算,相较于现有手段中的软件磁盘阵列模式,本发明并不会占用中央处理单元30的资源,而且本发明在系统存储器31中所使用的区块411,是规划成磁盘阵列所专用的区块,与现有软件磁盘阵列模式中随机配置且与其它装置共用该系统存储器31的方式有所不同,使得区块411所完成的数据缓冲区为一非快取区域(uncache range),所以在读取时不需窥探(snoop)中央处理单元30,使得存取数据更有效率。而且,虽然容错数据运算单元3202实际是设在北桥模块320,但本发明的设计却可使操作系统及驱动程序认为容错数据运算单元3202是设在南桥模块321之侧,与一般具有运算单元202的磁盘阵列卡20的配置相同。因此可与一般常用的驱动程序相容,因为对于驱动程序而言,命令一样是下给南桥模块321,操作模式与一般磁盘阵列卡并无不同。但通过地址判断单元3201的判断,便可将命令转传给设在北桥模块320的容错数据运算单元3202进行处理。而且由于北桥模块320离系统存储器31及中央处理单元30的距离都比南桥模块321近,因此进行容错运算将比较有效率。
反之,根据本发明的构想,也可将容错数据运算单元3202改设于南桥模块321,依然可以达到将上述磁盘阵列卡20上的存储器201与运算单元202取消而节省成本的目的,但却不会有软件磁盘阵列模式所造成占用计算机系统资源的缺失,使得系统存储器与中央处理单元必须兼顾上述任务而导致系统效能大幅下降,造成使用者的不便。但因南桥模块321离系统存储器31及中央处理单元30太远,因此处理起容错运算将比较没有效率,因此还是将其设置于北桥模块320会是比较好的设计。另外,随设计方向的不同,该南桥模块321以及该北桥模块320可以各自完成于不同的芯片上,或是共同完成于同一芯片上。
综止所述,本发明可改善现有手段缺失,进而达成发展本发明的主要目的。而凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在本发明的申请专利范围内。
权利要求
1.一种具磁盘阵列控制功能的核心逻辑单元,适用于一计算机系统,该计算机系统包含有一中央处理单元、一系统存储器以及多个硬式磁盘机,而该核心逻辑单元包括一南桥模块,其中,该南桥模块包括一硬盘控制器,其信号连接于所述硬式磁盘机,用以控制所述硬式磁盘机进行数据存取;及一北桥模块,其中,该北桥模块更包括一地址判断单元,信号连接于该中央处理单元;以及一容错数据运算单元,信号连接于该地址判断单元及该系统存储器;其中,当该中央处理单元发出一命令至该南桥模块,且该命令的地址信息属于一预设地址范围时,该地址判断单元将该命令传送至该容错数据运算单元,并触发该容错数据运算单元对该系统存储器中的一相对应待运算数据进行一容错数据运算。
2.如权利要求1所述的具磁盘阵列控制功能的核心逻辑单元,其中,该硬盘控制器是一进阶主机控制器接口,而该进阶主机控制器接口包含有一总线控制器,其电连接于所述硬式磁盘机,用以控制所述硬式磁盘机进行数据存取;以及一第一寄存器组,用以填入数值来在该操作系统中定义出一第一存储器区块,来供该进阶主机控制器接口使用。
3.如权利要求1所述的具磁盘阵列控制功能的核心逻辑单元,其中,该北桥模块更包含一第二寄存器组,用以填入数值来在该操作系统中定义出一第二存储器区块,且该第二存储器区块在该系统存储器中对应出一专用的数据缓冲区。
4.如权利要求1所述的具磁盘阵列控制功能的核心逻辑单元,其中,该容错数据运算单元是一互斥或运算单元,其接收并因应该地址判断单元所转传的该命令的触发,进而对该系统存储器中该数据缓冲区内存放的相对应待运算数据进行一互斥或运算。
5.如权利要求1所述的具磁盘阵列控制功能的核心逻辑单元,其中,该预设地址范围是该容错数据运算单元的PCI元件地址。
6.一种磁盘阵列控制方法,适用于一计算机系统,该计算机系统包含有一中央处理单元、一系统存储器、一南桥模块、一北桥模块以及多个硬式磁盘机,而该磁盘阵列控制方法包括有下列步骤该中央处理单元发出一命令至该南桥模块;当该命令中的地址信息属于一预设地址范围时,转传该命令至该北桥模块;以及因应转传的该命令的触发,该北桥模块对该系统存储器中存放的一相对应待运算数据进行一容错数据运算。
7.如权利要求1所述的磁盘阵列控制方法,其中,该容错数据运算是一互斥或运算,并由该北桥模块中的一容错数据运算单元来进行。
8.如权利要求1所述的磁盘阵列控制方法,其中,该预设地址范围是位于该北桥模块中一容错数据运算单元的PCI元件地址。
全文摘要
本发明是一种具磁盘阵列控制功能的核心逻辑单元以及磁盘阵列控制方法,适用于操作系统运行的计算机系统,计算机系统包含有中央处理单元、系统存储器以及多个硬式磁盘机,而核心逻辑单元包含有南桥模块以及北桥模块,其中南桥模块包含有硬盘控制器,北桥模块则包含有地址判断单元以及容错数据运算单元,而磁盘阵列控制方法首先会因应中央处理单元所发出至南桥模块的一命令中的地址信息属于一预设地址范围时转传命令至北桥模块;以及因应转传的命令的触发,北桥模块对系统存储器中存放的相对应待运算数据进行一容错数据运算。
文档编号G06F3/06GK1920764SQ200610126740
公开日2007年2月28日 申请日期2006年9月6日 优先权日2006年9月6日
发明者何宽瑞 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1