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

技术编号:2855398 阅读:253 留言:0更新日期:2012-04-11 18:40
一种差分数据产生装置,用来产生差分数据,以将数据从更新前数据重写到更新后数据,包括:     区域设置装置,基于关于更新前数据和更新后数据的存储区域信息,设置差分提取时更新前数据的参照范围,所述存储区域信息包含数据恢复侧的数据存储装置内存储区域的排列信息;    差分提取装置,通过比较和参照在所设置的参照范围内的更新前数据和更新后数据,来产生差分数据;以及    差分文件产生装置,产生差分文件,在所述差分文件中,包含当在数据恢复侧的数据存储装置内恢复数据时的目标数据的地址信息的头信息被添加到已产生的差分数据中。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种数据更新方法,该方法利用差分数据,在装置自身的内部更新数据。本专利技术还涉及到一种用于产生差分数据的装置和方法,一种用于恢复更新后数据的装置和方法,及其程序,这些用于数据更新方法。
技术介绍
终端装置中至少部分装置的操作是由基于预定程序的处理器操作来执行的,所述终端装置例如个人计算机、个人数字助理(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,“DeltaalgorithmsAn 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是一幅图表,释本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种差分数据产生装置,用来产生差分数据,以将数据从更新前数据重写到更新后数据,包括区域设置装置,基于关于更新前数据和更新后数据的存储区域信息,设置差分提取时更新前数据的参照范围,所述存储区域信息包含数据恢复侧的数据存储装置内存储区域的排列信息;差分提取装置,通过比较和参照在所设置的参照范围内的更新前数据和更新后数据,来产生差分数据;以及差分文件产生装置,产生差分文件,在所述差分文件中,包含当在数据恢复侧的数据存储装置内恢复数据时的目标数据的地址信息的头信息被添加到已产生的差分数据中。2.根据权利要求1所述的差分数据产生装置,包括存储区域信息保持装置,用来保持存储区域信息,其中当数据恢复侧的数据存储装置具有以块为单位存储更新前数据或更新后数据的存储区域时,存储区域信息包括存储区域的地址信息,所述存储区域存储数据恢复侧的数据存储装置中的更新前数据和更新后数据,在以块为单位存储更新前数据或更新后数据的存储区域中,把包含具有数据存储装置中的连续地址和相同块大小的一个块或多个块的存储区域定义为一个可更新区域,存储区域信息还包括每个可更新区域的开始地址、结束地址和块大小。3.根据权利要求2所述的差分数据产生装置,其中如果更新前数据和更新后数据被划分到多个块,以对应于数据恢复侧的数据存储装置中的存储区域,则区域设置装置设置参照范围,作为差分提取时的更新前数据的参照范围,从而基于存储区域信息,参照包括目标块和一个或多个先前及随后的块的多个块;以及如果从目标块得到的参照范围没有落在可更新区域内,则区域设置装置重新在参照范围内和可更新区域内设置区域,作为参照范围。4.根据权利要求1或2所述的差分数据产生装置,其中,所述头信息包括地址信息,该地址信息指示当在数据恢复侧的数据存储装置内进行数据恢复时的更新后数据的写范围。5.根据权利要求4所述的差分数据产生装置,其中,所述地址信息包括当在数据恢复侧的数据存储装置内进行数据恢复时的更新前数据的参照范围。6.一种差分数据产生方法,用来产生差分数据,以把数据从更新前数据重写到更新后数据,包括区域设置步骤,基于关于更新前数据和更新后数据的存储区域信息,设置差分提取时的更新前数据的参照范围,所述存储区域信息包含数据恢复侧的数据存储装置内存储区域的排列信息;差分产生步骤,通过比较和参照在所设置的参照范围内的更新前数据和更新后数据,来产生差分数据;以及差分文件产生步骤,产生差分文件,在所述差分文件中,包含当在数据恢复侧的数据存储装置内恢复数据时的目标数据的地址信息的头信息被添加到已产生的差分数据中。7.根据权利要求6所述的差分数据产生方法,其中如果数据恢复侧的数据存储装置具有以块为单位存储更新前数据或更新后数据的存储区域,以及如果存储区域信息包括存储区域的地址信息,所述存储区域存储数据恢复侧的数据存储装置中的更新前数据和更新后数据,在以块为单位存储更新前数据或更新后数据的存储区域中,把包含具有数据存储装置中的连续地址和相同块大小的一个块或多个块的存储区域定义为一个可更新区域,则存储区域信息还包括每个可更新区域的开始地址、结束地址和块大小,在区域设置步骤,如果更新前数据和更新后数据被划分到多个块,以对应于数据恢复侧的数据存储装置中的存储区域,则设置参照范围,作为差分提取时的更新前数据的参照范围,从而基于存储区域信息,参照包括目标块和一个或多个先前及随后的块的多个块;以及如果从目标块得到的参照范围没有落在可更新区域内,则重新在参照范围内和可更新区域内设置区域,作为参照范围。8.一种程序,用于通过计算机执行根据权利要求6或7所述的差分数据产生方法的过程。9.一种更新后数据恢复装置,用于通过使用经由通信装置接收到的差分数据而从更新前数据恢复更新后数据,从而重写数据,包括数据存储装置,用来存储更新前数据和更新后数据;接收装置,接收经由通信装置发送的差分数据和数据恢复时数据存储装置内目标数据的地址信息;数据恢复装置,当参照基于地址信息指定的数据存储装置中参照范围内的更新前数据时,从更新前数据和差分数据恢复更新后数据;缓冲装置,保持恢复的更新后数据...

【专利技术属性】
技术研发人员:田中伸明饭田显太郎足立贵之介
申请(专利权)人:松下电器产业株式会社
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1