CN1742262A - 用于产生差分数据的装置和方法、用于恢复更新后数据的装置和方法、及其程序 - Google Patents

用于产生差分数据的装置和方法、用于恢复更新后数据的装置和方法、及其程序 Download PDF

Info

Publication number
CN1742262A
CN1742262A CNA2003801092227A CN200380109222A CN1742262A CN 1742262 A CN1742262 A CN 1742262A CN A2003801092227 A CNA2003801092227 A CN A2003801092227A CN 200380109222 A CN200380109222 A CN 200380109222A CN 1742262 A CN1742262 A CN 1742262A
Authority
CN
China
Prior art keywords
data
renewal
differential
scope
zone
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2003801092227A
Other languages
English (en)
Inventor
田中伸明
饭田显太郎
足立贵之介
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1742262A publication Critical patent/CN1742262A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

在存储器中,即使当用来存储待更新数据的可更新区域因为其他区域的存在而不连续时,数据更新也可以在小容量存储器中以正确而简单的计算过程被有效执行。差分数据产生和发送单元(110)具有编码区域信息文件(115),相应于差分数据恢复单元(120)中的数据存储器里的编码区域位置信息。差分数据恢复单元(120)具有恢复部件(124),在所述恢复部件(124)中,使用编码区域信息文件(115)创建重写地址,参照由重写地址指定的参照范围,并且使用差分数据和未更新的数据来恢复更新的数据。因此,除可以防止错误地参照指定区域外,还可以防止错误地参照其他区域,不需要由恢复侧进行地址转换。更新的数据能够以较少数量的简单步骤被正确地恢复。

Description

