处理装置和写入方法

文档序号:6359711阅读:153来源:国知局
专利名称:处理装置和写入方法
技术领域
本发明涉及写入技术,特别涉及向存储介质写入文件的处理装置和写入方法。
背景技术
计算机中一般安装有操作系统,各种软件程序基于该操作系统而动作。在计算机起动时,BIOS (Basic Input Output System)将引导加载器(boot loader)复制到 RAM 中并使之起动,引导加载器将存储在硬盘驱动器(HDD)中的操作系统的镜像文件读入RAM,由此,操作系统就能动作了。在此,在引导加载器进行操作系统的镜像的读入时,文件排列表是始终被参照的。但是,由于一般不能高速地执行参照文件排列表的读入,故会妨碍操作系统的起动时间的缩短(例如参照专利文献I)。〔在先技术文献〕 〔专利文献〕〔专利文献I〕日本特开2004- 246787号公报

发明内容
〔发明所要解决的课题〕固件也可能被存储在HDD中。例如,用调谐器或从网络下载的固件、或者从可装卸的存储介质复制的固件被暂时保存在HDD中。在此,随着存储在HDD中的固件被写入到FLASHR0M等非易失性存储器中,固件被更新。用应用程序也能实现固件向HDD的保存、固件向非易失性存储器的写入。然而,关于向非易失性存储器的写入,若处理中途发生停电或拔掉电源等,则下次就无法起动应用了,故在也包含恢复处理的情况下,希望由引导加载器来进行。另一方面,即使应用程序在文件系统上保存了固件,不支持文件系统的引导加载器也必须指定块地址(Block Address),直接读出固件。具体来说,引导加载器解析文件系统信息。在ext2的情况下,文件系统信息相当于超级块(Super block)、文件描述符(filedescriptor)等。然后,引导加载器一边查找目录项,一边抽取出固件的起始地址,然后读出必要文件的内容或其一部分。在⑶一 ROM等所使用的IS09660文件系统中,只要能抽取出文件的起始地址,由于文件内容的块地址是连续的,故只要恰当地划分读取单位地来读出即可。然而,在ext2的情况下,文件内容的块地址并不连续,数据之间不定期地包含有i节点。因此,不使用文件系统的引导加载器针对每I块分别抽出i节点所示的地址,由此读出文件。每次读取i节点时,会发生寻道访问的溢出,处理会较花费时间。这样的问题不仅在读出时存在,在写入时也同样存在。在要使旧版本的固件或者其一部分存储到HDD中的情况下,在按照文件系统的规则生成的文件被更新时,所生成的文件的块地址每次都会变。因此,成为读写的对象的块地址不确定,结果就需要在引导加载器中编入与文件系统相当的处理。其结果,引导加载器的代码量会増大。这对资源有限的编入设备来说是不希望的。作为其规避策略,也有不使用文件系统地来运用的方法,但反过来不仅不能从应用程序读写文件,还不能存储其它文件了。本发明是鉴于这样的状况而研发的,其目的在于提供一种缩短引导加载器的文件读写的处理延迟的技术。〔用于解决课题的手段〕为解决上述课题,本发明一个方案的处理装置包括取得部,从能将文件分割成多个块存储的存储装置取得表示有构成文件的各块的地址的管理信息;生成部,从在取得部中取得的管理信息中抽出各块的地址,并将地址连续的块集结成连续区域,由此生成表示有针对各连续区域的开始地址和尺寸的表;读出部,读出非易失性存储器中所存储的数据;以及写入部,基于在生成部中生成的表,将数据分割到从开始地址至尺寸所决定的结束地址的各连续区域,将分割后的数据以维持管理信息所示的构成文件的各块的地址的方式写 入存储装置。根据该方案,从存储装置生成表示表示有与连续区域对应的开始地址和尺寸的表,并按照表来向存储装置写入文件,故能缩短写入时间。可以是取得部从将文件分割成多个块地存储的存储装置中再次取得表示有各块的地址的管理信息;生成部从在取得部中再次取得的管理信息中抽出各块的地址,并将地址连续的块再次集结成连续区域,由此再次生成表示有针对各连续区域的开始地址和尺寸的表;读出部基于在生成部中再次生成的表,按从开始地址起至尺寸所决定的结束地址的各连续区域,分别读出构成被分割地存储在存储装置中的文件的各块的数据;写入部将在读出部中读出的各块的数据写入非易失性存储器中。在该情况下,由于是再次生成表示有与存储装置中所存储的文件内的连续区域对应的开始地址和尺寸的表,并按照表执行读出处理,故能缩短更新时间。写入部可以在将分割后的数据写入存储装置时,更新存储装置中所存储的文件信息中的属性、文件名、更新日期时间的至少一者。在该情况下,由于更新属性、文件名、更新日期时间的至少一者,故能保留更新完成的证据。本发明的另一方案也是一种处理装置。该装置包括取得部,从将第I固件程序分割成多个块地存储的存储装置中取得表示有各块的地址的管理信息;生成部,从在取得部中取得的管理信息中抽出各块的地址,并将地址连续的块集结成连续区域,由此生成表示有针对各连续区域的开始地址和尺寸的表;读出部,基于在生成部中生成的表,按从开始地址至尺寸所决定的结束地址的各连续区域,读出被分割地存储在存储装置中的第I固件程序;以及写入部,通过在读出部中读出的第I固件程序来更新非易失性存储器中所存储的第2固件程序。通过该方案,由于生成表示有与存储装置中所存储的第I固件程序内的连续区域对应的开始地址和尺寸的表,并按照表来执行读出处理,故能缩短更新时间。读出部在以第I固件程序的一部分为读出对象时,基于在生成部中生成的表,仅读出与读出对象对应的块。在该情况下,由于是仅读出连续区域中的与读出对象对应的块,故也能应对以第I固件程序的一部分为读出对象的情况。生成部可以通过再次使用已生成的表,来省略表的生成。在该情况下,由于再次使用已生成的表,故能缩短处理期间。
本发明的另一方案是一种写入方法。该方法包括从能将文件分割成多个块存储的存储装置取得表示有构成文件的各块的地址的管理信息的步骤;从取得的管理信息中抽出各块的地址,并将地址连续的块集结成连续区域,由此生成表示有针对各连续区域的开始地址和尺寸的表的步骤;读出被存储在非易失性存储器中的数据的步骤;以及基于所生成的表,将数据分割到从开始地址至尺寸所决定的结束地址的各连续区域,将分割后的数据以维持管理信息所示的构成文件的各块的地址的方式写入存储装置的步骤。本发明的再一个方案也是一种写入方法。该方法包括从将第I固件程序分割成多个块地存储的存储装置中取得表示有各块的地址的管理信息的步骤;从所取得的管理信息中抽出各块的地址,并将地址连续的块集结成连续区域,由此生成表示有针对各连续区域的开始地址和尺寸的表的步骤;基于所生成的表,按从开始地址至尺寸所决定的结束地址的各连续区域,读出被分割地存储在存储装置中的第I固件程序的步骤;以及通过所读出的第I固件程序来更新非易失性存储器中所存储的第2固件程序的步骤。另外,将以上构成要素的任意组合、本发明的表现形式在方法、装置、系统、记录介 质、计算机程序等之间变换后的方式,作为本发明的方案也是有效的。〔发明效果〕通过本发明,能缩短引导加载器所进行的文件读写的处理延迟。


