储存装置的容量规划方法及其读取与存取修正方法

文档序号:6579781阅读:118来源:国知局

专利名称::储存装置的容量规划方法及其读取与存取修正方法
技术领域
:一种计算机储存装置的容量管理方法,特别有关于一种储存装置的容量规划方法及其存取方法。
背景技术
:由于科技的快速发展,使得计算机装置的各项周边也随着成长。特别是储存装置的容量与体积。过去储存装置的容量是以千字节(Kilobyte)记量,演变到现在已经以千兆字节(Terabyte)记量,换句话说,储存装置的容量变化率已超过10000000倍。为能管理储存装置的储存空间,因此各储存设备的厂商合作定义了一主要开机记录(MasterBootMaster,简称MBR)的规范。MBR通常被设置于储存设备的第一扇区,借以提供计算机装置识别该储存设备的相关数据。当计算机装置的开机时,首先基本输入/输出系统(BasicInput/OutputSystem,简称BIOS)会运行过电自检(PowerOnSelfTest,简称POST)。BIOS通过POST用以确认所连接的各项接口设备是否正常。接着,BIOS才会开始确认储存设备的MBR的数据。在储存设备的第0面、第0轨、第1扇区的MBR,其为512Bytes大小的扇区空间。MBR所储存的信息可以分成三个部分,其分别为程序区(BootPartitionLoader;BPL,或者是Pre-Loader、Pre-Boot)、数据区(PartitionData)与验证区(VerifyData)。程序区储存在OOOh到lBDh,共446Bytes的扇区范围中。程序区主要是负责加载操作系统分割区的启动扇区(BootSector)。然后,再将计算机装置控制权交给启动扇区,继续加载操作系统的开机过程。数据区储存在IBEh到lFDh,共64Bytes的扇区范围中。而在这64Bytes范围中可划分成四个区域,用以储存四个硬盘分割区的数据。这也就是为什么在使用Fdisk等程序在规划硬盘分割区的时候,最多只能规划四个主要分割扇区(PrimaryPartition),或者是三个主要分割扇区和一个扩充分割扇区(ExtendedPartition)的原因。验证区储存在IFEh到IFFh的2Bytes范围中。验证区是以55AA的字符串数值来标记、验证从OOOh到IFFh整个扇区范围的数据是否为MBR扇区。在MBR的规范下,计算机装置仅可以对2Terabyte(其计算方式为446+64+2=512Bytes,232X512=2Terabyte)以下的储存装置进行存取。请参考图1所示,其为公知技术的磁盘参数设定流程示意图。公知技术包括以下步骤步骤S110.检测是否为最后一个通讯总线;步骤S120.若不为最后一个通讯总线时,则检测此一通讯总线中是否有连接实体储存装置;步骤S131.步骤Sl32.步骤Sl33.设定磁盘参数延伸表;设定实体储存装置的磁盘编号;修改计算机装置中的BIOS的数据区域的磁盘数量值;以及步骤S134.执行磁盘辨识程序,用以决定该实体储存装置的容量,重复步骤SllO3直至完成所有通讯总线与其连接的实体储存装置为止。若是大于2Terabyte的实体储存装置连接于计算机装置时,则计算机装置无法对实体储存装置超过的容量上限的空间进行开机扇区的配置,进而影响对实体储存装置的存取的动作。过去为能让计算机装置能够存取超过容量上限的实体储存装置,所以需要重新更换BIOS。但是对于厂商而言,更换BIOS是一项额外的成本。除了要变更BIOS外,也要有操作系统的配合。对于32位的操作系统而言,超过2TerabyteS的实体储存装置仍会出现无法正常存取的问题。
发明内容鉴于以上的问题,本发明的主要目的在于提供一种储存装置的容量规划方法。在计算机装置在启动过程中,首先寻找计算机装置中连接的实体储存装置。若侦测到实体储存装置的未分割容量大于最大磁盘容量时,则在实体储存装置中的未分割容量依序规划至少一磁盘,直至剩余容量小于最大磁盘容量为止。为达上述目的,本发明所揭露的储存装置的容量规划方法包括下列步骤步骤a.判断实体储存装置中的未分割容量是否大于最大磁盘容量;步骤b.当实体储存装置的未分割容量大于最大磁盘容量时,则将定位指针所指定的起始地址为基准在实体储存装置中划分出当前磁盘;步骤C.取得当前磁盘的磁盘容量设定值;步骤d.将实体储存装置的磁盘参数延伸表(FDPTextensiontable)的内容复制到当前磁盘的逻辑磁盘参数延伸表(logicalFDPTextensiontable)中;步骤e.修改磁盘参数延伸表中的磁盘编号,并根据修改后的磁盘参数延伸表的磁盘编号覆写逻辑磁盘参数延伸表中的磁盘编号;步骤f.修改计算机装置中的BIOS的数据区域(BIOSDataArea)的磁盘数量值;步骤g.执行磁盘辨识程序(IdentifyDriverCommand),用以在实体储存装置中规划出一个大小为磁盘容量设定值的当前磁盘;以及步骤h.当实体储存装置的剩余容量大于最大磁盘容量时,则将定位指针移至当前磁盘的结束地址后并重复步骤a至步骤h。当完成所选择的通讯总线中的实体储存装置后,本发明会逐一的对其余的通讯总线再侦测有无连接实体储存装置及该实体储存装置是否超过最大磁盘容量的相关处理,直至完成所有实体储存装置为止。从本发明的另一观点,本发明提出一种应用上述容量规划的磁盘容量的读取修正方法,借以读取出该磁盘正确的容量。为达上述目的,本发明所揭露的一种磁盘容量的读取修正方法包括下列步骤判断是否具有磁盘;以及当实体储存装置中具有磁盘时,则根据磁盘容量设定值修改第13号中断向量的函数48的[10h:17h]。就本发明的另一观点,本发明提出一种应用上述容量规划的数据存取修正方法,转换存取该磁盘起始地址。为达上述目的,本发明所揭露的一种数据存取方法包括下列步骤判断是否具有磁盘;以及当实体储存装置中具有磁盘时,则根据磁盘容量设定值修改第13号中断向量的函数42、函数43、函数44与函数47。本发明提供了一种储存装置的容量规划方法,可以在超过最大磁盘容量的储存装置中建立多个磁盘,借以避免计算机装置无法使用超过最大磁盘容量的未分割容量。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。图1为公知技术的磁盘参数设定流程示意图;图2为本发明的系统架构示意图;图3为本发明于单个实体储存装置的运作流程示意图;图4为本发明的实体储存装置中磁盘与未分割容量示意图;图5为本发明的容量规划程序细项流程示意图;图6A为本发明的容量查询修正程序的流程示意图;图6B为本发明的具有磁盘的实体储存装置的示意图;图6C为本发明的错误的磁盘容量的示意图;图6D为本发明的修正后的磁盘容量的示意图;图7A为本发明的磁盘起始地址未修正程序的示意图;图7B为本发明的磁盘起始地址修正程序的流程示意图;图7C为本发明的磁盘起始地址已修正程序的示意图;图8A为本发明于多个实体储存装置的运作流程示意图;图8B为本发明的容量规划程序细项流程示意图;图9A为本发明的各实体储存装置示意图;图9B为本发明的第一磁盘示意图;图9C为本发明的第二磁盘示意图;图9D为本发明的第三磁盘示意图。其中,附图标记210计算机装置211处理单元212通讯总线213组态只读存储214容量规划程序220实体储存装置411,412磁盘611第一磁盘612第二磁盘711第一磁盘712第二磁盘911第一通讯总线912第二二通讯总线913第:三通讯总线921第--实体储存装置922第:二实体储存装置931第--磁盘932第:二磁盘933第三Ξ磁盘具体实施例方式请参考图2所示,其为本发明的系统架构示意图。本发明中包含一可运行容量规划程序的计算机装置210与至少一实体储存装置220。计算机装置210具有处理单元211、至少一通讯总线212与组态只读存储器213(OptionROM)。通讯总线212用以连接实体储存装置220,通讯总线212的种类为:IDE、SATA、SCSI、eSATA、USB、或IEEE1394。实体储存装置220除了可以是单一的硬盘外,也可以是由冗余磁盘阵列所组成(RedundantArrayofIndependentDisks,简称RAID)的磁盘装置。组态只读存储器213中储存有容量规划程序214。而组态只读存储器213可以设置在外接适配卡中,举例来说,外接适配卡可以是冗余磁盘阵列适配卡或SATA扩充卡。此外,也可以将组态只读存储器213内建于主机板中,使得计算机装置210在开机的POST(POST)过程中,处理单元211可以预先从组态只读存储器213中存取容量规划程序214,借以对实体储存装置220进行磁盘的规划作业。承前述所言,本发明除可以应用于单一的实体储存装置220外,也可以在多个实体储存装置220中实现。以下先以单一总线与独立的实体储存装置220进行容量规划程序214的运行过程进行解说,本领域具有通常知识者亦能应用于多个实体储存装置220。请参考图3所示,其为本发明于单个实体储存装置的运作流程示意图,包括以下步骤步骤S310.判断所选出的实体储存装置中的总容量是否大于最大磁盘容量;步骤S320.当所选出的实体储存装置的总容量大于最大磁盘容量时,则向此一实体储存装置进行容量规划程序;以及步骤S330.当所选出的实体储存装置的总容量小于最大磁盘容量时,则向此一实体储存装置进行公知的磁盘参数设定程序(请参考公知的磁盘参数设定程序为步骤S131步骤S134)。首先,处理单元211会对该实体储存装置220判断其中的未分割容量是否大于最大磁盘容量(对应步骤S310)。在本发明中最大磁盘容量值为2TerabyteS。由于实体储存装置220中划分出至少一个以上的磁盘,在此将剩余未被划分的空间定义为未分割容量。换句话说,在本发明中实体储存装置220中的未分割容量(△)指的是将实体储存装置220的总容量(Total_Size)扣掉所有磁盘的总容量(Disk_Size)后的差值(Δ=Total,Size-Disk_SizeXn,其中η为磁盘的数量)。举例来说,当一个容量5TerabyteS的实体储存装置220中尚未切割有任何磁盘时,则该实体储存装置220的未分割容量为5TerabyteS。若在该实体储存装置220中具有两个2TerabyteS的磁盘时,则该实体储存装置220的未分割容量为ITerabytesd=5-2X2)。请同时配合图4所示,其为实体储存装置中磁盘与未分割容量示意图。在图4中为一个实体储存装置220,在实体储存装置220中另分割有两个2TerabyteS的磁盘411、412,因此还剩有ITerabytes的未分割容量。接着,判断实体储存装置220的未分割容量是否大于最大磁盘容量(对应步骤S320)。若实体储存装置220的未分割容量大于最大磁盘容量时,则对此一实体储存装置220进行容量规划程序214。在本发明中对进行容量规划程序214的磁盘,将其定义为当前磁盘。请参考图5所示,其为本发明的容量规划程序细项流程示意图。容量规划程序中更包括以下步骤步骤S321.当实体储存装置的总容量大于最大磁盘容量时,于实体储存装置的未6分割空间的起始地址指派一定位指针(pointer);步骤S322.取得当前磁盘的磁盘容量设定值;步骤S323.将实体储存装置的磁盘参数延伸表的内容复制到当前磁盘的逻辑磁盘参数延伸表中;步骤S324.修改磁盘参数延伸表中的磁盘编号,并以修改后的磁盘参数延伸表的磁盘编号覆写逻辑磁盘参数延伸表中的磁盘编号;步骤S325.修改计算机装置中的BIOS的数据区域的磁盘数量值;步骤S326.执行磁盘辨识程序,用以在实体储存装置中规划出一个大小为磁盘容量设定值的当前磁盘;步骤S327.判断实体储存装置的未分割空间是否仍大于最大磁盘容量;步骤S328.当实体储存装置的剩余容量小于最大磁盘容量时,则重复执行步骤S330;以及步骤S329.当实体储存装置的剩余容量大于最大磁盘容量时,则将定位指针移至当前磁盘的结束地址之后,再重复步骤S321至步骤S329。若在实体储存装置220中并未有任何磁盘时,则定位指针直接以实体储存装置220的起始地址做为基准(定位指标的移动方式于后文会有详述)。同理,在实体储存装置220中已存在分割的磁盘时,则以未分割空间的起始地址为基准。接着,处理单元211会取得当前磁盘欲分割的磁盘容量设定值。在本发明中磁盘容量设定值的决定可以由使用者自行输入,也可以为一系统默认值。举例来说,若是由使用者自行输入磁盘容量设定值时,可以在容量规划程序214执行前,在屏幕的画面上可以呈现一具有输入字段的显示接口,借以接收使用者所输入的磁盘容量设定值。若是以固定的磁盘容量设定值为例,则运行容量规划程序214时,处理单元211会自动将当前磁盘的切割容量设定为磁盘容量设定值,换句话说,就是将磁盘容量设定值设为2TerabyteS。接着,处理单元211创建出当前磁盘所属的逻辑磁盘参数延伸表。处理单元211再将实体储存装置220的磁盘参数延伸表的各字段内容逐一的复制到逻辑磁盘参数延伸表中,使得磁盘参数延伸表的内容与逻辑磁盘参数延伸表得以一致。磁盘参数延伸表的主要目的在于记录实体储存装置220的相关硬件参数。其中,硬件参数包括有输入/输出端口的地址(I/Oportbaseaddress)、控制端口地址(controlportaddress)、中断向量(IRQ)、扇区数量(sectorcount)、直接内存存取信息(DMAinformation)、程序输入/输出信息(ΡΙ0information)、磁盘数量(drivercount)、与硬件规格选项(Hardwarespecificoption)0在步骤S324中主要针对磁盘数量的字段进行修改。假设每一次执行容量规划程序214时就会新增一个磁盘,因此对磁盘数量的字段值进行加总(意即每次累加个数为”1”)。同理,若一次增加的磁盘数量为η个时,则每次会累加η。在累加磁盘参数延伸表中磁盘数量后,会以新的磁盘数量将当前磁盘的逻辑磁盘参数延伸表的磁盘数量覆写。在完成复制逻辑磁盘参数延伸表后,处理单元211会对BIOS的数据区域的磁盘数量值进行修改。就BIOS的角度而言,BIOS仅能识别到所侦测的实体储存装置220,对于新规划的磁盘却未能被BIOS所辨识。所以为了能让BIOS可以辨识到在实体储存装置220中新规划出的磁盘,因此需要更改BIOS的储存装置数量。在本发明中根据磁盘参数延伸表的7磁盘数量(由步骤S324所产生的磁盘数量)再加”1”后,把累加值写入BIOS的数据区域的磁盘数量值。换言之,当磁盘参数延伸表中的磁盘数量为”η”时,则写入BIOS的数据区域的磁盘数量值为”n+1”。接下来,由处理单元211执行磁盘辨识程序。根据步骤S322中所取得当前磁盘的磁盘容量设定值,在实体储存装置220中规划出一个大小为磁盘容量设定值的当前磁盘。其中,磁盘辨识程序中包括了设定扇区数量、磁头数量、磁柱数量与硬盘序号等相关参数。最后,再将定位指针移动到当前磁盘的结尾地址后,借以作为下一个磁盘的容量规划的起点。若在实体储存装置220中的未分割空间仍大于最大磁盘容量时,则再对实体储存装置220中的未分割空间进行步骤S321步骤S328,借以再产生新的当前磁盘,直至实体储存装置220的未分割空间小于最大磁盘容量为止。对应步骤S330若是实体储存装置220的未分割空间小于最大磁盘容量时,则对实体储存装置220进行公知的磁盘参数设定程序。在完成上述所有的容量规划程序214后,对于实体储存装置220的存取还需要进行与磁盘起始地址的修正程序。请参考图6A所示,其为容量查询修正程序的流程示意图,该容量查询修正程序包括以下步骤步骤S610.判断实体储存装置中是否具有磁盘;步骤S620.当实体储存装置中具有磁盘时,则修改第13号中断向量的函数48的[10h:17h];以及步骤S630.执行容量查询程序,通过已修改的第13号中断向量取得欲查询的磁盘的容量。因为原本实体储存装置220中的磁盘参数延伸表已被修改过。所以若要对该实体储存装置220查询其容量,因此还需要重新对容量查询程序进行修正。若在未修正的情况下对实体储存装置220进行查询,BIOS会侦测到有与实体储存装置220相同容量的多个磁盘。以前述的5Terabytes实体储存装置220(其包括有两个2Terabytes与一个ITerabytes的磁盘)为例,请参考图6B所示。当以未修正的容量查询程序对该实体储存装置220进行容量查询时,BIOS会根据实体储存装置220的磁盘参数延伸表所储存的磁盘数量,并且把图6B中的第一磁盘611与第二磁盘612的起始地址都是从实体储存装置220的起始地址开始。如此一来,BIOS会把实体储存装置220中的磁盘误判成两个容量为5TerabyteS的第一磁盘611、第二磁盘612,与一个5Terabytes的未使用空间,请参考图6C。因此,当处理单元211侦测到所欲存取的实体储存装置220中具有经过前述处理的磁盘611、612时,则处理单元211就会修改第13号中断向量(以下简称INT13)的函数(fimction)48的[10h:17h]。INT13的函数48用以读取扇区数量的偏移量计算。对此一偏移量的计算依据磁盘容量设定值。在INT13的函数48中另外还有下述存取参数的描述,请参考表1与表2,其分别为INT13的函数48的参数与其偏移量的物理意义。权利要求一种储存装置的容量规划方法,在一计算机装置启动时对一实体储存装置进行一磁盘的容量规划,其特征在于,该容量规划方法包括有a.判断该实体储存装置的总容量是否大于一最大磁盘容量;b.当该实体储存装置的总容量大于该最大磁盘容量时,则以一定位指针指向该实体储存装置的未使用空间的一起始地址;c.取得一当前磁盘的一磁盘容量设定值;d.将该实体储存装置的一磁盘参数延伸表的内容复制到该当前磁盘的一逻辑磁盘参数延伸表中;e.修改该磁盘参数延伸表中的磁盘编号,并根据修改后的该磁盘参数延伸表的磁盘编号覆写该逻辑磁盘参数延伸表中的磁盘编号;f.修改该计算机装置中的一基本输入/输出系统的数据区域的一磁盘数量值;g.执行一磁盘辨识程序,决定该当前磁盘的该磁盘容量设定值;以及h.当该实体储存装置的未分割空间大于该最大磁盘容量时,则将该定位指针移至该当前磁盘的结束地址后并重复步骤a至步骤h。2.根据权利要求1所述的储存装置的容量规划方法,其特征在于,在步骤a前另包括侦测是否为最后的一通讯总线;若不是最后的该通讯总线时,则侦测每一该通讯总线是否连接该实体储存装置;以及当所选出的该通讯总线中存在该实体储存装置时,则执行步骤a至步骤h,直至完成该通讯总线连接的所有该实体储存装置为止。3.根据权利要求1所述的储存装置的容量规划方法,其特征在于,该最大磁盘容量为2千兆字节。4.根据权利要求1所述的储存装置的容量规划方法,其特征在于,该磁盘参数延伸表包含有一磁盘容量、一磁柱数量、一磁头数量与一扇区数量。5.根据权利要求1所述的储存装置的容量规划方法,其特征在于,在步骤e的修改该磁盘参数延伸表中的磁盘编号中另包括对该磁盘参数延伸表的磁盘编号进行累加,并以累加结果修改该磁盘参数延伸表中的磁盘编号。6.一种用于读取如权利要求1所述的储存装置的修正方法,可以修正对该完成容量规划的实体储存装置的容量的读取方式,其特征在于,该读取修正方法包括判断该实体储存装置中是否具有该磁盘;以及当该实体储存装置中具有该些磁盘时,则以该磁盘容量设定值修改第13号中断向量的一函数48的[10h:17h]。7.一种用以存取如权利要求1所述的储存装置的修正方法,其用以修正该完成容量规划的实体储存装置的存取方式,借以从该储存设备中取得正确地址的数据,其特征在于,该存取修正方法包括判断该实体储存装置中是否具有该磁盘;以及当该实体储存装置中具有该些磁盘时,则根据该磁盘容量设定值修改第13号中断向量的函数42、函数43、函数44与函数47。全文摘要一种储存装置的容量规划方法及其读取与存取修正方法,在计算机装置启动时对实体储存装置的容量进行管理,管理方法包括寻找计算机装置所连接的实体储存装置;当实体储存装置的容量大于最大磁盘容量时,在实体储存装置中划分出指定容量的一当前磁盘;设定当前磁盘的逻辑磁盘参数延伸表的各项参数;将实体储存装置的剩余容量划分为数个指定容量的磁盘,并设定其相应的逻辑磁盘参数延伸表,直至剩余容量小于最大磁盘容量为止。文档编号G06F12/02GK101963941SQ20091016474公开日2011年2月2日申请日期2009年7月22日优先权日2009年7月22日发明者王志暐,黄国维申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1