用于产生差分数据的装置和方法、 用于恢复更新后数据的装置和方法、及其程序
技术领域
本发明涉及一种数据更新方法,该方法利用差分数据,在装置自身的内部更新数据。本发明还涉及到一种用于产生差分数据的装置和方法,一种用于恢复更新后数据的装置和方法,及其程序,这些用于数据更新方法。
背景技术
终端装置中至少部分装置的操作是由基于预定程序的处理器操作来执行的,所述终端装置例如个人计算机、个人数字助理(PDA)和移动电话,它们要经常进行所谓的更新,通过所谓的更新,包含对象程序的数据的版本被更新以改进程序。当更新这样的数据的版本时,记录在可重写存储介质,例如快闪ROM或硬盘中的更新前的软件数据等(以下称为“更新前数据”)就会被软件数据等(以下称为“更新后数据”)的另一版本(通常是新的版本)重写入。在这种情况下,可以简单地用更新后数据代替更新前数据,但是经常的情况是,在更新前数据和更新后数据之间的差分数据被产生,并且利用从基于差分数据的更新前数据产生的更新后数据来执行重写入。
一个已被提出的这样的数据更新方法的例子就是,通过例如网络的通信信道来传送用于进行更新的数据,从而进行数据更新的方法。在这种情况下,使用程序,从而发送侧装置比较更新前数据和更新后数据,提取差分,以便只传送差分数据,并且接收侧终端装置从已存在于装置中的更新前数据和传送的用于更新数据的差分数据中恢复更新后数据(例如,见专利参考文献1)。
当在实践中使用上述利用差分数据的数据更新技术时,存在一种情况,其中,更新前的整个数据和更新后的整个数据不被比较以提取出差分,但是整体提取出的差分被分为了一些部分(称为“块”)(例如,非专利参考文献1)。应该注意的是,前述非专利参考文献1中的一种详细的差分提取技术在非专利参考文献2中有所说明。
这里,图11至图12解释了在非专利参考文献2中说明的差分提取技术的要点。该差分提取技术被称作块移动算法,其中更新前数据和更新后数据进行比较以搜索匹配的数据串,并且这个匹配的数据串被拷贝,以使得作为移动数据从更新前数据移动到更新后数据,而非匹配数据串被附加地写入,以成为作为添加数据的数据串,于是就产生了差分数据。
图11示出用于差分数据提取的伪代码。在这段伪代码中,(p,q,1)是移动邻近数据的命令,表示来自更新前数据的地址p的1(1)字节应当被移动到更新后数据的地址q中。地址p1到p3表示更新前数据的地址。当更新前数据在存储器中的时候,p1到p3是存储器地址和更新前数据的头地址之间的差分。当文件中有更新前数据时,p1到p3的距离可以由距文件开始处的距离表示。地址q1到q3表示更新后数据的地址,其含义与更新前数据中的p1到p3类似。
图12展示了数据的一个例子,图12(A)中展示了更新前数据,图12(B)中展示了更新后数据,图12(C)中展示了它们各自之间的差分数据。在如图12(A)和(B)所示的更新前数据和更新后数据的情况下,从图11中所示的伪代码的输出为(p2,q2,2)(p3,q3,2)(p1,q1,3),如图12(C)所示。作为差分数据,该命令被传送到接收侧终端装置上,并且通过向终端装置中如图12(A)所示的更新前数据施加之,就能得到如图12(B)所示的更新后数据。
诸如上述的数据更新方法的使用使得差分数据被传送得更小,并且使得接收侧终端装置能够基于小量的差分数据恢复并产生更新后数据,以更新数据。
另外,像在前述非专利参考文献2中所描述的那样,当产生差分数据而不比较整个数据时,可以通过比较每一个块来缩短提取差分的时间,在块中数据被以预定单位划分。在更新前数据和更新后数据之间的差分较小,并且大部分的更新前数据和大部分更新后数据在相同的块中的情况下,通过仅参照如上所述以块为单位的一部分数据,差分提取的计算复杂度可以大大降低。在这种情况下,把数据划分到块中所引起的差分数据量的增加也不会很大,并且差分数据可以保持较小。
另一方面,下面的方法也是已知的了。在移动穿过块的数据量很大,而仅通过块间一对一的比较来进行差分提取不能使差分数据足够小的情况下,不进行一对一的比较,但是多个先前及随后的块要与将被重写入的块中的更新后数据进行比较,并且产生差分数据。当参照多个更新前数据中的先前及随后的块时,更新后数据就被恢复。这种方法在前述的非专利参考文献1中进行了说明。通过以这种方式参照先前及随后的块,甚至对于穿过块剧烈移动的数据,也可以将数据从更新前数据拷贝到更新后数据,而且差分数据的量还能被进一步降低。
(专利参考文献1)
JP-A-8-255104(图7)
(非专利参考文献1)
James J.Hunt,Kiem-Phong Vo,and Walter F.Tichy,“Deltaalgorithms:An Empirical Analysis”,ACM Transactions of Sof tware Engineering andMethodology,ACM(Association for Computing Machinery),April,1998,vol.7-2,pp.192-214.(James J.Hunt,Kiem-Phong Vo,和Walter F.Tichy,“德耳塔算法:经验分析”ACM软件工程与方法论学报,ACM(计算机械协会),1998年4月,7-2卷,192-214页。)
(非专利参考文献2)
Walter F.Tichy,“The String-to-String Correction Probrem withBlock Moves”,ACM Transaction on Computer Systems,ACM(Associationfor Computing Machinery),November 1984,vol.2-4,pp.309-321.(WalterF.Tichy,“以块移动的串对串校正问题”,ACM计算机系统学报,ACM(计算机械协会),1984年11月,2-4卷,309-321页。)
然而,前述的常规的例子中的数据更新方法都假定一般的计算机为终端装置来接收差分数据等用来更新,及执行数据更新,它们并没有考虑到利用嵌入式设备,例如移动电话和移动信息终端,这些设备在硬件的资源,诸如存储器等上有很多限制。
如移动电话的嵌入式设备具有一些特殊特征,如下所述。
(1)更新程序时,如果试图在被用作工作区域或数据存储区域的例如RAM和快闪ROM的存储器中,在保持更新前数据的同时,将更新后数据从存储更新前数据的区域存储到另一区域,则很多情况下不能得到足够的存储区域来存储所有的更新后数据。
(2)近来的设备中,像快闪ROM那样的可重写的非易失性存储器经常拥有混合区域:保持更新的数据的区域,诸如装置的程序等,(也称为“可更新区域”或“代码区域”);以及保持用户在使用期间存储的数据的区域,该区域并非在数据更新时重写入的对象(也称为“不可更新区域”或“用户区域”)。
如果像前述常规的例子中那样的数据更新方法被使用到具有上述特殊特征的设备中,将发生如下问题。
首先,因为存储器没有足够的空间存储更新前数据和更新后数据,因此更新时就不能保存更新后数据。另外,如果试图将更新后数据写入在恢复更新后数据的同时更新前数据被存储的区域,则利用差分数据进行恢复时所参照的更新前数据的内容将被改变,这将禁止恢复被正确进行。
图13是一幅图表,释明了当同时进行恢复更新后数据和写入更新后数据时产生的问题。这里,下面描述数据更新操作,其中,作为不可更新区域的用户区域501和503、以及作为混合在可重写非易失性存储器500中的可更新区域的代码区域502和504,如上面所述被混合。正如图中所释明的那样,假设代码区域502和504中的块a-g将被更新。
在这种情况下,当执行数据更新时,在参照范围512内参照更新前数据(图中所述例子中的块b),其开始处为存储器地址510中的重写地址511,更新后数据基于差分数据、在更新后数据被写入写范围513(块b)的同时被恢复。这时,参照范围512和写范围513彼此交迭,参照范围512内的数据在恢复操作和写操作期间发生改变;这就使得不可能恢复更新后数据。
在数据被写入快闪ROM的时候,擦除一个整个的块以写入数据是必要的,从这种观点出发,当参照某块时恢复该块是很困难的。
在使用通过比较更新前数据和更新后数据而提取出来的差分数据来恢复更新后数据的时候,参照没有改变的更新前数据是必要的。如同在计算机内执行数据更新的情况,前述的问题在恢复更新后数据和保存更新后数据到与更新前数据所在区域不同的区域的情况下是不会发生的;但是,如图13所示,在如下情况下,即存储器容量等有限制以及更新前数据需要重写入同一区域内更新后数据,则像前述的常规例子中那样的数据更新方法就不能像其原本那样适用了。
其次,如在常规的例子中描述的那样,在通过参照多个先前及随后的块来恢复更新后数据的情况下,如果作为不可更新区域的用户区域和作为可更新区域的代码区域被混合,且代码区域不连续,或者在代码区域内块大小不同的块被混合,则不能执行正确的恢复。
最近的嵌入式设备在规模上已经变得更大更复杂,像上面描述的那样,根据其存储器的排列和使用,有时可以容纳不连续的代码区域和大小不一致的块。
如果不通过逐块比较,而是通过比较多个先前及随后的块,在产生恢复数据的时候,具有同样大小的块是不连续的,则有差分提取装置解释待更新的区域为连续的,并因此而提取差分。在恢复数据期间,如果更新后数据是基于这个差分数据,通过参照多个先前及随后的块而恢复的,则可以参照除了为了差分提取而被参照的数据之外的数据,存在数据恢复不能被正确执行的风险。
图14是图表,用来解释在作为可更新区域的代码区域不连续的情况下的问题。这里,下面描述对于代码区域502和504中的块a-g的数据更新操作,所述代码区域502和504处于这样的状态,其中,用户区域501和503是不可更新区域,代码区域502和504是可更新区域,它们在可重写非易失性存储器500内被混合,就像图13中一样。
如图14(A)中所示,在更新前数据540被一致和连续块大小划分,且根据常规方法比较多个块以执行差分提取的情况下,在更新前数据540的文件中的位置550,在更新前数据和更新后数据之间,参照范围551关于块b被比较和参照,同时,参照范围552关于块d被比较和参照。当恢复更新后数据时,如图14(B)所示,在可重写非易失性存储器500的地址510中,参照范围531关于块b被参照,同时参照范围532关于块d被参照。这时,用户区域503关于块d被参照,造成参照目标的内容在提取差分的时间和恢复时间之间不匹配的部分533和553,数据不能被正确恢复。另外,还有一种可能性,由于用户区域和代码区域之间的差别没有被识别出来,因此数据也被写入用户区域。
为了避免数据恢复中参照范围位置的不匹配,可以设想到,在用户区域部分插入和布置哑数据561和562,以便于更新前数据具有与布置在可重写非易失性存储器500上的排列相同的排列,如图15(A)和(B)所示,还可以设想到利用布置的更新前数据560来执行差分提取。在这种情况下,在存储器的更新前数据560的地址570上,在更新前数据和更新后数据之间,参照范围571关于块b被比较和参照,参照范围572关于块d被比较和参照。
当区别于哑数据562的用户区域503在恢复更新后数据时被参照的时候,由于哑数据562在差分提取的时候关于块d被参照,因此这种方法也创建部分533和573,其中参照目标的内容不匹配并因此而不能正确执行数据恢复。
因此,例如移动电话的嵌入式设备具有如前(1)和(2)所述的特殊特征,并且在硬件方面有许多限制,使得难以如其原本那样应用常规的数据更新方法。由于这个原因,这里需要一种数据更新的方法,能使用更少的硬件资源执行对更新后数据的恢复和写入,并能正确更新待更新的数据,而不改变将不更新的数据。
本发明已经实现了解决前述问题,其目标是提供一种产生差分数据的装置和方法,一种恢复更新后数据的装置和方法及其程序,这些被配置以进行重写入和更新数据,诸如从更新前数据到存储器中相同区域的更新后数据的程序,即使对于在诸如存储容量的硬件资源上有限制的设备。
本发明的另一个目标是提供一种产生差分数据的装置和方法、一种恢复更新后数据的装置和方法、及其程序,这些被配置为,即使在存储器内混合不可更新区域和可更新区域,以及更新前数据和更新后数据的存储区域不连续,或者是具有不同块大小的存储区域被混合的情况下,能够以正确而简单的计算程序有效地执行数据更新。
发明内容
依据本发明第一方面,提供一种差分数据产生装置,用来产生差分信号,以将数据从更新前数据重写入到更新后数据中,包括:区域设置装置,基于关于更新前数据和更新后数据的存储区域信息,设置差分提取时更新前数据的参照范围,所述存储区域信息包含数据恢复侧数据存储装置内存储区域的排列信息;差分提取装置,通过比较和参照在设置的参照范围内的更新前数据和更新后数据来产生差分数据;以及差分文件产生装置,用于产生差分文件,其中,包含当在数据存储侧数据存储装置内恢复数据时目标数据的地址信息的头信息被添加到已产生的差分数据中。
这就使得差分提取装置能基于存储区域信息仅参照单个连续可更新区域,并产生差分数据,例如,即使当存储待更新数据的可更新区域和存储用户数据等的不可更新区域被混合,并且可更新区域在数据恢复侧的数据存储装置中不连续时。此外,恢复侧装置也有能力基于差分文件中的头信息,在只参照单个连续可更新区域的时候,从更新前数据和差分数据正确恢复更新后数据。
依据第二方面,提供存储区域信息保持装置来保存存储区域信息;当数据恢复侧的数据存储装置拥有存储区域来将更新前数据或更新后数据以块为单位存储时,存储区域信息包括存储区域的地址信息,所述存储区域存储数据恢复侧上数据存储装置中的更新前数据和更新后数据,以及在把包含具有数据存储装置中的连续地址和相同块大小的一个或多个块的存储区域定义为以块为单位存储更新前数据和更新后数据的存储区域中的一个可更新区域的情况下,存储区域信息也包括每一可更新区域的开始地址、结束地址和块大小。
这就使得当更新前数据和更新后数据包含多个块,并且以块为单位执行差分数据产生时,能够在基于存储区域信息只参照单个连续可更新区域时能够产生差分数据,并能防止这样的缺陷,即在产生差分数据的过程中,在其它区域上进行参照。
依据第三方面,如果更新前数据和更新后数据被划分到多个块,以对应于数据恢复侧上的数据存储装置中的存储区域,则区域设置装置设置参照范围,使得包括目标块和一个或多个先前及随后的块的多个块基于存储区域信息而被参照为差分提取时的更新前数据的参照范围;如果从目标块得到的参照范围没有落在可更新区域内,则区域设置装置重新在参照范围和可更新区域内设置区域,作为参照范围。
从而,当更新前数据和更新后数据包含多个块,并且在参照包括目标块和先前及随后的块在内的多个块的情况下执行差分数据产生的时候,能够在仅参照基于存储区域信息的单个连续可更新区域而不参照其他区域的情况下,产生差分数据。另外,在这种情况下,通过参照多个块可以降低差分数据的数据量。因此,恢复侧装置能够在参照多个块的时候正确执行数据恢复,即使数据存储装置内的可更新区域不连续。
依据第四方面,头信息包括地址信息,该地址信息指示在数据恢复侧数据存储装置内进行数据恢复时的更新后数据的写范围。
依据第五方面,地址信息包括在数据恢复侧数据存储装置内进行数据恢复时的更新前数据的参照范围。
因此,通过利用头信息,恢复侧装置能够参照差分数据和更新前数据适当地执行更新后数据的恢复处理,以及恢复的更新后数据的写处理,并能够避免诸如参照其他区域、和将更新后数据写入在恢复时已经在参照范围内的块的问题。从而,可以进行从更新前数据到更新后数据的正确的数据重写入。此外,这些操作被执行而无需存储区域信息。
依据本发明第六方面,提供一种差分数据产生方法,用来产生差分数据,以把数据从更新前数据重写入到更新后数据,包括:区域设置步骤,基于关于更新前数据和更新后数据的存储区域信息,设置差分提取时的更新前数据的参照范围,其中所述存储区域信息包括数据恢复侧上数据存储装置内的存储区域的排列信息;差分产生步骤,通过比较和参照在已设置的参照范围内的更新后数据和更新前数据来产生差分数据;差分文件产生步骤,产生差分文件,其中,包含当在数据存储侧数据存储装置内恢复数据时目标数据的地址信息的头信息被添加到已产生的差分数据中。
因此,例如,即使当存储待更新数据的可更新区域和存储用户数据等的不可更新区域在数据恢复侧数据存储装置内被混合,并且可更新区域不连续时,在参照基于存储区域信息的单个连续可更新区域的时候,差分数据能被产生。另外,当参照基于存储区域信息的单个连续可更新区域时,恢复侧装置也能正确地从更新前数据和差分数据恢复更新后数据。
依据第七方面,如果数据恢复侧的数据存储装置具有存储区域,该存储区域以块为单位存储更新前数据和更新后数据,并且如果存储区域信息包括存储数据恢复侧数据存储装置中更新前数据和更新后数据的存储区域的地址信息,并且在把包含具有数据存储装置中的连续地址和相同块大小的一个块或多个块的存储区域定义为以块为单位存储更新前数据和更新后数据的存储区域中的一个可更新区域的情况下,存储区域信息也包括每一可更新区域的开始地址、结束地址和块大小;在区域设置步骤,如果更新前数据和更新后数据被划分到多个块,以对应于数据恢复侧上的数据存储装置中的存储区域,则设置参照范围,使得包括目标块和一个或多个先前及随后的块的多个块基于存储区域信息而被参照为差分提取时的更新前数据的参照范围;如果从目标块得到的参照范围没有落在可更新区域内,则重新在参照范围和可更新区域内设置区域,作为参照范围。
这样,当更新前数据和更新后数据包含多个块,并且在参照包括目标块和先前及随后的块在内的多个块而执行差分数据产生时,可以在仅参照基于存储区域信息的单个连续可更新区域而不参照其他区域的情况下,产生差分数据。此外,在这种情况下,差分数据的数据量能通过参照多个块来降低。所以,恢复侧装置能在参照多个块的时候正确执行数据恢复,即使数据存储装置内的可更新区域不连续。
依据本发明第八方面,提供用于执行在第六或第七方面提出的差分数据产生方法的过程的程序。
通过执行该程序,即使当不可更新区域和可更新区域被混合,存储更新前数据和更新后数据的区域不连续,或者具有不同块大小的存储区域在恢复侧的数据存储装置中被混合时,数据更新能以简单的计算过程正确而有效地执行。
依据本发明第九方面,提供更新后数据恢复装置,用于通过使用经由通信装置接收到的差分数据而从更新前数据恢复更新后数据,从而重写入数据,包括:数据存储装置,用来存储更新前数据和更新后数据;接收装置,接收经由通信装置发送的差分数据和数据恢复时数据存储装置内目标数据的地址信息;数据恢复装置,当参照基于地址信息指定的数据存储装置中参照范围内的更新前数据时,从更新前数据和差分数据中恢复更新后数据;缓冲装置,保持恢复的更新后数据;以及数据写装置,将保持的更新后数据写入基于地址信息指定的数据存储装置的写范围。
因此,例如,即使当用来存储待更新数据的可更新区域和用来存储用户数据等的不可更新区域被混合,并且可更新区域在数据存储装置内不连续的时候,数据恢复装置可以仅参照基于地址信息的单个连续可更新区域来恢复更新后数据。在这种情况下,恢复时的地址翻译处理是不必要的,恢复处理可以以更少而简单的处理步骤进行。
依据第十方面,地址信息基于存储区域信息而生成,存储区域信息包括关于更新前数据和更新后数据的数据存储装置内存储区域的排列信息,并且被保持在产生差分数据的差分数据产生装置内;地址信息包括在数据存储装置内数据恢复时关于更新后数据的写范围。
依据第十一方面,地址信息包括在数据存储装置内数据恢复时关于更新前数据的参照范围。
因而,参照差分数据和更新前数据而对更新后数据的恢复处理,以及对已恢复的更新后数据的写处理,能利用小容量存储器,基于地址信息被适当地执行,并且可以防止诸如参照其他区域,和将更新后数据写入在恢复时间仍然在参照范围内的块中的问题。从而,从更新前数据到更新后数据的正确的数据重写可以在单个数据存储器中进行。
依据第十二方面,数据存储装置通过以块为单位将数据划分到多个块中而存储更新前数据,数据存储装置的存储区域为,通过保持在差分数据产生装置中的存储区域信息,把包含具有数据存储装置中的连续地址和相同块大小的一个块或多个块的存储区域定义为一个可更新区域;数据恢复装置,在参照包括目标块和一个或多个先前及随后的块的数据存储装置中的多个块作为基于地址信息的参照范围的情况下,恢复更新后数据;如果从目标块得到的参照范围没有落在可更新区域内,那么当重新参照作为参照范围的在参照范围内和可更新区域内的区域时,数据恢复装置恢复更新后数据。
这样,在更新前数据和更新后数据包含多个块,并且当参照包括目标块和先前及随后的块在内的多个块时执行更新数据的恢复的情况下,即使可更新区域在数据存储装置内不连续的时候,在基于地址信息参照单个连续的可更新区域而不参照其他区域的情况下,数据恢复能被正确地执行。
依据第十三方面,缓冲装置有多个区域,所述区域包括环缓冲型缓冲器,并且分别保持已经逐块恢复的更新后数据;如果关于在缓冲装置内保持的更新后数据的数据存储装置中的写范围落在通过数据恢复装置数据恢复时的参照范围之外,那么数据写装置就把可适用的更新后数据从缓冲装置写入到数据存储装置内,其后,指令缓冲装置释放其中已写入更新后数据的缓冲装置内的保持的区域。
因此,通过采用环缓冲型缓冲装置,数据存储装置的存储器容量能被最小化,而且对于更新后数据的恢复处理和对于恢复的更新后数据的写处理能被容易而适当地执行;此外,从更新前数据到更新后数据的正确的数据重写可以在单个数据存储器内进行。另外,缓冲装置的存储器容量也能被降低。例如,缓冲装置内的每一区域的大小可以被设置成与数据存储装置内的最大块大小相等。另外,缓冲装置内的区域的数量(块的数量)n具有关系k=2n-1,其中恢复时参照的块的数量为k,因此,以块的数量n=(k+1)/2提供区域是足够的。
依据本发明第十四方面,提供一种更新后数据恢复方法,用于通过使用经由通信装置接收的差分数据而从更新前数据恢复更新后数据,来重写数据,包括:接收步骤,接收通过通信装置传送的差分数据和数据存储装置内目标数据的地址信息,所述数据存储装置用于在数据恢复时存储更新前数据;数据恢复步骤,当参照基于地址信息指定的数据存储装置上的参照范围内的更新前数据时,从更新前数据和差分数据恢复更新后数据;缓冲步骤,保持恢复的更新后数据;以及数据写步骤,把保持的更新后数据写入到基于地址信息指定的数据存储装置上的写范围。
因此,例如,即使当存储待更新数据的可更新区域和存储用户数据等的不可更新区域被混合,而且数据存储装置内的可更新区域不连续的时候,在仅参照基于地址信息的单个连续可更新区域的情况下,可以进行更新后数据的恢复。在这种情况下,在恢复时,诸如地址翻译的处理是不必要的,而且恢复处理可以以更少而简单的处理步骤进行。
依据第十五方面,地址信息基于存储区域信息产生,存储区域信息包括关于更新前数据和更新后数据的在数据存储装置中存储区域的排列信息,并被保持在产生差分数据的差分数据产生装置中;地址信息包括当在数据存储装置内数据恢复时关于更新后数据的写范围;如果数据存储装置通过将数据以块为单位划分到多个块来存储更新前数据,则数据存储装置的存储区域为,通过保持在差分数据产生装置中的存储区域信息,把包含具有数据存储装置中的连续地址和相同块大小的一个块或多个块的存储区域定义为一个可更新区域,在数据恢复步骤中,在参照包括目标块和一个或多个先前及随后的块的数据存储装置中的多个块作为基于地址信息的参照范围的情况下,恢复更新后数据;如果从目标块得到的参照范围没有落在可更新区域内,那么当重新参照作为恢复数据过程中参照范围的在参照范围内和可更新区域内的区域时,恢复更新后数据。
依据第十六方面,其中,地址信息包括当在数据存储装置中数据恢复时,关于更新前数据的参照范围。
因此,在更新前数据和更新后数据包含多个块,并且在参照包括目标块和先前及随后的块在内的多个块时执行更新数据的恢复的情况下,即使当数据存储装置内的可更新区域不连续时,当参照基于地址信息的单个连续可更新区域,而不参照其他区域的时候,数据恢复能被正确地执行。
依据第十七方面,在缓冲步骤中,使用包含环缓冲型缓冲器和具有多个区域的缓冲装置,已经被逐块恢复的更新后数据被存储在缓冲装置的多个区域的一个内;在数据写步骤中,如果在缓冲装置中保持的关于更新后数据的数据存储装置中的写范围落在数据恢复步骤中当数据恢复时的参照范围之外,那么适用的更新后数据被从缓冲装置写入到数据存储装置中,其后,缓冲装置被指令释放其中已被写入更新后数据的保持区域。
因此,通过采用环缓冲型缓冲装置,数据存储装置的存储器容量能被最小化,并且对于更新后数据的恢复处理和对于恢复的更新后数据的写处理能被容易而适当地执行;此外,可以在单个数据存储器中进行从更新前数据到更新后数据的正确的数据重写。
依据本发明第十八方面,提供用于执行在第14方面到第17方面中的任意一个中提出的更新后数据恢复方法的过程的程序。
通过执行该程序,即使当不可更新区域和可更新区域被混合,更新前数据和更新后数据的存储区域不连续,或者拥有不同块大小的存储区域在恢复侧的数据存储装置中被混合的时候,数据更新能以简单的计算过程被正确而有效地执行。
附图说明
图1是框图,表示根据本发明实施例的实现数据更新方法的数据更新装置的功能结构;
图2是根据本发明实施例的代码区域信息文件的内容和数据存储器的结构的一个例子,其中,分别地,(A)示出代码区域信息的内容,(B)示出数据存储器的结构;
图3是视图,示出了根据本发明实施例的在合并文件中关于一个块的差分文件的格式的一个例子;
图4是视图,示出了根据本发明实施例的数据存储器中代码区域的恢复块b的地址和参照范围;
图5是流程图,示出了根据本发明实施例在差分数据产生和发送部件中的差分数据产生的操作过程;
图6是流程图,示出了根据本发明实施例在差分数据恢复部件中更新后数据恢复的操作过程;
图7逐步示出通过图6中所示的更新后数据恢复算法恢复数据中的操作的具体例子;
图8逐步示出通过图6中所示的更新后数据恢复算法恢复数据中的操作的具体例子;
图9是图形,表示在应用根据本发明实施例的差分数据产生方法的情况下,参照块数量和差分数据大小之间的关系;
图10逐步示出根据常规方法恢复数据中的操作的具体例子,作为本发明实施例的比较例;
图11是视图,示出用于差分数据提取的伪代码;
图12示出执行数据更新过程中的数据的一个例子,其中,分别地,(A)示出更新前数据,(B)示出更新后数据,(C)示出它们之间的差分数据;
图13是视图,用来解释在用常规数据更新方法,在一个可重写的非易失性存储器中执行数据更新时,同时执行更新后数据的恢复和写入的情况下出现的问题;
图14是视图,用来解释在用常规数据更新方法,在一个可重写的非易失性存储器中执行数据更新时,作为可更新区域的代码区域不连续的情况下出现的问题;以及
图15是视图,用来解释在用常规数据更新方法,在一个可重写的非易失性存储器中执行数据更新时,插入哑数据来避免恢复数据过程中参照范围的位置的差别的情况下出现的问题。
图中的参照数字如下:101表示更新前数据,102表示更新后数据,105表示合并文件,110表示差分数据产生和发送部件,111表示数据存储部件,112表示差分提取部件,113表示发送缓冲器,114表示发送部件,115表示代码区域信息文件,116表示代码区域设置部件,117表示控制部件,118表示区域信息存储部件,120表示差分数据恢复部件,121表示数据存储器,122表示接收部件,123表示接收缓冲器,124表示恢复部件,125表示恢复缓冲器,126表示存储器写部件,127表示控制部件,130表示网络,151表示重写地址,152表示参照范围,153表示写范围,201和203表示用户区域,202和204表示代码区域。
具体实施方式
下面,将参照附图说明本发明的优选实施例。
图1是框图,示出根据本发明实施例的实现数据更新方法的数据更新装置的功能结构。作为一个数据更新装置的例子,本实施例描述了在存储在诸如移动电话这样的终端装置中、而且包含操作程序等的数据版本将被更新的情况下的结构和操作的例子。
本实施例的数据更新装置包括差分数据产生和发送部件110,以及通过有线或无线通信网络130连接的差分数据恢复部件120;差分数据产生和发送部件110在服务器装置中提供,差分数据恢复部件120在诸如移动电话这样的终端装置里提供。该数据更新装置用于这样的情况:通过经由例如通过移动通信服务的无线通信网络的网络,将差分数据从服务器装置传送到终端装置,来经由通信线路,在终端装置内部更新数据。
差分数据产生和发送部件110包含:数据存储部件111,由存储更新前数据101和更新后数据102的硬盘等组成;差分提取部件112,从更新前数据101和更新后数据102之间提取差分,并产生差分数据;发送缓冲器113,存储发送合并文件105,其中合并产生的差分数据;以及发送部件114,通过网络130,把诸如合并文件105这样的数据发送到差分数据恢复部件120。差分数据产生和发送部件还包括:区域信息存储部件118,存储代码区域信息文件115,所述代码区域信息文件115包含接收侧终端装置的存储器中的关于代码区域(可更新区域)的块排列信息;代码区域设置部件116,基于代码区域信息文件115的内容,在差分提取过程中设置参照范围,并向差分提取部件112指令该参照范围;以及控制部件117,控制每一部件。
这里,代码区域设置部件116、区域信息存储部件118以及控制部件117实现在所附权利要求书中所述的区域设置装置的功能。代码区域信息文件115相应于在权利要求书中所述的存储区域信息,区域信息存储部件118相应于在权利要求书中所述的存储区域信息保持装置。差分提取部件112和控制部件117实现在权利要求书中所述的差分提取装置的功能。差分提取部件112、发送缓冲器113及控制部件117实现在权利要求书中所述的差分文件产生装置的功能。
差分数据恢复部件120包含数据存储器121,此存储器由用于存储诸如待更新程序这样的数据的可重写非易失性存储器(快闪ROM等)组成。差分数据恢复部件120还包含:接收部件122,接收从差分数据产生和发送部件110发送过来的诸如合并文件105的数据;接收缓冲器123,存储接收的合并文件105;恢复部件124,当参照合并文件105和数据存储器121内的更新前数据时,逐块恢复更新后数据;恢复缓冲器125,临时保持恢复的更新后数据;存储器写部件126,将存储在恢复缓冲器125中的更新后数据写入数据存储器121中;以及控制部件127,控制每一部件。
这里,数据存储器121相应于在权利要求书中所述的数据存储装置,恢复缓冲器125相应于在权利要求书中所述的缓冲装置。接收部件122和接收缓冲器123实现权利要求书中所述的接收装置的功能。恢复部件124和控制部件127实现权利要求书中所述的数据恢复装置的功能。存储器写部件126和控制部件127实现在权利要求书中所述的数据写装置的功能。
本实施例展示了这样一种情况,其中,保持诸如程序这样的被更新的数据的代码区域(可更新区域)202、204,和保持诸如用户数据这样的不被更新的数据的用户区域(不可更新区域)201、203,在数据存储器121中被混合,所述数据存储器121例如用户区域201、代码区域202、用户区域203、代码区域204...此外,代码区域202和代码区域204有不同的块大小。
接下来,将描述在数据更新时的数据流的概况。更新前数据101和更新后数据102以连续数据的状态,被分别存储在差分数据产生和发送部件110的数据存储部件111中。特别地,即使当代码区域202和204如图1中所示,在终端装置的数据存储器121中不连续的时候,相应于代码区域202和204的多个代码区域103和104中的数据,以合并的状态被存储。当更新前数据和更新后数据被存储在存储器中时,各自的代码区域103和104指示具有相同大小的连续块组。
这里,假设a1到g1关于更新前数据101被存储,a2到g2关于更新后数据102被存储,作为分别相应于终端装置的数据存储器121中的代码区域的块a、b、c、d、e、f和g的多个块的数据。因此,更新前数据101、更新后数据102、差分数据的合并文件105等被以块为单位划分。当差分数据恢复部件120的数据存储器121中进行大批擦除的时候,块是所使用的单位。应当指出的是,更新前数据101和更新后数据102从另一装置等提供。
基于从控制部件117来的指令,差分提取部件112从更新前数据101和更新后数据102之间提取差分。这时,差分提取部件112产生差分数据,所述差分数据包含命令,用于指示下列;根据先前提到的块移动算法,存储在数据存储部件111中的更新前数据101和更新后数据102被比较,以搜索匹配的数据串,并且当不匹配数据串的新数据串作为添加数据被附加地写入的时候,匹配的数据串从更新前数据被原本地拷贝到更新后数据,以作为移动数据被移动。这种用于产生差分数据的方法在先前提到的非专利参考文献1和2中被详细描述。本实施例描述了在这种情况下的例子,其中,通过比较和参照包括待更新块的先前或随后的块在内的多个块,差分数据被逐块产生。
然后,差分提取部件112将头信息附加到逐块产生的差分数据,并把它们合并到合并文件105中,作为将以预定单位发送的数据,所述合并文件105存储在发送缓冲器113中。该合并文件105为差分数据a12到g12合并,所述差分数据a12到g12指示从更新前数据101被改变到更新后数据102的部分。然后,该合并文件105通过网络130从发送部件114被发送。
在差分数据恢复部件120,从差分数据产生和发送部件110传送过来的合并文件105通过接收部件122被接收,并且存储到接收缓冲器123中。当参照接收缓冲器123中的合并文件105和数据存储器121中的更新前数据时,恢复部件124恢复更新后数据。本实施例描述了这样情况下的例子,其中,通过参照包括待更新块的先前及随后的块在内的多个块,更新后数据被逐块恢复。然后,恢复部件124把已经逐块恢复的更新后数据临时存储到恢复缓冲器125中以累积。
恢复缓冲器125具有被划分为多个(图中的例子是两个)区域125a和125b的结构,且每一区域的大小和数据存储器121中的最大块的大小相等。该恢复缓冲器125由环缓冲系统管理,并且数据的写和读被依次执行。环缓冲器的细节在Kiyoshi Ishihata,1989,“Arugorizumu to Deta Kozo[Algorithm andData Structure(算法和数据结构)]” Iwanami Koza Software Science,IwanamiShoten,pp.46-48中有详细描述。
数据存储器121在数据更新开始以前存储更新前数据。在完成一个块的恢复时,恢复部件124将数据存储器121内的参照范围向着有较大地址的块的那一侧移动一个块。然后,存储器写部件126把已经恢复并保持在恢复缓冲器125中的更新后数据写入不再被参照的数据存储器121中的块中。当完成把更新后数据写入到数据存储器121时,恢复缓冲器125中存储更新后数据的区域被释放。
接下来,参照图2,描述代码区域信息文件115的内容和数据存储器121的结构。
图2(A)展示的是代码区域信息文件115的内容的例子。应当指出的是,在图中所示的例子中,行号161是为了便于解释而给出的,在实际的代码区域信息文件115中是不存在的。图2(B)展示的是数据存储器121的结构的例子。
许多当前的诸如终端装置的嵌入式设备,例如移动电话,使用诸如快闪ROM的可重写非易失性存储器来存储软件程序等的数据。当读时,快闪ROM以与在正常RAM中类似的方式,仅通过指定地址而被参照;然而,当改变数据时,需要这样的处理,其中,以称为块的单位,一次擦除数据,然后写入新的数据。即使在单个设备内,块大小可以依据地址空间的部分而不同。另外,当利用快闪ROM时,存在存储代码(程序)的代码区域和存储用户数据的用户区域以块为单位被分离开的情况。
在图2(B)的例子中,存储器内的地址150中,地址0x1000到0x5000-1和地址0x7000到0x8800-1是代码区域202和204,而地址0x0到0x1000-1和地址0x5000到0x7000-1是用户区域201和203。代码区域202对应于地址0x1000到0x5000-1,从块a到块d的四个块。代码区域204对应于地址0x7000到0x8800-1,从块e到块g的三个块。分别地,用户区域201对应于地址0x0到0x1000-1,用户区域203对应于地址0x5000到0x7000-1。
代码区域信息文件115指示关于代码区域202和204的块排列的信息。一个代码区域以跟在保留字“codearea,(代码区域)”后面的括在括号{}内的范围表示,保留字“codearea,”代表代码区域。括号{}内不同元素的值以“head,(头)”、“tail,(尾)”和“blocksize,(块大小)”来指示,“head,”代表代码区域的开始地址,“tail,”代表代码区域的结尾地址,“blocksize,”代表代码区域中块的大小。
在图2(A)的例子中,第一代码区域202以第1行到第5行表示。从“head”中可以明白,代码区域的开始地址是0x1000。从“tail”中也可以明白,代码区域的结尾地址是0x5000-1。另外,从“blocksize”可以明白,代码区域中所有块的大小是0x1000。同样地,可以明白,从第6行到第10行指示的第二代码区域204,开始地址为0x7000,结尾地址为0x8800-1,块大小为0x800。
参照图3解释合并文件105的格式。合并文件105为,其头信息被附加到通过比较数据存储器121中每个块的更新前数据和更新后数据而产生的差分数据中,把数据以预定单位或把整个数据合并到文件中。应当指出的是,这样的其中对于每个块把头信息添加到差分数据中的文件也被称为“差分文件”。
图3示出了一个块的差分文件的格式的一个例子。一个块的差分文件格式170由块数据长度171、重写地址172和块差分数据173组成。块数据长度171指示一个块的差分文件的总长度。重写地址172通过参照代码区域信息文件115而产生,指示其中存储恢复的更新后数据的数据存储器121内区域的头地址。块差分数据173是由差分提取部件112提取和产生的对于一个块的差分数据。应当指出,差分文件可以被发送到数据恢复侧,从而在前面提到的重写地址172中,除了指示恢复的更新后数据的写范围的地址信息之外,还包括指示恢复数据时的更新前数据的参照范围的地址信息,作为添加到差分数据中的头信息。
另外,参照图4解释图2(B)中所示的数据存储器121的结构和图3中所示的差分文件格式之间的关系。图4示出了当恢复数据存储器121中的代码区域202的块b时的地址和参照范围。该例子示出了这种情况,其中,全部的3个块,即目标块、一个先前的块和一个随后的块,在差分数据产生和更新后数据恢复时被参照。
当恢复块b时,该块b、一个先前的块a和一个随后的块c被参照。因此,在数据存储器121内的地址150之中的参照地址152是从块a到块c,也就是0x1000到0x5000-1。另一方面,恢复的更新后数据被写入相同的块b,并且因此,写范围153是块b,也就是从0x2000到0x3000-1。当写更新后数据时,重写地址151是写范围153的头地址,也就是0x2000。如图3所示,该重写地址151被提供在差分文件格式170内的块差分数据173的前面,并且基于从代码区域设置部件116获得的代码区域排列信息,被差分提取部件112附加。
接下来,参照图5描述差分数据产生和发送部件110的操作。图5是流程图,示出了本实施例的差分数据产生和发送部件内的差分数据产生的操作过程。图5中的流程图包含双循环,包括处理所有代码区域的外循环和处理每个代码区域内的所有块的内循环。应当指出,这里的描述解释了这样的情况,其中,当产生差分数据时,全部的3个块,即目标块、一个先前的块和一个随后的块在更新前数据和更新后数据中被参照。
外循环(步骤S401到S402)执行在代码区域信息文件115中定义的对所有代码区域的处理。
控制部件117确认待处理的任意代码区域是否存留在代码区域信息文件115中(步骤S401)。这里,如果没有存留代码区域,则操作结束。如果存留了代码区域,则代码区域设置部件116被指令去从代码区域信息文件115中读一个代码区域(步骤S402)。然后,控制部件117执行涉及在从步骤S403到步骤S409的下一内循环中已经被读的一个代码区域的处理,此后,处理回到步骤S401,继续执行外循环。
内循环(步骤S403到步骤S409)执行涉及在步骤S402已经被读的一个代码区域的操作。
首先,控制部件117判断在当前被处理的代码区域中,是否存留任何还没有被处理过的块(步骤S403)。这里,如果未存留未被处理的块,则处理回到步骤S401并移动到下一代码区域的处理。如果存留未被处理的块,则处理进行到步骤S404。
接下来,控制部件117从还没有通过差分提取来产生差分数据的块组之中取出头块,即一个有最小开始地址的块(步骤S404)。然后,控制部件117判断取出的块是否是代码区域的头(步骤S405)。这里,如果该块是代码区域的头,则处理进行到步骤S406,在此,差分提取部件112被指令,从而当参照当前正被处理的块和一个随后的块,总共2个块时,执行差分生成(步骤S406)。然而,如果在代码区域里只有一个块,则仅参照当前正被处理的块。接下来,当完成步骤S406时,控制部件117返回到步骤S403,重复该处理。
另一方面,如果控制部件117在步骤S405判断出该块不是代码区域的头,则处理进行到步骤S407,判断当前正被处理的块是否是代码区域的末端(步骤S407)。这里,如果该块是代码区域的末端,则差分提取部件112被指令,从而当参照一个先前的块和当前正被处理的块,总共2个块时,执行差分生成(步骤S408)。接下来,当完成步骤S408时,控制部件117返回到步骤S403,重复该处理。
在步骤S407,如果当前正被处理的块不是代码区域的末端,则差分提取部件112被指令,从而当参照当前正被处理的块、一个先前的块和一个随后的块,总共3个块时,执行差分生成(步骤S409)。
当通过程序实现时,外循环和内循环能通过指示迭代的程序实现,诸如C语言或Java语言中的for语句或while语句。
在外循环中,图2(A)中所示的代码区域信息文件115中的关键字“codearea”及其后面的括号里被括住的部分,在步骤S402,作为一个代码区域从其开始处起依次被读。在步骤S401,还要判断:在代码区域信息文件115中存留跟在已读的代码区域之后的代码区域,还是没有存留的代码区域,以及在最后已读的代码区域之后直到文件末端没有数据(只有诸如空格、换行、跳格和注释这样的没有意义的数据)。
在内循环里,处理在外循环中已经在步骤S402被读的一个代码区域。如图2(A)所示,代码区域的头地址、结尾地址和块大小被指示在代码区域信息文件115中。例如,当通过使用C语言、Java语言等的程序实现内循环时,内循环能通过for语句实现,其中,头地址是一个变量的初始值,结尾地址是用于判断终止的值,块大小是随着一次迭代(重复)而增加的变量。
接下来,参照图6解释差分数据恢复部件120的操作。图6是流程图,示出了在本实施例中,差分数据恢复部件中的更新后数据恢复的操作过程。应当指出,这里的描述解释了这种情况,其中,在使用差分文件恢复更新后数据时,参照更新前数据的目标块、一个先前的块和一个随后的块,总共3个块。
控制部件127从接收缓冲器123的开始处(相当于一个头块)取出差分文件(步骤S501)。该差分文件包括了每个块的差分数据和重写地址(写范围)的信息。应当指出,虽然重写地址包括了指示关于恢复的更新后数据的写范围的信息,但是它也可以和写范围一起,包括指示数据恢复中关于更新前数据的参照范围的信息。接下来,恢复部件124被指令,从而当参照数据存储器121的参照范围时,执行对于一个块的恢复(步骤S502)。然后,恢复的更新后数据被写入恢复缓冲器125(步骤S503)。
接下来,判断在接收缓冲器123中是否存留任何差分文件(步骤S504)。这里,如果没有存留差分文件,则处理进行到步骤S510,并且写入当前正被处理的恢复缓冲器125的内容被写入由数据存储器121的写目的地地址指示的块内(步骤S510)。另一方面,如果存留差分文件,则处理进行到步骤S505,且接收缓冲器123的开始处的差分文件被取出(步骤S505)。
然后,恢复部件124被指令,从而当参照取出的差分文件和数据存储器121的参照范围时,执行对于一个块的数据恢复(步骤S506)。此后,恢复的更新后数据被写入恢复缓冲器125中的空余区域(步骤S507)。接下来,一次以前被恢复、并且被写入到恢复缓冲器125中的更新后数据,根据关于数据的写目的地地址,被写入到数据存储器121中的可应用块中(步骤S508)。随后,在步骤S508已经被参照过的恢复缓冲器125的区域被释放(步骤S509)。此后,处理返回到步骤S504,并向下一差分文件的处理移动。
这里,参照图7和图8特别描述当通过图6所示的算法进行数据恢复时的操作。这里,为了简单,该描述释明了这样的情况,其中,操作被施加于由数据存储器121的4个连续的块a-d组成的代码区域。
首先,如图7(A)所示,块a的更新后数据被恢复。此时,块a是代码区域的头,因此,参照范围是a-b,即目标块a连同随后的块b。基于该参照范围的块a-b内的更新前数据a1和b1,以及差分数据a12,更新后数据a2被恢复,并存储在恢复缓冲器125的一个区域125a(第一区域)内。
随后,如图7(B)中所示,块b的更新后数据被恢复。此时的参照范围变成a-c,即目标块b连同先前和随后的块a和c。基于该参照范围的块a-c中的更新前数据a1、b1和c1,以及差分数据b12,更新后数据b2被恢复,并存储在恢复缓冲器125的其他区域(第二区域)125b中。
然后,如图7(C)所示,关于块a的更新后数据被写。此时的写范围是目标块a,累积在恢复缓冲器125的第一区域125a中的更新后数据a2被写入到数据存储器121的块a中。此后,如图7(D)中所示,其中存储已经写入的更新后数据a2的恢复缓冲器125的第一区域125a被释放。
接下来,如图7(E)所示,块c的更新后数据被存储。此时的参照范围是b-d,即目标块c与先前和随后的块b和d。基于该参照范围内关于块b-d的更新前数据b1、c1和d1,以及差分数据c12,更新后数据c2被恢复,并存储在已经被释放的恢复缓冲器125的第一区域125a内。
然后,如图7(F)所示,块b的更新后数据被写。此时的写范围是目标块b,累积在恢复缓冲器125的第二区域125b中的更新后数据b2被写入到数据存储器121的块b中。此后,如图8(A)中所示,存储已经写入的更新后数据b2的恢复缓冲器125的第二区域125b被释放。
接下来,如图8(B)中所示,关于块d的更新后数据被恢复。此时,由于块d是代码区域的末端,所以参照范围是c-d,目标块d和先前的块c。基于该参照范围的块c-d内的更新前数据c1、d1、以及差分数据d12,更新后数据d2被恢复,并存储在恢复缓冲器125的第二区域125b内。
然后,如图8(C)中所示,关于块c的更新后数据被写。此时的写范围是目标块c,累积在恢复缓冲器125的第一区域125a中的更新后数据c2被写入数据存储器121的块c中。此后,如图8(D)中所示,其中存储已经写入的更新后数据c2的恢复缓冲器125中的第一区域125a被释放。
接下来,如图8(E)中所示,关于块d的更新后数据被写。此时的写范围是目标块d,累积在恢复缓冲器125的第二区域125b中的更新后数据d2被写入到数据存储器121的块d中。
应当指出,虽然前述的实施例已经展示了这样的例子,其中,当参照当前正被处理的目标块及其先前和随后的块时,执行差分数据产生和更新后数据恢复,但是,也可以进一步增加被参照的块的数量。在这种情况下,必须修改图5中所示的步骤S405和S407中的条件分支,因为,在产生差分数据时,差分提取部件112在参照扩大的参照范围时,执行差分提取,另外,针对在代码区域的开始处和末端的附近的块,改变参照范围的限度。
通过以这种方法参照多个块,即使对于在块上剧烈移动的数据,也可以把数据从更新前数据拷贝到更新后数据中,并且差分数据的量能进一步降低。图9是图形,示出了在前面描述的差分数据产生方法被应用到嵌入式设备中的情况下,参照块数量和差分数据大小之间的关系。该图9示出,通过使用采样数据,计算差分数据的数据量关于参照块数量的增加而发生的改变,从而得到的结果,在所述采样数据中,更新前数据和更新后数据是16M字节,每一个块的大小是128字节。
当仅参照一个块恢复一个块时,差分数据的所有数据量之和大约为6.5M字节,压缩率大约为40%。在这种情况下,只对于一个块的恢复缓冲器将是足够的。类似地,如前面的例子中,当参照包括一个先前的和一个随后的块在内的总共3个块时,差分数据的所有数据量之和变成和大约3.5M字节一样小,压缩率大约为22%。在这种情况下,恢复缓冲器被准备2个块就足够了。此外,当参照包括2个先前的块和2个随后的块在内的总共5个块时,差分数据的所有数据量之和变成大约和1.7M字节一样小,压缩率大约为11%。这种情况下所要求的恢复缓冲器的区域针对3个块。从图9中可以理解,即使当被参照的块的数目增加到多于5个的时候,压缩率将不会增加很多。
这里,需要的恢复缓冲器的区域(块的数目)n示出关系k=2n-1,其中被参照的块的数目为k,因此,需要的恢复缓冲器的块的数目是n=(k+1)/2。例如,当如上所述参照块的数目是3时,应当提供关于2个块的恢复缓冲器,当参照块的数目是5时,应当提供关于3个块的恢复缓冲器。
这样,在本实施例中,代码区域信息文件115在差分数据产生和发送部件110中被提供,该代码区域信息文件115对应于差分数据恢复部件120中的数据存储器121中的代码区域的排列信息。当产生用于数据更新的差分数据时,基于代码区域信息文件115设置参照范围,对于每一个代码区域,以块为单元提取更新前数据和更新后数据之间的差分,在所述每一个代码区域中,在差分数据恢复部件120的数据存储器121中,地址连续,并且块为相同的大小。也就是,产生差分数据,从而比较和参照在具有不同块大小的代码区域上、或者其中地址不连续的代码区域上不被执行。也是在此时,基于代码区域信息文件115生成重写地址,并且由此该重写地址作为头信息被添加到差分数据中,以生成差分文件(合并文件105)。该重写地址是数据存储器121内的地址信息,包括写入已经使用差分数据而被恢复的更新后数据的写范围的信息。应当指出,重写地址还可以包括使用差分数据而恢复更新后数据的参照范围的信息。
这就使得已经接收合并文件105的差分数据恢复部件120通过参照基于合并文件105的头信息而指定的参照范围,从更新前数据和差分数据恢复更新后数据。在这种情况下,在恢复侧,诸如地址翻译这样的处理是不必要的,可以通过较少而简单的处理步骤进行更新后数据的正确恢复。
另外,当参照包括目标块在内的先前及随后的块时,差分数据产生和发送部件110产生差分数据,当参照包括目标块在内的先前及随后的块时,差分数据恢复部件120使用差分数据恢复更新后数据,从而更新后数据被写入到恢复缓冲器125中。通过分离地逐块执行差分数据的产生和更新后数据的恢复,能够提高计算处理的效率,另外,通过参照多个块,差分数据的数据量能被降低。
此外,使用环缓冲型的缓冲器作为恢复缓冲器125,在恢复后已经被累积的更新后数据之中、数据存储器121中的在恢复中还没有被参照的(已经落在参照范围之外,变得不必要的)块的更新后数据被写,以重写更新前数据。这就消除了提供分别存储更新前数据和更新后数据的存储器的需要,把数据存储器121的存储容量最小化,并且使得可以以更少的硬件资源,容易而正确地执行数据更新。另外,利用环缓冲型,恢复缓冲器125的存储容量也能被降低。
由于前面描述的实施例的构造和操作,可以得到如下有利的效果。
首先,即使在对数据存储器121的容量有限制,且数据在同一块内从更新前数据被重写到更新后数据的情况下,仅通过在RAM内提供具有数据存储器121中的最大块长度的两倍的大小(在恢复中参照3个连续的块的情况下)的恢复缓冲器125,和提供用于存储合并文件105的接收缓冲器123,数据存储器121中的数据能够被更新。
例如,这种在背景技术里提到、在非专利参考文献1和非专利参考文献2中公开的数据更新方法,假设了这样的情况,其中,对象为具有诸如硬盘的大容量存储设备的装置,并且用于存储恢复中被参照的更新前数据的区域及用于存储恢复的更新后数据的区域在存储设备中不同。另一方面,诸如移动电话的具有有限存储区域的嵌入式设备没有空余空间用于与更新前数据分离地存储恢复的更新后数据。在本实施例中,更新前数据和更新后数据被存储在快闪ROM里,但是根据成本和封装面积,很难包含快闪ROM的两倍,以存储两方面数据从而更新程序。另外,可以设想将恢复的更新后数据临时布置在RAM中,且布置的数据被写入快闪ROM的类型,但是这也难以实现,因为除非RAM的容量足够大,否则整个更新后数据不能被布置。此外,在RAM的情况下,容量的改进会导致功率消耗的增加,这是显而易见的缺点。
相反,本实施例可以用最小化的硬件资源进行数据更新。
第二,即使这样的情况下,即,存储作为更新目标的程序数据等的代码区域、和存储由用户任意存储的用户数据等的用户区域被混合,并且数据存储器121内的代码区域被不连续排列,在这种情况下,当参照多个块时,更新后数据的恢复能被正确执行。而且,因为在代码区域和用户区域之间作了区分,并且能够只对代码区域执行处理,所以在数据恢复时可以避免用户区域被参照,或者避免用户区域被写入数据。
当代码区域和用户区域被混合时,只有代码区域的数据以单个文件的形式被提供,在所述单个文件中,数据在更新程序时被合并。如图14和15中所示的常规的例子,如果当代码区域和用户数据区域被混合时使用常规的差分产生或恢复方法,则代码区域和用户区域不会被区别地识别,而且仅能通过在文件或存储器上的位置来设置参照范围和写范围。由此,差分产生时和数据恢复时之间的参照范围变得不同,数据不能被正确恢复。另外,当插入哑数据以使得更新前数据具有和布置在数据存储器121中的排列相同的排列时,在其中代码区域不连续的部分中,在差分生成时,哑数据被参照,导致与在数据恢复时待参照的用户区域的内容不同的内容,并使数据不能被正常恢复。
相反,本实施例被配置为,通过仅参照在代码区域内连续且有相同大小的块的内部,来执行差分产生和数据恢复,这使得可以正确执行更新后数据的恢复。另外,当数据恢复时,诸如地址翻译这样的处理在接收侧设备上是不必要的,使得可以用简单的处理步骤恢复更新后数据。
作为比较例,图10展示了根据常规方法的数据恢复时的操作。该比较例对应于图7和图8中所示的实施例的操作来描述。这里的描述示出了这样的情况,其中,在图中以斜线指示的用户区域602存在于数据存储器601的四个块a到d之间。
数据恢复时,基于参照范围内的块的更新前数据和差分数据,更新后数据被恢复并存储在恢复缓冲器603内,而已经被恢复的更新后数据被写入数据存储器601的写范围内的块中。在该比较例中,如图10(E)所示,当对块c执行更新后数据的恢复时,用户区域602被作为参照范围而参照,数据不能被正确恢复。
如前所述,根据本实施例,即使当数据被放置于可重写的非易失性存储器内时,当作为更新对象的代码区域和不进行数据更新主体的用户区域被混合时,或者当具有不同大小的块在同一存储器内被混合的时候,数据能够以简单的计算过程被正确地更新。特别地,通过提供代码区域信息文件和代码区域设置装置,当通过利用小存储器参照多个块的时候,其中代码区域和用户区域被混合的可重写的非易失性存储器内的数据能够被重写,并且其实践优势是有意义的。
应当指出,本发明不限于前述实施例,可以不背离其概念而作多种修改。
前述实施例使用在存储空间内连续且具有相同大小的块组作为代码区域;当数据的移动被限制在定义中代码区域的范围内的时候,这特别有效,并且差分产生和恢复能使用简单算法而被执行。
在其中数据的移动在存储空间内不连续的块之间被频繁执行的系统中,可以不管存储空间内的连续性,而通过把其中数据被移动的块组作为一个逻辑代码区域来处理,可以进行有效的差分产生或恢复。
虽然参照优选的实施例,本发明已经被详细描述,但是对于本领域技术人员,很显然,在不背离本发明的范围和精神的情况下,可以作多种改变和修改。
本申请基于2003年1月31日提交的日本专利申请No.2003-024412,其内容通过参考而被包含于此。
工业实用性
如前所述,即使通过其中诸如存储容量的硬件资源被限制的设备,本发明通过从更新前数据重写到存储器的同一区域内的更新后数据,也使得诸如程序的数据能够使被更新。另外,即使在不可更新区域和可更新区域在存储器内被混合并且更新前数据和更新后数据的存储区域不连续,或者存储器内具有不同块大小的存储区域被混合的情况下,数据更新能够以简单的计算过程,被正确而有效地执行。