图I是表示本发明实施例I的处理装置的构成的图。图2是表示图I的HDD中的ext2文件系统的概要的图。图3是表示图I的HDD中的i节点表和块地址的概要的图。图4是表示图I的HDD中的块地址上的文件和i节点的关系的图。图5是表示图I的HDD的构成的图。图6是表示图I的HDD的读取单位块数和读出时间的关系的图。图7是表示图I的引导加载器的构成的图。图8是表示在图7的生成部中生成的连续区域的概要的图。图9是表示在图7的生成部中生成的表的图。图10是基于图7的读出部中的始端和终端的开始地址和尺寸的调整的概念图。图11是表示图7的引导加载器所进行的写入步骤的流程图。图12是表示图7的生成部中的表的生成步骤的流程图。图13是表示图7的生成部中的块地址的抽出步骤的流程图。图14是表示本发明实施例2的引导加载器所进行的写入步骤的流程图。图15是表示本发明实施例3的引导加载器所进行的写入步骤的流程图。图16是表示本发明实施例4的引导加载器所进行的写入步骤的流程图。图17是表示本发明实施例5的引导加载器所进行的写入步骤的流程图。图18是表示续接图17的引导加载器的写入步骤的流程图。图19是表示本发明实施例6的引导加载器所进行的写入步骤的流程图。
具体实施方式
(实施例I)在具体说明本发明前,先叙述其概要。本发明的实施例涉及用于通过存储在HDD(Hard Disk Drive :硬盘驱动器)中的固件程序来更新存储在非易失性存储器中的固件程序的引导加载器。在此,作为一例,假定HDD所使用的文件系统是ext2。在ext2中,固件程序被分割成多个块地存储。多个块并非一定是连续的。为缩短从HDD读出固件程序的期间,减少寻道的反复次数、一次读出连续的块是有效的,详细情况将在后面叙述。另一方面,引导加载器预先不知道存储在HDD中的固件程序的块地址,所以必须取得表示块地址的i节点。该i节点被分散地保存在HDD内,故在一边从i节点取得块地址一边读出固件程序时,难以一次读出连续的块。因此,难以实现读出速度的高速化。为应对于此,实施例的引导加载器执行以下处理。引导加载器在读出固件程序前,从i节点取得块地址,生成关于连续的块(以下称作“连续区域”)的表。该表中示出了各连续区域的开始地址和尺寸。引导加载器通过一边参照表一边一次地读出连续的块,来使得从HDD的固件程序的读取高速化。·图I表示本发明实施例I的处理装置100的构成。处理装置100包括处理器102、HDD104、易失性存储器106、非易失性存储器108、装卸式存储器110、调谐器112。此外,处理器102包括CPU (中央处理装置)114、引导加载器116。处理装置100介由网络118连接于服务器120。处理器102由集成电路等实现。处理器102除CPU114、引导加载器116外,还统合有多种驱动器、专用处理模块。处理器102可与多种器件及介质进行访问。非易失性存储器108是FLASHROM、EEPROM等,保存CPU114要处理的程序。另外,非易失性存储器108存储固件程序。易失性存储器106是由SDRAM等构成的实处理用的存储器。通过引导加载器116从非易失性存储器108向易失性存储器106读入程序并使之起动,CPUl 14就能处理程序了。另外,引导加载器116的处理可分阶段地来进行,故有时一部分被包含在程序中。调谐器112是可接收BS / CS /地面波数字信号/地面波模拟信号等的模块,根据处理器102的控制而输出接收数据。HDD104保存各种程序及调谐器112所接收的数据等。在此,HDD104存储比非易失性存储器108中所存储的固件程序版本新的固件程序。处理器102中包含有装卸式存储器110的驱动器,能对装卸式存储器110读写数据。此外,处理器102具有通信用的驱动器,介由因特网、内部网等网络118与远程的服务器120进行通 目。非易失性存储器108中一般在出厂时被写入有固件程序等程序。为修正程序的内容或提高性能,在出厂后,在用户的使用环境下进行程序的更新。作为程序更新的一例,有通过利用了卫星广播的广播(on air)下载所进行的更新。在该情况下,同节目表等一样,通过调谐器112下载程序的更新数据,在保存数据后进行程序更新。作为同样地从远程下载的方法,也可以经由网络118从远程的服务器120下载程序的更新数据,在保存数据后进行程序更新。此外,作为其它方法,还可以复制被存储在装卸式存储器110中的数据,在保存数据后进行程序更新。在本实施例中,作为程序更新,以固件程序的更新为对象。固件程序的更新中的处理被分类为用于取得并保存更新数据的处理(以下称为“保存处理”)、以及读出所保存的更新数据并写入到非易失性存储器108中的处理(以下称作“写入处理”)。如前所述,更新数据被保存在HDD104中。保存处理是广播(on air)下载或经由网络118的下载等在应用程序动作过程中所进行的,所以保存处理本身也由应用程序来进行。从装卸式存储器110的数据复制若也是在应用程序的动作过程中,则只是复制文件就可以了,故适合由应用程序进行保存处理。另一方面,写入处理也能用应用程序来实现,但应用程序被包含在更新数据中。因此,若在写入过程中发生停电、被用户拔掉电源,则下次有可能无法正常起动0S(0peratingSystem:操作系统)或应用程序。结果,无法进行写入的再试行,不能再次恢复了。因此,读出所保存的更新数据并写入到非易失性存储器108中的处理优选通过不依赖于OS和应用的引导加载器116来进行。此外,在引导加载器116进行写入处理的情况下,在与作为前处理的取得并保存更新数据的处理之间伴随有重启处理,故数据的保存场所需要具有非易失性且能保存更新用的软件程序的容量。因此,HDD104适于作为更新用的软件程序的保存场所。图2表示HDD 104中的ext2文件系统的概要。在OS采用Linux的情况下,作为块文件系统,多使用ext2。ext2是基于Fast File System (快速文件系统)而开发的,以在 UNIX (注册商标)中传统使用的“块管理算法”为基础。在ext2中,按1024、2048、4096bytes的任一种构成块单位,多个块被汇总为“块组”进行管理。在图2中,表示了块组的构造。图2的左侧表示形成在图I的HDD 104内的分区,图2的中央表示ext2分区的布局。图2的右侧进一步详细地表示块组内的布局。在此,所谓超级块,是关于文件系统的管理信息,所谓组描述符,是组内的信息,所谓数据块位图,是数据块的信息。此外,i节点表保存i节点,该i节点保持关于文件/目录的信息,数据块保持实际的数据。图I的引导加载器116在用超级块及组描述符的信息得到文件系统的信息后,在目录项内进行查找,得到与目的文件对应的i节点表的信息。通过基于i节点表求得数据块的存储器地址,就能进行实际的文件内数据的读取了。数据块的尺寸是与其它块相同的1024、2048、4096bytes的任一种值。数据块的尺寸为2048byte、文件尺寸为200Kbytes的文件的参照需要100个数据块。但若针对100个数据块保持100个地址,则信息量会増大,因而在ext2中为高效地使用地址范围而生成间接块,能通过间接指针来参照。图3表示HDD104中的i节点表和块地址的概要。i节点所具有的数据块参照用的排列是15个,在ext2中,将其中12个用于“直接参照”、将其余三个分别用于“一次间接参照”、“二次间接参照”、“三次间接参照”。由此,ext2高效地操作需要多个数据块的容量较大的文件。在各个参照方法中,可表达的文件尺寸在计算上如下这样。直接参照的计算式是“块尺寸X 12个”。块尺寸为1024bytes、2048bytes、4096bytes时,各文件尺寸分别为12Kbytes、24Kbytes、48Kbytes。在一次间接参照中,作为间接参照用,能使用“块尺寸+4”个量。这相当于块指针的大小“byte”。因此,若换算为文件尺寸,则成为“块尺寸+4 *块尺寸”,块尺寸为1024bytes、2048bytes、4096bytes 时,各文件尺寸分别为 256Kbytes、lMbytes、4Mbytes。在二次间接参照中,若换算为文件尺寸,则为“((块尺寸+4)2)X块尺寸”。因此,在块尺寸为1024bytes、2048bytes、4096bytes 时,各文件尺寸分别为 64Mbytes、512Mbytes、4Gbytes。应写入到图I的非易失性存储器108中的更新用程序的文件尺寸为数十 数百Mbytes时,优选使用二次间接参照。
图4表示HDD 104中的块地址上的文件与i节点的关系。i节点本身在HDD104中未被保存于汇总的区域,而是形成在数据块内的。因此,在使用间接参照时,原文件的数据会没有连续性。这是因为,内核为在读入i节点和与其对应的数据块时减少盘头(diskhead)的寻道而想要将i节点分配到与数据块相同的组内。地址表达为4bytes时,能保存在I块中的地址数为“块尺寸+4”。即,在计算上,若不每“块尺寸+4”一次地向数据中加入i节点,则无法表达出所有地址。例如在2048bytes的情况下,若不每512bytes —次地嵌入i节点,则无法表达全部地址。此外,实际上并非一定是512bytes,而是不定期地按更少的间隔插入i节点的。进而,由于文件的位置和其中所含的i节点的位置是在每次文件生成时被更新的,故难以确定。即,图I的引导加载器116即使抽出了文件的起始数据所在的块地址,也不能连续地读出块,必须针对每I块分别一边进行参照、一边读出数据的块地址。图5表示HDD 104的构成。在同心圆状地生成的磁道150中,作为读写数据的单位,形成有扇区152这样的区域。用摇臂(swing arm>144使磁头146在磁盘140上移动,来进行对数据的访问。将该操作称作寻道,将其所需时间称作寻道时间。若是在相同磁柱148内则没有寻道时间,故仅成为旋转等待时间,但在伴随有寻道时,必须考虑寻道时间。一般, HDD104的数据读出时间按“(平均寻道时间+平均旋转等待时间+数据传输时间)X (寻道的反复次数)”来计算。在此,成立数据传输时间<<(平均寻道时间+平均旋转等待时间)的关系。因此,“寻道的反复次数”越少,整体的数据读出时间就越短。另外,在读取超出一个磁道150的尺寸的文件时,若能一次读出连续的地址,则不用长期寻道(long seek),用I磁道跳跃就能访问,故数据读出时间变短。图6表示HDD104的读取单位块数与读出时间的关系。这是一边改变访问单位一边计测128Mbytes的数据的读出时间而得到的结果。针对I块单位的读取,随着读取单位块数增加,读取时间大大减少,并在128Mbytes附近达到饱和。图7表不引导加载器116的构成。引导加载器116包括取得部130、生成部132、读出部134、分割部136、写入部138。取得部130对图I的HDD104中的构成于ext2文件系统上的超级块进行解析,取得块尺寸等必要的信息。取得部130解析组描述符,取得i节点表ID等必要的信息。取得部130查找目录项,取得升级文件的i节点信息。生成部132从将更新用的固件程序分割成多个块而存储的HDD104中取得表示了各块的地址的管理信息。生成部132使用所取得的管理信息、即i节点表的信息和间接参照,抽出与文件内的各块对应的块地址。生成部132将块地址连续的块集结成连续区域。图8表示在生成部132中生成的连续区域的概要。在此,补充表示块地址、连续区域的开始地址及尺寸的表的关系。图8是将文件内的所有块表达为排列,并示出与各自的块地址的对应的图。作为直接参照的Block [O]至Block [11]的块地址也是连续的,但从Block [12]起,块地址错开了 I。这是因为为了在i节点的间接参照中使用,而空出了 OxOOOOlCOC。回到图7。此外,生成部132生成表示了针对各连续区域的开始地址和尺寸的表。表可以作为排列而构成在图I的易失性存储器106上,也可以保存在HDD104或非易失性存储器108中。图9表示在生成部132中生成的表。最初的连续区域是图8的Block
至Block的范围,对应的开始地址和尺寸是表示于图9的最初的行中的值。第2连续区域之后也是一样,结果,生成图9那样的表。图9的表的尺寸比图8的表的尺寸小得多。例如固件程序的文件尺寸为数十 数百Mbytes,块尺寸为2048bytes时,能用二级间接参照来实现,按照大概的计算,成为I / (2048 / 4) = I / 512的表尺寸。因此,与保持图8的表时相t匕,用于保持表的资源被大幅削减。回到图7。读出部134基于在生成部132中生成的表,从开始地址起按尺寸所长及的各连续区域,分别读出分割存储在HDD104中的更新用的固件程序。即,读出部134 —并读出连续区域中所包含的多个块。读出部134将所读出的固件程序暂时存储在易失性存储器106中。此时,在要划分出更新用的固件程序内的一部分的情况下,所要划分出的一部分的始端和终端未必成为连续区域的边界。此时,读出部134预先检测出始端和终端被包含在哪个连续区域中,并调整开始地址和尺寸。例如连续区域中途的块为始端时,开始地址被向后方偏移到与始端对应的块。另夕卜,对于终端也是一样。即,读出部134在以更新用的固件程序的一部分为读出对象时,基于在生成部132中生成的表,仅读出与读出对象对应的块。写入部138从易失性存储器106读出更新用的固件程序,写入到非易失性存储器108中。S卩,写入部138通过在读出部134 中读出的更新用的固件程序,来更新非易失性存储器108中所存储的这之前的固件程序。此外,分割部136在实施例I中不进行动作。在针对文件内的一部分数据进行读写时,图9的表中的连续区域的边界未必是始端和终端。因此在开始读写前,通过预先检测出始端和终端被包含在哪个连续区域中,并调整各个开始地址和尺寸来应对。图10是读出部134中基于始端和终端来调整开始地址和尺寸的概念图。为进行始端和终端的开始地址和尺寸的调整,首先如图10的右侧所示那样按顺序将连续区域连接起来,生成虚拟的地址(实际上其间会插入i 一 node,故与真实地址不同)。在该过程中,检测表示读出对象数据的(文件起始基准中的)起始位置的start和表示终端位置的end是否存在于各连续区域的虚拟地址内。如图所示,用实线围起start和end的区域是想要读出的数据。此时的start位置被包含在Ext [3]中,故针对Ext [3],使开始地址向后偏移,并减小尺寸,由此能够进行校正。同样,关于end位置,由于其被包含在Ext [112]中,故针对Ext [112]能通过减小尺寸来进行校正。该构成在硬件方面能用任意计算机的CPU、存储器、其它LSI实现,软件方面由被载入存储器的程序等实现,但在此描绘了由它们协作实现的功能块。因此,本领域技术人员当理解这些功能块能够仅由硬件、仅由软件、或者由它们的组合以各种各样的形式实现。下面说明基于以上结构的引导加载器116的动作。图11是表不引导加载器116的写入步骤的流程图。取得部130进行构成在ext2文件系统上的超级块的解析(S10),取得块尺寸等必要的信息。取得部130进行组描述符的解析(S12),取得i节点表ID等必要的信息。取得部130查找目录项,取得升级文件的i节点信息(S14)。生成部132利用i节点表的信息和间接参照,抽出与文件内的各块对应的块地址,生成表示连续区域的开始地址和尺寸的表(S16)。读出部134按照各连续区域分别从HDD104读出更新用固件,并暂时保存在易失性存储器106中(S18)。写入部138从易失性存储器106读出更新用固件,写入到非易失性存储器108中(S20)。图12是表示生成部132中的表的生成步骤的流程图。生成部132抽出位于文件的起始处的起始块地址(S40)。生成部132在连续区域的开始地址处插入所抽出的起始块地址的值(S42)。生成部132对参数(连续区域编号、连续区域尺寸、块数计数值)进行初始化(S44)。如果块数计数值m没有超过块尺寸(S46的Y),则生成部132抽出块地址(S48)。生成部132确认块地址是否与前一数据的块地址相连续,若连续(S50的Y),则仅使尺寸增量(S54)。若不连续(S50的N),则生成部132使连续区域编号增量,并用当前对象的块地址更新开始地址,将尺寸初始化(I) (S52)。生成部132使块数计数值增量(S56)后返回步骤46。若块数计数值m超过块尺寸(S46的N),则处理结束。图13是表示生成部132中的块地址的抽取步骤的流程图。这相当于图12的步骤40、步骤48中的块地址的抽取。根据图11的步骤14所得到的i节点信息,能从图3所示的i节点表中抽出对象i节点,但为使说明明了,将剔除出其中的参照信息后的结果记作i_node [i],0 < i < 15 (S70)。若i < 12 (S72的Y),则生成部132进行直接参照,抽出块地址(S74)。若不是i < 12 (S72的N),而是i = 12 (S76的Y),则生成部132进行一次间接参照抽出块地址(S78)。若不是i = 12 (S76的N),而是i = 13 (S80的Y),则生成部132进行二次间接参照抽出块地址(S82)。若不是i = 13 (S80的N),而是i = 14,则生成 部132进行三次间接参照抽出块地址(S84)。 根据本发明的实施例,生成表示有与HDD中所保存的更新用的固件程序内的连续区域对应的开始地址和尺寸的表,并按照表来执行读取处理,故能缩短固件程序的更新时间。此外,由于生成表,故在不支持文件系统的引导加载器更新被保存在非易失性存储器中的固件程序的情况下,也能缩短更新时间。另外,由于从HDD读出的尺寸接近“块尺寸+4”,故能高速地进行读取。此外,即使在文件系统上进行了文件的再排列等,由于是灵活的追踪,故也能降低对性能的影响。此外,由于连续区域的表的信息量比关于块地址的表的信息量小,故能提高处理的效率。(实施例2)本发明的实施例2同实施例I 一样,涉及一种用于写入固件程序的引导加载器。另一方面,实施例2不同于实施例1,相当于将被存储在非易失性存储器中的固件程序暂时保存在HDD中的情况。这里,向HDD的暂时保存是以固件程序的备份为目的而进行的。即,在实施例2和实施例I中,应读出固件程序的存储介质和应写入固件程序的存储介质正相反。实施例2的处理装置100是与图I同样的类型,实施例2的引导加载器116是与图7同样的类型。在此,以与实施例I的差异为中心进行说明。在HDD104中,在文件系统上由应用程序等保存有备份用的固件程序或与应备份的固件程序同尺寸的文件。取得部130针对图I的HDD104解析超级块和组描述符。此外,取得部130查找目录项,取得已存储在HDD104中的文件的i节点信息。生成部132从能将备份用的固件等文件分割成多个块来存储的HDD104取得表示有各块的地址的管理信息。生成部132利用i节点表的信息和间接参照,抽出与文件内的各块对应的块地址。生成部132将块地址连续的块集结成连续区域。生成部132生成表示有针对各连续区域的开始地址和尺寸的表。读出部134读出非易失性存储器108中所存储的固件程序,暂时保存在易失性存储器106中。所读出的固件程序是接下来要备份的固件程序。分割部136将存储在易失性存储器106中的固件程序分割。另外,分割部136将分割了的多个块集结,以使得适合于在生成部132中集结的连续区域。通过这样的处理,固件程序被与在生成部132中生成的各连续区域对应地分割成多部分。写入部138基于在生成部132中生成的表,按照从开始地址起长及尺寸的各连续区域,分别将在分割部136中分割的固件程序写入HDD104中。即,不使连续区域的地址变更地将被分割成多部分的固件程序写入HDD104中。其结果,i节点表那样的管理信息所示的块地址也不被改变。向HDD104写入固件程序,相当于对固件程序进行备份。图14是表示本发明实施例2的引导加载器116所进行的写入步骤的流程图。取得部130对构成在ext2文件系统上的超级块进行解析(S100),取得块尺寸等必要的信息。取得部130进行组描述符的解析(S102),取得i节点表ID等必要的信息。取得部130查找目录项,取得备份用文件的i节点信息(S104)。生成部132利用i节点表的信息和间接参照,抽出与文件内的各块对应的块地址,生成表示连续区域的开始地址和尺寸的表(S106)。读出部134从非易失性存储器108向易失性存储器106读出固件(S108)。写入部138从易失性存储器106读出备份用固件,按各 连续区域写入成在HDD104中的备份文件(S110)。通过本发明的实施例,针对预先由应用程序等生成的同尺寸的文件,生成表示有与连续区域对应的开始地址和尺寸的表,并按照表来执行写入处理,故能缩短备份时间。此夕卜,由于是按照表来执行写入处理,故在HDD内存储备份用数据时也能高速地进行写入处理。另外,由于是按照表来执行写入处理,故能与使用了文件系统的应用程序的处理共存。此外,虽然不支持文件系统的引导加载器写入文件较困难,但由于是利用预先排列的同尺寸的文件的块地址进行写入,故能实现与文件系统上的应用程序的处理的共存。在上述说明中,说明了分割部136和写入部138相分离的情况,但在实际的处理中,当然也可以通过在易失性存储器106和HDD 104之间进行数据传输(复制)的API(Application Program Interface :应用程序接口)实现,或者准备函数,通过使指定的地址偏移来实现。(实施例3)本发明的实施例3相当于接着实施例2的动作而执行实施例I的动作的情况。即,实施例3相当于利用由实施例2的动作存储在HDD中的备份文件,更新非易失性存储器的固件程序的情况。这样的固件程序的更新也可以说是固件程序的刷新(recovery)。实施例3的处理装置100是与图I同样的类型,实施例3的引导加载器116是与图7同样的类型。在此,以与之前实施例的差异为中心进行说明。备份用的固件程序在文件系统上通过实施例2中的处理而被保存在HDD104中。取得部130解析构成在图I的HDD104中的ext2文件系统上的超级块和组描述符。取得部130查找目录项,再次取得备份用文件的i节点信息。即,取得部130从将备份用的固件程序分割成多个块而存储的HDD 104再次取得表示有各块的地址的管理信息。生成部132利用在取得部130中取得的管理信息、即i节点表的信息和间接参照,抽出与备份用的固件程序内的各块对应的块地址。生成部132将块地址连续的块集结成连续区域。生成部132再次生成表示有针对各连续区域的开始地址和尺寸的表。读出部134基于在生成部132中再次生成的表,按从开始地址起长及尺寸的各连续区域,读出被分割地存储在HDD 104中的备份用的固件程序。读出部134将所读出的固件程序暂时存储在易失性存储器106中。
写入部138从易失性存储器106读出备份用的固件程序,写入到非易失性存储器108中。S卩,写入部138通过在读出部134中读出的备份用的固件程序,来刷新被存储在非易失性存储器108中的这之前的固件程序。此外,分割部136在实施例3中不进行动作。图15是表示本发明实施例3的引导加载器116所进行的写入步骤的流程图。取得部130对构成在ext2文件系统上的超级块进行解析(S130),取得块尺寸等必要的信息。取得部130进行组描述符的解析(S 132),取得i节点表ID等必要的信息。取得部130查找目录项,取得升级文件的i节点信息(S134)。生成部132利用i节点表的信息和间接参照,抽出与文件内的各块对应的块地址,生成表示连续区域的开始地址和尺寸的表(S136)。读出部134按照各连续区域从HDD104读出备份用固件,暂时保存到易失性存储器106中(S138)。写入部138从易失性存储器106读出备份用固件,写入到非易失性存储器108中(S140)。通过本发明的实施例,生成表示有与HDD中所保存的更新用的固件程序内的连续区域对应的开始地址和尺寸的表,并按照表来执行读出处理,故能缩短固件程序的刷新时 间。此外,由于生成了表,故即使是不支持文件系统的引导加载器来更新被保存在非易失性存储器中的固件程序时,也能缩短刷新时间。(实施例4)本发明的实施例4同实施例2 —样,相当于将非易失性存储器中所存储的固件程序暂时保存到HDD中的情况。在实施例4中,在将固件程序保存到HDD时,文件信息也被更新。实施例4的处理装置100是与图I同样的类型,实施例4的引导加载器116是与图7同样的类型。在此,以与之前实施例的差异为中心进行说明。写入部138同实施例2 —样,基于在生成部132中生成的表,按从开始地址起长及尺寸的各连续区域,将在分割部136中分割后的固件程序写入到HDD104中。此时,写入部138对关于应写入HDD104的固件程序的文件信息中的属性、文件名、更新日期时间的至少
一者进行更新。图16是表示本发明实施例4的引导加载器116所进行的写入步骤的流程图。图16的步骤160至步骤170与图14的步骤100至步骤110相同。写入部138将文件信息中的属性、文件名、更新日期时间的至少一者更新(S172)。通过本发明的实施例,将文件信息中的属性、文件名、更新日期时间的至少一者更新,故能够留下更新完成的证据。此外,由于通过更新文件信息中的属性、文件名、更新日期时间的至少一者来更新文件系统上的数据,故从应用程序也能确认更新。(实施例5)本发明的实施例5相当于将在实施例2中使用的表和在实施例3中使用的表共通化的情况。即,实施例5在将存储在非易失性存储器中的固件程序作为备份文件暂时保存到HDD中的情况、和通过使用暂时保存在HDD中的备份文件来更新存储在非易失性存储器中的固件程序的情况下,使表共通化。通过这样的处理,能削减用于生成表的时间。实施例5的处理装置100是与图I同样的类型,实施例5的引导加载器116是与图7同样的类型。在此,以与之前实施例的差异为中心进行说明。同实施例2 —样,在使非易失性存储器108中所存储的固件程序存储到HDD104中时,取得部130确认HDD104或非易失性存储器108中是否保存有已生成的表。如果未保存有表,则取得部130和生成部132通过执行与实施例2同样的处理来生成表。另一方面,若保存有表,则取得部130和生成部132省略实施例2中的处理,读出部134读出非易失性存储器108中所存储的固件程序,暂时保存到易失性存储器106中。同实施例3 —样,在使HDD104中所存储的备份用的固件程序存储到非易失性存储器108中时,取得部130也确认HDD104或非易失性存储器108中是否保存有已生成的表。在此,表只要在过去使非易失性存储 器108中所存储的固件程序存储于HDD104时、或者使HDD104中所存储的固件程序存储到非易失性存储器108中时已被生成即可。若未保存有表,则取得部130和生成部132通过执行与实施例3同样的处理来生成表。另一方面,若保存有表,则取得部130和生成部132省略实施例3中的处理,读出部134基于所保存的表,按从开始地址起长及尺寸的各连续区域,读出被分割地存储在HDD104中的备份用的固件程序。这样,生成部132通过再次使用已生成的表,来省略表的生成处理。图17是表示本发明实施例5的引导加载器116所进行的写入步骤的流程图。如果有已存在的表(S190的Y),则读出部134读出表(S192)。如果没有已存在的表(S190的N),则取得部130解析超级块(S194)。步骤194至步骤206与图14的步骤100至步骤110相同。图18是表示接着图17的引导加载器116的写入步骤的流程图。如果有已存在的表(S220的Y),则读出部134读出表(S222)。如果没有已存在的表(S220的N),则取得部130解析超级块(S224)。步骤224至步骤236与图15的步骤130至步骤140相同。根据本发明的实施例,通过使表共通化,能缩短备份数据的更新处理时间,并能缩短使用备份数据的刷新的处理时间。此外,由于是读出已存在的表,故能削减用于生成表的时间。此外,由于是读出已存在的表,故能降低处理量。(实施例6)本发明的实施例6相当于已在实施例I中生成了表的情况下,不新生成表,而是利用已生成的表的情况。实施例6的处理装置100是与图I同样的类型,实施例6的引导加载器116是与图7同样的类型。在此,以与之前实施例的差异为中心进行说明。同实施例I一样,在使HDD104中所存储的更新用的固件程序存储到非易失性存储器108中时,取得部130确认HDD104或非易失性存储器108中是否保存有已生成的表。如果未保存有表,则取得部130和生成部132通过执行与实施例I同样的处理来生成表。另一方面,如果保存有表,则取得部130和生成部132省略实施例I中的处理,读出部134基于所保存的表,按从开始地址起长及尺寸的各连续区域,读出被分割地存储在HDD104中的更新用的固件程序。此外,也可以使得即使保存有表,取得部130也确认表的生成日期时间,若是在预定期间前生成的表,则取得部130和生成部132执行与实施例I同样的处理。SP,仅在表比预定期间新时利用该表即可。图19是表示本发明实施例6的引导加载器116所进行的写入步骤的流程图。如果有已存在的表(S250的Y),则读出部134读出表(S252)。如果没有已存在的表(S250的N),则取得部130解析超级块(S254)。步骤254至步骤266与图11的步骤10至步骤20相同。根据本发明的实施例,由于是读出已存在的表,故能削减用于生成表的时间。此夕卜,由于用于生成表的时间被削减,故能缩短固件程序的更新时间。此外,在想要使用相同的更新用的固件程序再次试行处理的情况下、或在生产时预先进行写入那样的情况下,能缩短处理期间。以上基于实施例说明了本发明。本领域技术人员当理解该实施例仅是例示,其各构成要素和各处理过程的组合可以有各种各样的变形例,并且这样的变形例也包含在本发明的范围内。实施例I至7的任意组合也是有效的。通过本变形例,能得到基于实施例I至7的任意组合的效果。在实施例I至7中,引导加载器116是以固件程序为处理对象的。但不限于此,例如引导加载器116也可以以固件程序以外的文件作为处理对象。通过本变形例,能在各种各样种类的文件的读出处理及写入处理中适用本发明。在实施例I至7中,作为HDD104中的文件系统,是以ext2文件系统为说明对象 的。但不限于此,例如作为HDD104中的文件系统,也可以使用ext2以外的文件系统ext3。通过本变形例,能对各种各样种类的文件系统适用本发明。〔标号说明〕100处理装置、102处理器、104HDD、106易失性存储器、108非易失性存储器、110装卸式存储器、112调谐器、114CPU、116引导加载器、118网络、120服务器、130取得部、132生成部、134读出部、136分割部、138写入部。〔工业可利用性〕通过本发明,能缩短引导加载器所进行的文件读写的处理延迟。
权利要求
1.一种处理装置,其特征在于,包括 取得部,从能将文件分割成多个块存储的存储装置取得表示有构成上述文件的各块的地址的管理信息, 生成部,从在上述取得部中取得的管理信息中抽出各块的地址,并将地址连续的块集结成连续区域,由此生成表示有针对各连续区域的开始地址和尺寸的表, 读出部,读出非易失性存储器中所存储的数据,以及 写入部,基于在上述生成部中生成的表,将上述数据分割到从开始地址至尺寸所决定的结束地址的各连续区域,将分割后的数据以维持管理信息所示的构成上述文件的各块的地址的方式写入上述存储装置。
2.如权利要求I所述的处理装置,其特征在于, 上述取得部从将文件分割成多个块地存储的上述存储装置中再次取得表示有各块的地址的管理信息; 上述生成部从在上述取得部中再次取得的管理信息中抽出各块的地址,并将地址连续的块再次集结成连续区域,由此再次生成表示有针对各连续区域的开始地址和尺寸的表; 上述读出部基于在上述生成部中再次生成的表,按从开始地址起至尺寸所决定的结束地址的各连续区域,分别读出构成被分割地存储在上述存储装置中的上述文件的各块的数据; 上述写入部将在上述读出部中读出的上述各块的数据写入上述非易失性存储器中。
3.如权利要求I所述的处理装置,其特征在于, 上述写入部在将分割后的数据写入上述存储装置时,更新上述存储装置中所存储的文件信息中的属性、文件名、更新日期时间的至少一者。
4.一种处理装置,其特征在于,包括 取得部,从将第I固件程序分割成多个块地存储的存储装置中取得表示有各块的地址的管理信息, 生成部,从在上述取得部中取得的管理信息中抽出各块的地址,并将地址连续的块集结成连续区域,由此生成表示有针对各连续区域的开始地址和尺寸的表, 读出部,基于在上述生成部中生成的表,按从开始地址至尺寸所决定的结束地址的各连续区域,读出被分割地存储在上述存储装置中的第I固件程序,以及 写入部,通过在上述读出部中读出的第I固件程序来更新非易失性存储器中所存储的第2固件程序。
5.如权利要求4所述的处理装置,其特征在于, 上述读出部在以第I固件程序的一部分为读出对象时,基于在上述生成部中生成的表,仅读出与读出对象对应的块。
6.如权利要求5所述的处理装置,其特征在于, 上述读出部通过将连续区域按顺序连接起来而生成虚拟的地址,并在检测出读出对象的一部分数据的始端和终端位于哪个连续区域的虚拟地址内后,调整开始地址和尺寸。
7.如权利要求I至6的任一项所述的处理装置,其特征在于, 上述生成部通过再次使用已生成的表,来省略表的生成。
8.一种写入方法,其特征在于,包括从能将文件分割成多个块存储的存储装置取得表示有构成上述文件的各块的地址的管理信息的步骤, 从取得的管理信息中抽出各块的地址,并将地址连续的块集结成连续区域,由此生成表示有针对各连续区域的开始地址和尺寸的表的步骤, 读出被存储在非易失性存储器中的数据的步骤,以及 基于所生成的表,将上述数据分割到从开始地址至尺寸所决定的结束地址的各连续区域,将分割后的数据以维持管理信息所示的构成上述文件的各块的地址的方式写入上述存储装置的步骤。
9.一种写入方法,其特征在于,包括 从将第I固件程序分割成多个块地存储的存储装置中取得表示有各块的地址的管理信息的步骤, 从所取得的管理信息中抽出各块的地址,并将地址连续的块集结成连续区域,由此生成表示有针对各连续区域的开始地址和尺寸的表的步骤, 基于所生成的表,按从开始地址至尺寸所决定的结束地址的各连续区域,读出被分割地存储在上述存储装置中的第I固件程序的步骤,以及 通过所读出的第I固件程序来更新非易失性存储器中所存储的第2固件程序的步骤。
10.一种用于使计算机执行以下步骤的程序 从能将文件分割成多个块存储的存储装置取得表示有构成上述文件的各块的地址的管理信息的步骤, 从取得的管理信息中抽出各块的地址,并将地址连续的块集结成连续区域,由此生成表示有针对各连续区域的开始地址和尺寸的表的步骤, 读出被存储在非易失性存储器中的数据的步骤,以及 基于所生成的表,将上述数据分割到从开始地址至尺寸所决定的结束地址的各连续区域,将分割后的数据以维持管理信息所示的构成上述文件的各块的地址的方式写入上述存储装置的步骤。
11.一种用于使计算机执行以下步骤的程序 从将第I固件程序分割成多个块地存储的存储装置中取得表示有各块的地址的管理信息的步骤, 从所取得的管理信息中抽出各块的地址,并将地址连续的块集结成连续区域,由此生成表示有针对各连续区域的开始地址和尺寸的表的步骤, 基于所生成的表,按从开始地址至尺寸所决定的结束地址的各连续区域,读出被分割地存储在上述存储装置中的第I固件程序的步骤,以及 通过所读出的第I固件程序来更新非易失性存储器中所存储的第2固件程序的步骤。
全文摘要
取得部(130)从能将文件分割成多个块存储的存储装置取得表示有各块的地址的管理信息。生成部(132)从所取得的管理信息抽出各块的地址,并将地址连续的块集结成连续区域,由此生成表示有针对各连续区域的开始地址和尺寸的表。读出部(134)读出被存储在非易失性存储器中的文件。分割部(136)将读出的文件分割成多个块。写入部(138)基于表,按从开始地址起长及尺寸的各连续区域,以维持管理信息所示的地址的方式将分割后的文件写入存储装置。
文档编号G06F12/00GK102792283SQ201180011299
公开日2012年11月21日 申请日期2011年2月16日 优先权日2010年2月26日
发明者户波淳一郎 申请人:Jvc建伍株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1