固件升级中的自动备份存储制造技术

技术编号:2919807 阅读:181 留言:0更新日期:2012-04-11 18:40
更新在设备(40)中当前是第一版本(V1)的软件的方法,是通过接收并执行delta文件(D12)以升级该第一版本到第二版本(V2),软件被分割,并存储于多个定义于设备上物理存储器(48)的地址空间(211)上的存储块(201-204),包括步骤:定义与多个存储块相关联的额外存储块(212);擦除该额外存储块以定义额外存储块空间;将按delta文件确定的、用于所述多个存储块的第一存储块的被更新数据写入该额外存储块;擦除第一存储块,因此将该额外存储块空间移动一个块;并且将按delta文件确定的、用于所述多个存储块的第二存储块的被更新数据写入该第一存储块。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及用于计算机以及微处理器系统中升级软件的方法,是通过接收并执行用于目标升级的delta(变化微量)文件而进行。特别地,本专利技术涉及用于应对目标升级时可能的电力丢失的改良的解决方案。背景有多种技术是通过仅发送当前软件版本与更新的软件版本之间的差别来允许升级软件二进制码。软件特定片断的新版本上的差别典型地是源二进制码的大约1-10%左右。使用通常表示为delta文件的差别文件的过程,在当更新通过类似GPRS(通用分组无线业务)这样的低带宽载体发送时尤其有利。这种技术称为空中(Over the Air)固件升级,目前在OMA中已被标准化。以下略述一个这种类型升级如何工作的实例一个移动电话,它是待升级的由微处理器控制的设备,当前拥有软件V1。目标是将软件更新到最新发布版本V2。实施以下过程以更新移动电话上的软件1.编译并链接目标软件,V2;2.计算V1到V2的二进制码差别D12。D12包含从V1创建V2所需的所有信息;3.传输D12至目标,例如,通过GPRS;4.通过在目标上使用当前二进制码V1以及D12创建V2而使得目标设备重新闪入(re-flash),即,升级。现在仅仅通过发送小的更新包D12到目标设备,目标设备就已更新到V2。上述更新过程中关键的一步是目标升级。由于目标软件,例如,RTOS(实时操作系统)以及应用正在被重新闪入的事实,电力丢失对设备将是致命的。更新过程必须具有100%故障恢复安全性,这意味着更新过程必须在未预期的电力失败之后能够继续进行下去。现有技术中用于实施失效保险能力的方法被称为2阶段担保(commit),其早已在诸如数据库之类的多种应用之中被使用。该思路是在更新过程中保留一个旧信息的拷贝。直到更新完成旧信息才被移除。这种方式下,如果更新过程中更新失败,总是可能回到最近的状态。对于使用NOR闪存的设备,存储器被分为相同大小的块,通常是64kB大小。写NOR设备时有一些特别的限制。一次只能擦除整个块,其中块中所有的位均被置为1。写可以在字节级进行,但仅可能将位状态从1变为0。NOR设备上的升级是一个块一个块进行的。为保证失败恢复,在更新块写入原始块之前每个块首先被拷贝到特定备份块。现在参考附图说明图1描述这个现有技术的过程。特定的设备软件由存储在4个存储块101-104中的4个软件块1-4组成。存储块101-104是定义在设备的物理存储器上的存储空间111中。存储块101-104被纵向描述,呈现在更新过程中的特定状态106-110中。每一列代表更新过程中一个新的状态,如图中箭头所示从左至右进行。这一过程也和delta包、状态信息以及更新应用关联,但同样为了阐明整体过程,这些就不在此阐述了。更新过程中两个软件块1和2早已被更新,这是列106所述的状态。块3将被下一个更新。为了能从潜在的电力丢失中恢复,信息需要被持久地存储。状态信息用于跟踪哪个块正在被处理,以及你当前处于哪个更新状态。另外,在新块被生成前旧块必须被保留。更新块3的过程是首先在至状态107的步骤中擦除也是定义在存储空间111上的备份块105来实现的。然后块3的数据在至状态108的步骤中从块103拷贝到备份块105。接下来块103在至状态109的步骤中被擦除,留下空的块103。最后,写过程在至状态110的步骤中在块103上进行,升级上面的数据到新块3。可替换地,新块3在备份块105上创建,而不是拷贝旧块3到备份块105。备份块105不被使用的话,块擦除之后以及新块被完全写入之前的电力丢失将是不可恢复的,原因是源块和目的块都将是不可用的。使用以上流程,通过重写上一块而总是可能从退出的地方开始着手更新并继续该更新。现有技术流程的问题是由于每一块必须被写两次以便每一块支持电力丢失的恢复,因而闪存更新中写的时间加倍了。对于NOR闪存,典型的写速度大约是200kB/s。那么写16MB图像更新上的块的时间大约是16MB*2/0.2=160秒,如果所有块都需要被更新的话。更新期间设备完全不可用,因此确保这个时间尽可能地小是非常重要的。根据更新的大小以及代码变化在新二进制图像中分布的情况,需要更新的块的数量可以不同。经验显示多数更新需要更新所有可用块中的绝大多数。有些方法可通过以将更新集中到图像中较小部分这样的方式来组织二进制图像,去减少需要更新的块的数量。但是,这些技术都非常复杂。专利技术概述本专利技术的一般目的在于提供改良的解决方案来保证软件更新过程在中断(例如由于电力丢失导致)之后是可恢复的。特别地,有一个目的在于提供一种通过使用delta文件升级软件二进制码的解决方案,它最小化了目标升级时间。依照本专利技术的第一方面,这一目的通过更新设备中当前在第一版本的软件的方法来实现,该方法接收并执行用于升级该第一版本到第二版本的delta文件,该软件被分割并存储于多个在该设备的物理存储器上的地址空间中定义的存储块,包括步骤有-定义与多个存储块相关联的额外存储块;-擦除该额外存储块以定义额外存储块空间;-将按delta文件确定的、用于所述多个存储块的第一存储块的被更新数据写入该额外存储块;-擦除第一存储块,因此将该额外存储块空间移动一个块;并且-将按delta文件确定的,用于所述多个存储块的第二存储块的被更新数据写入该第一存储块。在一个优选实施方案中,该额外存储块定义为在地址空间上与第一存储块相邻放置的存储块。有利地是,该方法包括自额外存储块起一个接一个处理该多个存储块的全部的步骤,这是通过在按delta文件确定的升级过程中,在地址空间中从下一存储块起写入数据到该多个存储块其中之一,直到该多个存储块全部都在地址空间上被移转一步而进行的。在一个实施方案中,该方法包括反转在地址空间上写入存储块的顺序的步骤,从所述自第一版本至第二版本的升级,到自所述第二版本至第三版本的第二升级。优选地,该方法包括步骤有-所述设备在接收并执行delta文件之前与一服务器相连接,并传达与当前地址空间状态有关的信息,取决于所述地址空间中该额外块的当前位置,该地址空间状态确定何种delta文件适用于升级所述软件,其中第一delta文件类型适合在地址空间中以一种顺序升级所述存储块上当前的软件,且第二delta文件适合在地址空间中以反转顺序升级所述存储块上当前的软件;-从所述服务器上下载适用的delta文件类型的delta文件至所述设备;并且-使用该适用的delta文件升级所述软件。在一个实施方案中,该方法包括根据在按delta文件确定的写入过程中数据在存储块间的移动,在用于所述软件的引导代码(boot code)中修改该地址空间中的开始地址的步骤。依照本专利技术的第二方面,所述目的由一个计算机程序产品解决,其用于在计算机控制的电子设备中更新设备上当前是第一版本的软件,该设备包括接收并执行用于升级第一版本到第二版本的delta文件的装置,该软件被分割并存储于定义在设备的物理存储器上的地址空间中的多个存储块,该计算机程序产品包括被设计用于使设备执行以下步骤的可执行计算机程序代码-对所述多个存储块定义一个额外存储块;-擦除该额外存储块以定义额外存储块空间;-将按delta文件确定的、用于所述多个存储块的第一存储块的被更新数据写入该额外存储块;-擦除第一存储块,因此将该额本文档来自技高网...

【技术保护点】
用于更新在设备(40)中当前是第一版本(V1)的软件的方法,通过接收并执行一个delta文件(D12)以升级该第一版本到一个第二版本(V2),该软件被分割并存储于多个存储块(201-204)中,该存储块在该设备中物理存储器(48)的地址空间(211)上定义,该方法包括步骤:-定义与所述多个存储块相关联的额外存储块(212);-擦除该额外存储块以定义额外存储块空间;-将按所述delta文件确定的、用于所述多个存储块中的第一存储块的被更新数据写入该额外存储 块;-擦除所述第一存储块,因此将该额外存储块空间移动一个块;并且-将按所述delta文件确定的、用于所述多个存储块中的第二存储块的被更新数据写入该第一存储块。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:P荣
申请(专利权)人:索尼爱立信移动通讯股份有限公司
类型:发明
国别省市:SE[瑞典]

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

1