Claims (18)

1.一种差分数据产生装置,用来产生差分数据,以将数据从更新前数据重写到更新后数据,包括:
区域设置装置,基于关于更新前数据和更新后数据的存储区域信息,设置差分提取时更新前数据的参照范围,所述存储区域信息包含数据恢复侧的数据存储装置内存储区域的排列信息;
差分提取装置,通过比较和参照在所设置的参照范围内的更新前数据和更新后数据,来产生差分数据;以及
差分文件产生装置,产生差分文件,在所述差分文件中,包含当在数据恢复侧的数据存储装置内恢复数据时的目标数据的地址信息的头信息被添加到已产生的差分数据中。
2.根据权利要求1所述的差分数据产生装置,包括:
存储区域信息保持装置,用来保持存储区域信息,其中
当数据恢复侧的数据存储装置具有以块为单位存储更新前数据或更新后数据的存储区域时,
存储区域信息包括存储区域的地址信息,所述存储区域存储数据恢复侧的数据存储装置中的更新前数据和更新后数据,在以块为单位存储更新前数据或更新后数据的存储区域中,把包含具有数据存储装置中的连续地址和相同块大小的一个块或多个块的存储区域定义为一个可更新区域,存储区域信息还包括每个可更新区域的开始地址、结束地址和块大小。
3.根据权利要求2所述的差分数据产生装置,其中
如果更新前数据和更新后数据被划分到多个块,以对应于数据恢复侧的数据存储装置中的存储区域,则区域设置装置设置参照范围,作为差分提取时的更新前数据的参照范围,从而基于存储区域信息,参照包括目标块和一个或多个先前及随后的块的多个块;以及
如果从目标块得到的参照范围没有落在可更新区域内,则区域设置装置重新在参照范围内和可更新区域内设置区域,作为参照范围。
4.根据权利要求1或2所述的差分数据产生装置,其中,所述头信息包括地址信息,该地址信息指示当在数据恢复侧的数据存储装置内进行数据恢复时的更新后数据的写范围。
5.根据权利要求4所述的差分数据产生装置,其中,所述地址信息包括当在数据恢复侧的数据存储装置内进行数据恢复时的更新前数据的参照范围。
6.一种差分数据产生方法,用来产生差分数据,以把数据从更新前数据重写到更新后数据,包括:
区域设置步骤,基于关于更新前数据和更新后数据的存储区域信息,设置差分提取时的更新前数据的参照范围,所述存储区域信息包含数据恢复侧的数据存储装置内存储区域的排列信息;
差分产生步骤,通过比较和参照在所设置的参照范围内的更新前数据和更新后数据,来产生差分数据;以及
差分文件产生步骤,产生差分文件,在所述差分文件中,包含当在数据恢复侧的数据存储装置内恢复数据时的目标数据的地址信息的头信息被添加到已产生的差分数据中。
7.根据权利要求6所述的差分数据产生方法,其中
如果数据恢复侧的数据存储装置具有以块为单位存储更新前数据或更新后数据的存储区域,以及
如果存储区域信息包括存储区域的地址信息,所述存储区域存储数据恢复侧的数据存储装置中的更新前数据和更新后数据,在以块为单位存储更新前数据或更新后数据的存储区域中,把包含具有数据存储装置中的连续地址和相同块大小的一个块或多个块的存储区域定义为一个可更新区域,则存储区域信息还包括每个可更新区域的开始地址、结束地址和块大小,
在区域设置步骤,如果更新前数据和更新后数据被划分到多个块,以对应于数据恢复侧的数据存储装置中的存储区域,则设置参照范围,作为差分提取时的更新前数据的参照范围,从而基于存储区域信息,参照包括目标块和一个或多个先前及随后的块的多个块;以及
如果从目标块得到的参照范围没有落在可更新区域内,则重新在参照范围内和可更新区域内设置区域,作为参照范围。
8.一种程序,用于通过计算机执行根据权利要求6或7所述的差分数据产生方法的过程。
9.一种更新后数据恢复装置,用于通过使用经由通信装置接收到的差分数据而从更新前数据恢复更新后数据,从而重写数据,包括:
数据存储装置,用来存储更新前数据和更新后数据;
接收装置,接收经由通信装置发送的差分数据和数据恢复时数据存储装置内目标数据的地址信息;
数据恢复装置,当参照基于地址信息指定的数据存储装置中参照范围内的更新前数据时,从更新前数据和差分数据恢复更新后数据;
缓冲装置,保持恢复的更新后数据;以及
数据写装置,将保持的更新后数据写入基于地址信息指定的数据存储装置的写范围。
10.根据权利要求9所述的更新后数据恢复装置,其中
所述地址信息基于存储区域信息而产生,所述存储区域信息包括关于更新前数据和更新后数据的数据存储装置内存储区域的排列信息,并且所述存储区域信息被保持在产生差分数据的差分数据产生装置内;并且
所述地址信息包括当在数据存储装置内进行数据恢复时的关于更新后数据的写范围。
11.根据权利要求10所述的更新后数据恢复装置,其中,所述地址信息包括当在数据存储装置内进行数据恢复时的关于更新前数据的参照范围。
12.根据权利要求10或11所述的更新后数据恢复装置,其中
所述数据存储装置,通过以块为单位将数据划分到多个块而存储更新前数据,所述数据存储装置的存储区域为,通过保持在差分数据产生装置中的存储区域信息,把包含具有数据存储装置中的连续地址和相同块大小的一个或多个块的存储区域定义为一个可更新区域;
所述数据恢复装置,在基于地址信息把包括目标块和一个或多个先前及随后的块的数据存储装置中的多个块作为参照范围而参照时,恢复更新后数据;以及
如果从目标块得到的参照范围没有落在可更新区域内,那么当重新把在参照范围内和在可更新区域内的区域作为参照范围而参照时,数据恢复装置恢复更新后数据。
13.根据权利要求12所述的更新后数据恢复装置,其中
缓冲装置具有多个区域,包括环缓冲型缓冲器,并且分别保持已经逐块恢复的更新后数据;以及
如果关于在缓冲装置内保持的更新后数据的数据存储装置中的写范围落在当通过数据恢复装置进行数据恢复时的参照范围之外,那么数据写装置把可适用的更新后数据从缓冲装置写入到数据存储装置,其后,指令缓冲装置释放其中已写入更新后数据的缓冲装置内的保持区域。
14.一种更新后数据恢复方法,用于通过使用经由通信装置接收的差分数据而从更新前数据恢复更新后数据,来重写数据,包括:
接收步骤,接收通过通信装置发送的差分数据、以及在存储更新前数据的数据存储装置中的当数据恢复时的目标数据的地址信息;
数据恢复步骤,当参照基于地址信息指定的数据存储装置的参照范围内的更新前数据时,从更新前数据和差分数据恢复更新后数据;
缓冲步骤,保持恢复的更新后数据;以及
数据写步骤,把保持的更新后数据写入到基于地址信息指定的数据存储装置的写范围。
15.根据权利要求14所述的更新后数据恢复方法,其中
所述地址信息基于存储区域信息而产生,所述存储区域信息包括关于更新前数据和更新后数据的数据存储装置内存储区域的排列信息,并且所述存储区域信息被保持在产生差分数据的差分数据产生装置内;
所述地址信息包括当在数据存储装置内进行数据恢复时的关于更新后数据的写范围;以及
如果所述数据存储装置通过以块为单位将数据划分到多个块而存储更新前数据,则所述数据存储装置的存储区域为,通过保持在差分数据产生装置中的存储区域信息,把包含具有数据存储装置中的连续地址和相同块大小的一个或多个块的存储区域定义为一个可更新区域,
在所述数据恢复步骤中,在基于地址信息把包括目标块和一个或多个先前及随后的块的数据存储装置中的多个块作为参照范围而参照时,恢复更新后数据;以及
如果从目标块得到的参照范围没有落在可更新区域内,那么当把在参照范围内和在可更新区域内的区域重新作为恢复数据过程中的参照范围而参照时,恢复更新后数据。
16.根据权利要求15所述的更新后数据恢复方法,其中所述地址信息包括当在数据存储装置中进行数据恢复时的关于更新前数据的参照范围。
17.根据权利要求15或16所述的更新后数据恢复方法,其中
在缓冲步骤中,使用包含环缓冲型缓冲器并且具有多个区域的缓冲装置,已经被逐块恢复的更新后数据被存储在缓冲装置的多个区域中的一个内;以及
在数据写步骤中,如果关于在缓冲装置内保持的更新后数据的数据存储装置中的写范围落在当在数据恢复步骤中进行数据恢复时的参照范围之外,那么把可适用的更新后数据从缓冲装置写入到数据存储装置,其后,指令缓冲装置释放其中已写入更新后数据的保持区域。
18.一种程序,用于通过计算机执行根据权利要求14到17中任意一个所述的更新后数据恢复方法的过程。
CNA2003801092227A 2003-01-31 2003-10-20 用于产生差分数据的装置和方法、用于恢复更新后数据的装置和方法、及其程序 Pending CN1742262A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP24412/2003 2003-01-31
JP2003024412A JP4153324B2 (ja) 2003-01-31 2003-01-31 差分データ生成装置及び方法、更新後データ復元装置及び方法、並びにプログラム

Publications (1)

Publication Number Publication Date
CN1742262A true CN1742262A (zh) 2006-03-01

Family

ID=32820762

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2003801092227A Pending CN1742262A (zh) 2003-01-31 2003-10-20 用于产生差分数据的装置和方法、用于恢复更新后数据的装置和方法、及其程序

Country Status (6)

Country Link
US (1) US20060200502A1 (zh)
EP (1) EP1589430A1 (zh)
JP (1) JP4153324B2 (zh)
CN (1) CN1742262A (zh)
AU (1) AU2003303838A1 (zh)
WO (1) WO2004068348A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008148319A1 (fr) * 2007-06-07 2008-12-11 Huawei Technologies Co., Ltd. Procédé de récupération d'image, équipement de stockage et système réseau
CN110154938A (zh) * 2018-02-16 2019-08-23 丰田自动车株式会社 车辆控制装置、程序更新方法、及存储用于更新的程序的非易失性存储介质

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949761B (zh) * 2005-10-13 2010-09-15 腾讯科技(深圳)有限公司 一种数据同步方法及其差分编码方法
US7617226B1 (en) * 2006-02-10 2009-11-10 Google Inc. Document treadmilling system and method for updating documents in a document repository and recovering storage space from invalidated documents
US8185751B2 (en) * 2006-06-27 2012-05-22 Emc Corporation Achieving strong cryptographic correlation between higher level semantic units and lower level components in a secure data storage system
JP5103807B2 (ja) * 2006-06-30 2012-12-19 富士通株式会社 制御プログラム、制御方法、情報処理装置及び情報処理システム
JP4907380B2 (ja) * 2007-02-21 2012-03-28 株式会社Access データ生成方法、データ復元方法、データ生成装置およびデータ復元装置
JP5347657B2 (ja) * 2009-03-31 2013-11-20 富士通株式会社 データ記憶プログラム、方法、及び情報処理装置
US8316057B2 (en) * 2010-12-17 2012-11-20 International Business Machines Corporation Restoring deduplicated data objects from sequential backup devices
JP5653259B2 (ja) * 2011-03-08 2015-01-14 クラリオン株式会社 更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラム
CN102693168B (zh) * 2011-03-22 2014-12-31 中兴通讯股份有限公司 一种数据备份恢复的方法、系统和服务节点
US9871698B2 (en) * 2012-11-02 2018-01-16 Nec Corporation Information processing device
JP6155769B2 (ja) * 2013-03-29 2017-07-05 富士通株式会社 ストレージ制御装置、制御プログラム及び制御方法
WO2015194027A1 (ja) * 2014-06-20 2015-12-23 株式会社日立製作所 計算機システム、データ更新方法、および仮想化サーバ
EP3252605B1 (en) * 2015-01-26 2022-04-06 Hitachi Astemo, Ltd. Vehicle-mounted control device, program writing device, program generating device and program
JP6568947B2 (ja) * 2015-09-29 2019-08-28 日立オートモティブシステムズ株式会社 車載制御装置、プログラム更新システム、及び、プログラム更新ソフトウェア
JP6609508B2 (ja) * 2016-04-27 2019-11-20 日立オートモティブシステムズ株式会社 車両用電子制御装置、プログラム更新方法
EP3572932A4 (en) * 2017-02-28 2020-12-23 Nippon Telegraph and Telephone Corporation COMMUNICATION PROCESSING DEVICE, INFORMATION PROCESSING DEVICE AND COMMUNICATION PROCESSING DEVICE CONTROL PROCESS
CN108647116A (zh) * 2018-04-13 2018-10-12 深圳大普微电子科技有限公司 数据恢复方法和存储设备
JP7265120B2 (ja) * 2019-01-10 2023-04-26 富士通株式会社 データ収集プログラム、データ収集装置およびデータ収集方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02168321A (ja) * 1988-12-22 1990-06-28 Nec Corp プログラム差分抽出方式
JPH06274384A (ja) * 1993-03-22 1994-09-30 N T T Data Tsushin Kk 実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法
JP3516362B2 (ja) * 1995-03-01 2004-04-05 富士通株式会社 共有データ処理装置及び共有データ処理システム
JP2944496B2 (ja) * 1996-01-29 1999-09-06 日本電気ソフトウェア株式会社 画像データ格納制御装置
US5832520A (en) * 1996-07-03 1998-11-03 Miller, Call, Plauck And Miller Automatic file differencing and updating system
US6775423B2 (en) * 2000-05-03 2004-08-10 Microsoft Corporation Systems and methods for incrementally updating an image in flash memory
JP4285679B2 (ja) * 2002-03-11 2009-06-24 富士通株式会社 差分転送方法、プログラム及びシステム
US6925467B2 (en) * 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008148319A1 (fr) * 2007-06-07 2008-12-11 Huawei Technologies Co., Ltd. Procédé de récupération d'image, équipement de stockage et système réseau
CN100454265C (zh) * 2007-06-07 2009-01-21 华为技术有限公司 镜像恢复方法、存储设备及网络系统
CN110154938A (zh) * 2018-02-16 2019-08-23 丰田自动车株式会社 车辆控制装置、程序更新方法、及存储用于更新的程序的非易失性存储介质
CN110154938B (zh) * 2018-02-16 2022-08-12 丰田自动车株式会社 车辆控制装置、程序更新方法、及存储用于更新的程序的非易失性存储介质

Also Published As

Publication number Publication date
JP4153324B2 (ja) 2008-09-24
WO2004068348A1 (ja) 2004-08-12
JP2004234503A (ja) 2004-08-19
EP1589430A1 (en) 2005-10-26
US20060200502A1 (en) 2006-09-07
AU2003303838A1 (en) 2004-08-23

Similar Documents

Publication Publication Date Title
CN1742262A (zh) 用于产生差分数据的装置和方法、用于恢复更新后数据的装置和方法、及其程序
CN1129848C (zh) 对非易失性存储器中的文件进行连续重写的方法
CN101515967B (zh) 一种终端固件空中下载装置及方法
CN1152287C (zh) 二进制程序转换设备和转换方法
CN100343821C (zh) 用于计算机存储器的世代动态管理的方法和装置
CN1517903A (zh) 地图数据处理装置及中心系统
CN1672150A (zh) 用于软件原子化的视图
CN1251095C (zh) 遥控程序下装系统
CN1288581C (zh) 用缩减大小的索引进行文献检索的设备
CN1645323A (zh) 以存储技术抽象方式在文件内创建文件系统
US20080040401A1 (en) Processing of compact functional diferences
EP3267308B1 (en) Application loading method and device
CN105404521A (zh) 一种增量升级方法及相关装置
CN1326132A (zh) 具有压缩指令的处理器及处理器指令的压缩方法
CN1441385A (zh) 存储卡
CN1645516A (zh) 用于闪速存储器的数据恢复设备和方法
CN1149487C (zh) 一并擦除型非易失性存储器和快速存储器的控制方法
CN1900919A (zh) 地址映射方法和映射信息管理方法及其闪速存储器
CN1858747A (zh) 一种数据存储/检索方法及系统
CN1879092A (zh) 高速缓冲存储器及其控制方法
CN1799024A (zh) 处理消息摘要指令
CN1577271A (zh) 数据的包内增量压缩的系统和方法
CN1168029A (zh) 文档管理设备,数据压缩方法和数据解压缩方法
CN1641583A (zh) 自描述软件映象更新组件
CN1498409A (zh) 非易失性存储装置及其控制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication