CN101904105A - 在更新期间使用高效的块备份和块恢复的移动手持送受话器 - Google Patents

在更新期间使用高效的块备份和块恢复的移动手持送受话器 Download PDF

Info

Publication number
CN101904105A
CN101904105A CN2008801212109A CN200880121210A CN101904105A CN 101904105 A CN101904105 A CN 101904105A CN 2008801212109 A CN2008801212109 A CN 2008801212109A CN 200880121210 A CN200880121210 A CN 200880121210A CN 101904105 A CN101904105 A CN 101904105A
Authority
CN
China
Prior art keywords
piece
electronic equipment
upgrading
nonvolatile memory
nvm
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.)
Granted
Application number
CN2008801212109A
Other languages
English (en)
Other versions
CN101904105B (zh
Inventor
M·斯利茨
S-C·陈
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.)
Qualcomm Inc
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN101904105A publication Critical patent/CN101904105A/zh
Application granted granted Critical
Publication of CN101904105B publication Critical patent/CN101904105B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Transceivers (AREA)
  • Stored Programmes (AREA)

Abstract

根据本发明的实施例,一种支持对非易失性存储器的容错的更新的移动电子设备(107),该设备包括:接口电路(168),其用于无线地接收更新信息;至少一个处理器(166),其在操作中耦合到所述接口电路和非易失性存储器(111)以及易失性存储器(165),所述非易失性存储器被设置为作为块而被写入,所述至少一个处理器操作以至少执行:使用所接收的更新信息在所述易失性存储器中创建对应于所述非易失性存储器的多个现有块的多个经过更新的块;开始将所述多个经过更新的块存储到非易失性存储器中;检测所述存储的中断;为受损块计算经过更新的内容;以及将所述受损块的所计算出的经过更新的内容存储到对应的非易失性存储块中。

Description

在更新期间使用高效的块备份和块恢复的移动手持送受话器
本申请参考于2006年2月4日提交的名称为“MOBILE HANDSETEMPLOYING EFFICIENT BACKUP AND RECOVERY OF BLOCKS DURING UPDATE”的美国临时申请序列号60/765,334(代理人案号101USMD140),所述临时申请的全部主题的全部内容由此通过引用并入本申请中。
另外,本申请参考于2000年11月17日提交的名称为“System andMethod for Updating and Distributing Information”的美国临时专利申请序列号60/249,606、以及于2001年11月19日提交并于2002年3月23日公布的名称为“System and Method for Updating andDistributing Information”的国际专利申请公开号WO 02/41147 A1,每个所述专利申请的全部主题的全部内容由此通过引用并入本申请中。
背景技术
非易失性存储器被用在多种多样的电子设备中,比如例如移动手持送受话器(handset)、蜂窝电话、个人数字助理(PDA)、寻呼机、以及手持个人计算机。这些设备中的非易失性存储器典型地含有固件、应用软件、数据、以及配置信息,这些内容使得所述设备可运行并且可以由所述电子设备的制造商、由电信载波网络的系统运营商、或者由第三方开发者来提供。如果在这样的固件/软件中发现缺陷,或者如果新的特征将被添加到这样的设备,则受影响的电子设备中的软件和/或固件可能需要更新。在这样的操作代码的更新期间可能发生的错误和/或中断可能使所述电子设备处于部分或完全不能操作的状态。为了避免该问题,目前用于更新这样的软件和/或固件的方法典型地包括将电子设备返回给制造商、系统运营商、或者第三方,使得可以使用到所述电子设备的直接连接来执行存储器内容的更新。这不仅成本高,而且对于电子设备的用户和执行更新的人而言都是不方便的。
可靠并高效地更新移动/无线电子设备中的软件、固件、以及配置信息是一个重大挑战。移动电子设备中的软件或固件的更新可能包括修改非易失性存储器(NVM)的大量存储块。用于更新电子设备的信息可能通过经受错误和中断的通信路径被传递。另外,在尝试使用所述设备时用户可能中断更新活动,或者如果所述设备是电池运行的,则所述电池可能只是被耗尽。
与易失性存储器(比如典型的半导体RAM)相比时,许多类型的NVM(例如NAND或NOR闪存)花费更大量的时间进行写入。在更新过程期间将被写入的块的数目影响更新时间。例如,更新闪存类型NVM的一个块可能包括对NVM的3个块进行写入。包括写入NVM的3个块的更新的更新时间很可能比在写入NVM的更少块的情况下更长。另外,每次更新都减少一些类型的NVM的剩余寿命。因此,实现更新时间效率和保持存储器寿命取决于对一些类型的非易失性存储器进行的写入次数。最小化块写入次数是一种用于加快对例如基于闪存的电子设备中的软件和固件的更新并且延长NVM寿命的方法。另外,减小用于传递更新的更新包的大小也可以对更新时间产生影响。
常规和传统方法的其它局限性和缺点通过这样的系统与在本申请的剩余篇幅中参考附图所阐述的本发明的比较将对于本领域的人员而言变得显而易见。
附图说明
图1是根据本发明的代表性实施例的示例性网络的透视框图,所述网络支持诸如例如移动手持送受话器或个人数字助理的电子设备的非易失性存储器的远程更新。
图2是根据本发明的代表性实施例的存储器的透视框图,其中示出了:更新以前的第一/较旧版本V1的存储器,其包括软件/固件的块B1、B2以及B3,以及在更新所述软件/固件并且存储所计算出的奇偶校验块P以后的第二/经过更新版本V2的存储器,其包括经过更新的对应块B1n、B2n以及B3n。
图3示出了图示根据本发明的代表性实施例的用于更新电子设备中的NVM(诸如例如图1的电子设备的NVM)的示例性方法的流程图。
图4示出了图示根据本发明的代表性实施例的用于恢复在中断的更新过程期间受损的存储块BJ的示例性方法的流程图。
图5示出了图示根据本发明的代表性实施例的用于更新具有有限读/写存储器的电子设备中的非易失性存储器的示例性方法的流程图,其中所述电子设备例如可以对应于图1的电子设备。
图6示出了图示根据本发明的代表性实施例的用于更新具有有限读/写存储器的电子设备中的非易失性存储器的另一示例性方法的流程图,其中所述电子设备例如可以对应于图1的电子设备。
具体实施方式
本发明的各方面总体上涉及支持电子设备中的存储器的更新的方法和设备,更具体而言涉及一种容错的方法和设备,所述方法和设备以如下方式高效地更新存储器(诸如例如非易失性闪存类型的存储器)中的固件和软件:与现有技术相比减小对NVM的写入次数,同时还在存在存储器更新中断的情况下提供容错性。尽管下面的讨论主要集中在移动电子设备(诸如例如移动手持送受话器、蜂窝电话、个人数字助理、寻呼机、以及手持个人计算机),但是这是作为示例,而不是作为对本发明的具体限制。在此所包含的教导也可以适用于各种其它具有处理器和含有软件、固件、配置信息、数据文件等等的存储器的电子设备,对于所述电子设备而言对存储器内容的更新可能是期望的。
本发明的代表性实施例可以在使用有线或无线通信链路的更新期间被使用,所述通信链路诸如例如公共交换电话网、有线局域网或广域网、内联网、因特网、以及无线蜂窝网络、无线寻呼网络、无线局域网、无线个域网、和无线短程网(诸如被称为WiFi的网络、IEEE 802.11a/b/g/n兼容网络、称为蓝牙的短程无线技术以及类似类型的通信链路)。
在本发明的代表性实施例中,用于更新电子设备(例如上述电子设备)中的存储器的信息可以使用例如更新包来传递,所述更新包包括一组指令,所述指令可以由该电子设备中的固件和/或软件执行,以将电子设备中的现有版本的软件、固件、和/或数据变换或转换成所述软件、固件、数据的新的或经过更新的版本。
图1是根据本发明的代表性实施例的示例性网络105的透视框图,所述网络105支持电子设备107(诸如例如移动手持送受话器或个人数字助理)的非易失性存储器的远程更新。电子设备107例如可以包括蜂窝电话、个人数字助理(PDA)、寻呼机、手持个人计算机(PC)等等。电子设备107可以支持若干特征和/或应用,所述特征和/或应用可能含有需要被校正的软件/固件错误,或者可以通过更新所述软件/固件来提供附加的特征/益处。电子设备107本身可以用于或者使用电子设备107中的浏览器直接地或者通过客户服务代表(CSR)请求通过客户关怀服务器157对软件/固件进行更新。CSR例如可以通过如下方式给使用电子设备107的客户提供服务:按照需要检索一个或多个被存储在电子设备107的存储器中的诊断管理对象(MO),并且从远程服务器给电子设备107传输例如一个或多个更新包形式的更新信息。这样的更新包例如可以包括:用于在电子设备107中编码以便在电子设备107中将第一版本的软件/固件转换或变换成第二版本的软件/固件的指令;元数据;以及校验和信息。
如图1的图示中所示,本发明的代表性实施例中的网络105可以包括电子设备107、设备管理(DM)服务器109、预配(provisioning)服务器129、以及下载服务器151。尽管未在图1中示出,但是本发明的代表性实施例还可以包括其它应用服务器,诸如例如客户关怀服务器、诊断服务器、以及自理(self-care)网站/门户。图1的电子设备107能够分别通过通信路径143、153、以及145与DM服务器109、下载服务器151、以及预配服务器129通信。尽管通信路径143、153、145被示为电子设备107与其相应服务器之间的分离的路径,但是这仅仅是出于说明的目的,而不是具体限制本发明的代表性实施例。通信路径143、153、145可以被组合成一个或多个路径,所述一个或多个路径可以包括有线或无线通信路径,诸如例如局域网、公共交换电话网、无线个域网、无线局域网或无线广域网、以及蜂窝网络或寻呼网络,仅仅列举几种可能性。图1中所示的通信接口168可以例如在这样的有线和/或无线网络接入中被处理器166使用。
如图1中所示,根据本发明的代表性实施例的电子设备可以包括处理器166、随机存取存储器(RAM)165、以及非易失性存储器(NVM)111。NVM 111例如可以包括NAND或NOR类型的闪存或其它合适类型的NVM。NVM 111可以含有电子设备107的若干软件/固件代码组件,例如包括应用软件127、设备管理(DM)客户端163、预配客户端123、操作系统(OS)119、固件117、以及一个或多个更新代理115。附加的软件/固件代码组件也可以存在于RAM 165和NVM 111中。术语“代码”可以在此用于表示以下项目之中的一个或多个:可执行指令、操作数数据、配置参数、以及存储在电子设备107的存储器中的其它信息。
在本发明的代表性实施例中,电子设备(诸如例如图1的电子设备107)可以使用由下载服务器151所递送的更新包来更新电子设备107的存储器中的代码组件。这样的更新包可以包括更新信息,该更新信息例如包括描述更新的元数据;校验和;以及指令,该指令可以由一个或多个更新代理(诸如例如图1的更新代理115)执行。所述(一个或多个)更新代理可以处理更新包的可执行指令的相应部分,以将电子设备107的存储器中的第一/当前版本的代码的相应部分转换/变换成第二/经过更新版本的代码的部分。电子设备107还可以从例如设备管理服务器109、客户关怀服务器157、和/或预配服务器129接收预配信息,以修复配置问题或者重新配置软件和硬件。
除了上述那些元件之外,电子设备107还可以包括促进远程诊断的下载诊断客户端(未示出);以及促进陷阱的设置和所收集信息的检索的陷阱(trap)客户端(未示出)。电子设备107的DM客户端163可以与DM服务器109、诊断客户端、以及陷阱客户端交互,以从DM服务器109接收DM命令以及在电子设备107中实施所述DM命令。下载服务器151可以用于下载固件和软件更新(例如具有例如更新包形式的更新信息)。下载服务器151还可以用于下载新的固件/软件,诸如例如诊断客户端,所述新的固件/软件然后可以在电子设备107中被安装和激活。
如上面所简述的那样,根据本发明的代表性实施例的电子设备(例如电子设备107)可以接收更新信息(例如更新包),所述更新信息用于由更新代理(例如更新代理115)进行处理以转换/变换软件(例如应用软件127)和/或固件(例如固件117),以便产生所述电子设备中的经过更新的软件/固件。由于电子设备107的运行可能被所述电子设备的用户中断(例如按下按键、除去电池、电池中的电荷用尽等等),因此所述电子设备的软件/固件的更新的执行还经受中断。这样的中断可能导致正在更新的存储器部分受损。本发明的代表性实施例可以用于还原/恢复电子设备107中的受损NVM。
图2是根据本发明的代表性实施例的存储器的透视框图200,其示出了:更新以前的第一/较旧版本V1的存储器210,该版本的存储器210包括软件/固件的块B1 219、B2 217、以及B3 215;以及在更新所述软件/固件并且存储所计算出的奇偶校验块P 231以后的第二/经过更新版本V2的存储器220,该版本的存储器220包括对应的经过更新的块B1n229、B2n 227、以及B3n 225。块B1 219、B2 217、以及B3 215例如可以驻留于NVM中,所述NVM可以包括若干不同类型的NVM(例如包括NAND或NOR类型的闪存)中的任一种。在本发明的代表性实施例中,更新过程的最终目标可能是将第二/经过更新版本V2的存储器220的经过更新的块B1n 229、B2n 227、以及B3n 225写回到由第一/较旧版本V1所占用的存储空间中。对正更新的存储块的擦除和写入过程的中断典型地损坏所述存储块。由于一些类型的NVM在写入数据时比在读取数据时显著更慢,因此更新(即写入)这些类型的NVM的内容可能比写入RAM明显更慢。更新存储块所需的时间量越大,所述存储块损坏的机会就越大,并且用于完成所述电子设备中的软件/固件的整个更新的时间量就越大。本发明的代表性实施例使得能够在电子设备中实施对固件和/或软件的容错(FT)更新时高效地恢复非易失性存储器(例如闪存)的受损块,并且减小对NVM的写入次数。由于许多类型的NVM都具有按照最大写入次数来测量的有限寿命,因此根据本发明的代表性实施例的软件/固件更新具有与以前的方法相比更短的更新时间,并且可以导致更长的NVM寿命,这取决于使用的NVM的类型。在此所述的方法可以用于多种NVM类型,包括NAND和NOR类型的闪存NVM设备二者。
在本发明的代表性实施例中,更新代理(诸如例如图1的电子设备107的更新代理115)可以使用更新包中的信息来产生所述电子设备中的软件/固件的一个或多个经过更新的块。用在更新活动中的更新包本身可以例如被存储在NVM(例如闪存)中。在更新过程中,更新代理115可以使用所述更新包中的信息来将第一/较旧版本V1 210的软件/固件的每个现有块B1 219、B2 217、以及B3 215转换/变换成第二/经过更新版本V2 220的对应块B1n 229、B2n 227、以及B3n 225。下面描述本发明的一个代表性实施例在更新电子设备(诸如例如图1的电子设备107)中的NVM期间的操作。
图3示出了流程图300,所述流程图300示出了根据本发明的代表性实施例的用于更新电子设备中的NVM(诸如例如图1的电子设备107的NVM 111)的示例性方法。图3的方法假设:现有/较旧版本的软件/固件驻留于所述电子设备(例如电子设备107)的NVM的块B1-BX中,并且在所述电子设备(例如电子设备107)中有足够的附加读/写存储器(例如RAM)可用来保持根据现有存储块B1-BX创建的所有经过更新的块。
图3的方法开始于步骤310,其中所述电子设备中的更新代理(例如更新代理115)使用更新包的内容按照块或存储体(bank)顺序来根据图2的版本V1的现有/较旧块B1-BX创建/计算图2的版本V2的经过更新的块B1n-BXn。这样的块/存储体顺序可以在所接收的更新包中被传递给更新代理115。在此刻以后的讨论中,符号B1-BX和B1n-BXn表示按所述块/存储体顺序出现的块,例如B10是指按所述块/存储体顺序的第10个块。在本发明的一个代表性实施例中,经过更新的块BJn可以使用块BJ-BX来创建。在本发明的代表性实施例中,经过更新的块B1n-BXn可以被存储在RAM(例如RAM 165)中。接着,在步骤312,使用经过更新的块B1n-BXn计算块P(例如图2的P 231)。在本发明的一个代表性实施例中,奇偶校验块P中的位的值可以被计算为所有经过更新的块B1n-BXn中的对应位的异或(XOR),这在此以如下方式表示:
P=B1n XOR B2n XOR...XOR BXn
一旦奇偶校验块P已被计算出,则其然后可以被存储在NVM中,如步骤314所示。在本发明的可替代实施例中,用于产生用于更新NVM存储块B1-BX的更新包的生成器也可以产生奇偶校验块P,并且所述电子设备(例如电子设备107)中的更新代理可以作为所述更新包的一部分来接收奇偶校验块P。
在本发明的代表性实施例中,奇偶校验块P可以在电子设备107中有空闲块可用的情况下被存储在非易失性存储器的空闲块中。然而,如果没有NVM的未被占用的块可用,则更新包的生成器可以选择重写NVM的现有块之中的选定块,以便存储奇偶校验块P。对将被使用的块的选择例如可以基于这可能对更新包的大小所产生的影响。为了在重写方面进行校正,生成器可以在所述更新包中放置更新指令,所述更新指令致使经过重写的NVM块被更新到其在已经被简单地更新的情况下本来会具有的内容。
接着,(在步骤310创建的)更新块B1n-BXn然后被存储在NVM中。在本发明的一个代表性实施例中,每个经过更新的块B1n-BXn都被单独地写入/存储在对应的第一/较旧版本的块B1-BX上。如果所有经过更新的块B1n-BXn的存储都成功,则更新过程完成。可以进行更新已被成功执行的记录。
然而在一些情形中,在第一/较旧的块BJ上写入/存储经过更新的块BJn的过程可能被中断。这可能是由于用户动作(诸如例如按下电子设备上的按键或按钮)造成的或者由于当电池被耗尽或者在运行期间被除去时电子设备的掉电造成的。在这样的情形下,可能使块BJ处于受损状态。在本发明的代表性实施例中,所述电子设备可以在稍后的时间检测到软件/固件的更新之前被中断,并且可以尝试检测受损块以及执行恢复。
图4示出了图示根据本发明的代表性实施例的用于恢复在中断的更新过程期间受损的存储块BJ的示例性方法的流程图400。图4中所示的方法假设:先前使用图3中所示方法尝试的对具有块B1-BX的NVM的更新曾在块BJ处被中断,并且图4的方法已经被调用以尝试恢复受损块BJ。在本发明的代表性实施例中,诸如图4中所示的方法可以在电子设备(诸如例如电子设备107)的上电或重新启动之后被调用。
将块BJ识别为受损的可以例如使用每个将被更新的块的在更新以前(更新前)以及在更新以后(更新后)所计算出的循环冗余校验(CRC)信息来执行。这样的CRC信息可以被包含在上述更新过程期间所使用的所接收到的更新包内。在更新尝试中断以后的重新启动或上电时,所述电子设备可以将包括在所述更新包中的更新前和更新后的块CRC与从正在更新的NVM的对应块中计算出的CRC相比较。NVM块BK的所计算出的CRC与NVM块BK的更新包更新前的CRC的匹配表明:该更新还未处理NVM块BK并且该更新过程应当从NVM块BK开始/继续。NVM块BK的所计算出的CRC与块BK的更新包更新后的CRC的匹配表明:该更新活动已经成功地处理NVM块BK并且该更新中的下一NVM块应当被测试。NVM块BK的所计算出的CRC不能与来自更新包的更新前和更新后的CRC二者匹配表明:NVM块BK受损并且NVM块BK的恢复是必要的(in order)。
图4中示出的流程图基于如下假设:所述电子设备以前曾进行被中断的更新过程,并且所述更新过程以开始于块B1并且结束于块BX的块/存储体顺序来更新NVM的块。在重新启动或上电以后,所述电子设备确定更新曾在进行中,并且可以使用上述过程来确定将被更新的最后一个下一(last next)块。
受损NVM块BJ的恢复开始于步骤410,在该步骤,所述电子设备如上面所述的那样确定NVM的块B1-BX之中的块BJ受损。在本发明的代表性实施例中,可以假设:中断更新的事件还导致RAM中的块B1n-BXn的先前所计算出的内容丢失。应当注意,经过更新的存储块B1n-B(J-1)n在该更新中断以前被存储在NVM块B1-B(J-1)中,并且是可用的。因此在步骤412,经过更新的块B1n-B(J-1)n的内容可以从NVM被复制到RAM。接着在步骤414,更新代理(例如更新代理115)可以根据NVM的现有/旧块B(J+1)-BX的内容重新创建经过更新的块B(J+1)n-BXn。通过这种方式,R/W存储器(例如RAM)现在含有从NVM复制的经过更新的块B1n-B(J-1)n的内容、以及根据NVM块B(J+1)-BX的现有/旧内容重新创建的B(J+1)n-BXn的内容。
接着在步骤416,所述更新代理使用下面的公式计算受损块BJn的内容:
BJn=B1n XOR B2n XOR...XOR B(J-1)n XOR P
XOR B(J+1)n XOR...XOR BXn,
其中P是在图3所示的更新过程开始时被存储在NVM中的奇偶校验块的内容。
然后在步骤418,上面所计算出的存储块BJn的内容可以被存储在NVM块BJ中,并且NVM的更新可以通过将经过更新的块B(J+1)n-BXn存储到NVM块B(J+1)-BX中而继续。一旦所有经过更新的块B(J+1)n-BXn都被存储在非易失性存储器B(J+1)-BX中,则该更新可以完成。
在上面所讨论的示例性实施例中,已经做出如下假设:经过更新的块B1n-BXn被写回到其相应的NVM存储块B1-BX中,并且用于创建BJn的对NVM块BJ的更新可以使用NVM块BJ-BX之中的任意块。如上所述,本发明的代表性实施例允许恢复由于更新过程的中断造成的单个受损块。在整个更新过程中,可能发生一次以上的中断。在这样的情形下,针对每次中断,可以对每个受损块重复上述过程。
本发明的代表性实施例可以选择若干技术/方法之一来生成更新包。在上面所阐述的例子中,假设在所述电子设备中有足够的读/写存储器(例如RAM 165)可用于存储经过更新的块B1n-BXn,所述经过更新的块B1n-BXn可以全部被创建并且同时存在于所述电子设备中的读/写存储器中。当被用在其中仅有有限量的RAM可用(“低RAM”情形)的电子设备中时,本发明的可替代的代表性实施例可以通过把将被更新的NVM存储器的块处理成少于所有块的多个组来解决大于可用读/写存储器的NVM存储器量的更新。然后,所述组中的现有NVM存储器的每个块被更新以产生经过更新的块BJn-BKn,所述经过更新的块BJn-BKn每个都被处理并且被写入到NVM存储器中。
在本发明的代表性实施例中,生成器可以通过计算单个奇偶校验块来处理其中可用的读/写存储器比将被更新的NVM存储器小的那些情形,其中所述单个奇偶校验块可以被包括在更新包中。所述电子设备(例如电子设备107)中的更新代理可以检索所述奇偶校验块,将其存储在非易失性存储器(例如闪存)中,并且将其用在对中断的更新过程的容错恢复中。
在本发明的一些代表性实施例中,生成器可以通过不在更新包中提供奇偶校验块来处理低RAM情形。代替地,所述电子设备中的更新代理(例如电子设备107的更新代理115)可以计算单个奇偶校验块,并且可以在读/写存储器(例如RAM)中构建和缓存尽可能多的经过更新的存储块(例如版本V2)。
图5示出了流程图500,其示出了根据本发明的代表性实施例的用于更新具有有限的读/写存储器的电子设备中的非易失性存储器的示例性方法,其中所述电子设备例如可以对应于图1的电子设备107。图5的方法假设现有/较旧版本的软件/固件驻留于所述电子设备的NVM(例如电子设备107的NVM 111)的块B1-BX中,并且在电子设备107中不存在足够的读/写存储器(例如RAM 165)来在写入NVM以前保持所有经过更新的块B1n-BXn。图5的方法开始于步骤510,该步骤初始化读/写存储器中的块、以及将被更新的第一NVM块的索引J。接着在步骤512,NVM中的版本V1的现有块BJ被处理,以使用来自所接收的更新包的信息和NVM的现有块来在读/写存储器(例如RAM 165)中创建版本V2的经过更新的存储块BJn。在步骤514,经过更新的存储块BJn被用于更新奇偶校验块P(例如图2的P 231)的内容,并且在步骤516,进行检查以确定:是否有可用于存储经过更新的块BJn的读/写存储器。如果读/写存储器可用,则在步骤518,更新存储块BJn被存储在读/写存储器中。然而,如果没有R/W存储器可用于存储经过更新的块BJn,则其不被保存。在任一情况中,然后在步骤520进行检查以确定:所有将被更新的块的经过更新的版本是否已经被用于计算奇偶校验块P。如果否,则在步骤522,索引J被递增,并且该方法返回(到步骤512)以根据NVM块BJ创建下一更新块BJn。
如果在步骤520确定:所有块都已经在计算奇偶校验块P时被处理,则在步骤524,奇偶校验块P的内容被存储在NVM中。然后在步骤526,本发明的代表性实施例可以复制被存储在读/写存储器中的任何经过更新的块,以重写它们在NVM中的相应块。在步骤528,图5的方法重新创建在计算奇偶校验块P期间未被存储在读/写存储器中的每个经过更新的块BJn,并且将每个重新创建的经过更新的块写入其在NVM中的对应块。然后,该方法已经完成,其中NVM的所有块都被更新。在阅读和消化本公开的教导以后,本领域的技术人员清楚地理解:参考图3所述的块恢复如何可以适于在图5的示例性更新方法被中断的情况下恢复受损的NVM块。
图6示出了流程图600,其示出了根据本发明的代表性实施例的用于更新具有有限的读/写存储器的电子设备中的非易失性存储器的另一示例性方法,其中所述电子设备例如可以对应于图1的电子设备107。图6的方法假设:现有/较旧版本的软件/固件驻留于所述电子设备的NVM(例如电子设备107的NVM 111)的块B1-BX中,并且在电子设备107中不存在足够的读/写存储器(例如RAM 165)来在写入NVM以前保持所有经过更新的块B1n-BXn。图6的方法开始于步骤610,该步骤初始化将被更新的NVM中的第一块的索引J,以及初始化将被计算的第一奇偶校验块的索引K。接着在步骤612,读/写存储器中的奇偶校验块P被初始化。接着在步骤614,NVM的块BJ-B(J+N-1)被处理以使用来自所接收的更新包的信息和NVM的现有块来在读/写存储器(例如RAM165)中创建版本V2的软件/固件的经过更新的存储块BJn-B(J+N-1)n。在步骤616,经过更新的块BJn-B(J+N-1)n被用于计算第K组N个块的奇偶校验块P的内容,并且在步骤618,奇偶校验块P的内容被存储在NVM中作为奇偶校验块PK。接着在步骤620,图6的示例性方法将存储在读/写存储器中的经过更新的块BJn-B(J+N-1)n复制到NVM块BJ-B(J+N-1)中。在框622确定是否NVM的所有块都已被更新,如果否,则该方法递增索引J和K以分别识别将被处理的下一NVM块和将被存储的下一奇偶校验块(在步骤624)。然后,该方法返回到步骤612,并且继续该更新过程直到将被更新的所有NVM块都已经被更新。在阅读和消化本公开的教导以后,本领域的技术人员清楚地理解:参考图3所述的块恢复如何可以适于在图6的示例性更新方法被中断的情况下恢复受损的NVM块。
本发明的参考图6所述的用于更新NVM的X个块的代表性实施例导致对NVM的X+K次块写入。用于执行对NVM的额外K次写入的时间可能预期小于如在图5的示例性方法中的用于重新计算的时间。
本发明的代表性实施例例如可以被用在诸如图1的电子设备107的电子设备中。其中进行闪存更新的电子移动设备典型地包括DM客户端,所述DM客户端从DM服务器接收DM命令并且实施所述DM命令。DM服务器或者相关联的下载服务器被用于将固件和软件更新下载到所述移动设备的闪存中以用于固件和软件更新。在本发明的一些代表性实施例中,经过更新的非易失性存储器的仅仅一个块可能受损,并且除受损块之外的经过更新的内容可以不被用作执行更新的参考数据。根据本发明的代表性实施例的更新过程可以通过跳过受损NVM块的更新而继续进行。奇偶校验块P可以使用来自经过更新版本V2的存储器的块根据P=(B1)v2 XOR(B2)v2 XOR...XOR(Bn)v2而被计算出。该计算可以在用于产生用于更新的更新包的生成器中执行,或者可以在所述电子设备中计算出。当发生第一版本的软件/固件的更新中断并且损坏块BJ时,块B1至B(J-1)可能已经被成功地更新到非易失性块B1n至B(J-1)n,并且经过更新的块B(J+1)n至BXn可以被计算出。奇偶校验块可以与经过更新的NVM块B1至B(J-1)和所计算出的经过更新的可能未被写入NVM的块B(J+1)n至BXn一起使用。然后,受损块BJ的经过更新的内容BJn可以作为BJn=P XOR B1 XOR B2 XOR...XOR B(J-1)XOR B(J+1)XOR...XOR BXn而被计算出。
在本发明的代表性实施例中,在所述电子设备上计算奇偶校验块P的速度可以等于执行整个更新的速度减去执行闪存写入操作的时间。
在本发明的代表性实施例中,用于非易失性存储器中的软件/固件更新的更新包的生成器可以让用户选择或者在所述生成器上预先计算带式备份(striping backup)或者在所述电子设备(例如电子设备107)上计算带式备份。
在本发明的代表性实施例中,诸如图1的更新代理115的更新代理可以尝试在RAM中尽可能多地缓存所计算出的V2块,以节省实际更新时间。根据在更新过程期间何时(以及因此在更新的块顺序中何处)发生损坏,用于恢复NVM的受损块的时间可以是可变的。如果中断/损坏发生在第一NVM块,则恢复时间可以为用于更新该更新的所有NVM块的时间减去用于NVM写入操作的时间那样长,或者如果更新过程在更新最后的块时被中断/损坏,则恢复时间可以为调查所述情况所花费的时间那样短。
尽管已经结合优选实施例描述了根据本发明的系统和方法,但是并不旨在限于在此所阐述的特定形式,而是相反,旨在覆盖能够被合理地包括在由本公开和所附权利要求书所限定的本发明范围之内的这样的替代方案、修改方案、以及等价方案。
相应地,本发明可以以硬件、软件、或者软件与硬件的组合来实现。本发明可以在至少一个计算机系统中以集中的方式被实现,或者以分布的方式被实现,其中不同元件散布在几个互连的计算机系统上。任意种类的计算机系统或其它适于执行在此所述的方法的装置都是合适的。典型的硬件与软件的组合可以是具有计算机程序的通用计算机系统,所述计算机程序在被加载和执行时控制所述计算机系统,使得所述计算机系统执行在此所述的方法。
本发明还可以嵌入在计算机程序产品中,所述计算机程序产品包括使得能够实施在此所述的方法的所有特征,并且在被加载在计算机系统中时能够执行这些方法。在本上下文中的计算机程序是指一组指令的以任意语言、代码、或者标记法的任意表达,该指令旨在使具有信息处理能力的系统直接地或者在下列项目中的任一或二者以后执行特定功能:a)转换成另一语言、代码、或者标记法;b)以不同的材料形式再现。
尽管已经结合某些实施例描述了本发明,但是本领域的技术人员将理解,在不偏离本发明的范围的情况下可以做出各种改变并且可以替换等价方案。另外,在不偏离本发明的范围的情况下,可以做出许多修改以使特定的情形或材料与本发明的教导相适应。因此,并不旨在将本发明限于所公开的特定实施例,而是本发明将包括落入所附权利要求书的范围内的所有实施例。

Claims (10)

1.一种用于更新包括非易失性存储器和易失性存储器二者的电子设备(107)中的非易失性存储器的容错的方法,所述非易失性存储器被设置为作为块而被写入,该方法包括:
使用所接收的更新信息在所述易失性存储器(165)中创建对应于所述非易失性存储器(111)的多个现有块的多个经过更新的块;
使用所有所述多个经过更新的块(225,227,229)创建奇偶校验块(231);
将所述奇偶校验块存放到非易失性存储器中;
开始将所述多个经过更新的块存储到非易失性存储器中;
检测所述存储的中断;
识别所述多个非易失性存储块中的受损块;
为所述受损块计算经过更新的内容;以及
将所述受损块的所计算出的经过更新的内容存储到对应的非易失性存储块中。
2.根据权利要求1所述的方法,其中所述奇偶校验块的每个位的值被计算为所述多个经过更新的块中的对应位的异或。
3.根据权利要求1所述的方法,其中为所述受损块计算经过更新的内容使用:所述奇偶校验块、对应于所述多个经过更新的块之中的在所述中断以前所存储的那些经过更新的块的非易失性存储块的内容、以及在所述中断以后使用非易失性存储块所创建的易失性存储块。
4.根据权利要求1所述的方法,其中所述更新信息包括一组指令,所述指令能够由所述电子设备中的软件或固件执行以根据非易失性存储器的现有块创建经过更新的块。
5.根据权利要求1所述的方法,其中识别所述多个非易失性存储块之中的受损块使用所接收的更新信息中的至少一个校验和。
6.一种支持对非易失性存储器的容错的更新的移动电子设备(107),该设备包括:
接口电路(168),其用于无线地接收更新信息;
至少一个处理器(166),其在操作中耦合到所述接口电路和非易失性存储器(111)以及易失性存储器(165),所述非易失性存储器被设置为作为块而被写入,所述至少一个处理器操作以至少执行:
使用所接收的更新信息在所述易失性存储器中创建对应于所述非易失性存储器的多个现有块的多个经过更新的块;
开始将所述多个经过更新的块存储到非易失性存储器中;
检测所述存储的中断;
为受损块计算经过更新的内容;以及
将所述受损块的所计算出的经过更新的内容存储到对应的非易失性存储块中。
7.根据权利要求7所述的设备,其中所述至少一个处理器进一步操作以:
使用所有所述多个经过更新的块(225,227,229)创建奇偶校验块(231);
将所述奇偶校验块存放到非易失性存储器中;以及
识别所述多个非易失性存储块中的受损块。
8.根据权利要求7所述的设备,其中为所述受损块计算经过更新的内容使用:奇偶校验块、对应于所述多个经过更新的块之中的在所述中断以前所存储的那些经过更新的块的非易失性存储块的内容、以及在所述中断以后使用非易失性存储块所创建的易失性存储块。
9.根据权利要求7所述的设备,其中所述更新信息包括一组指令,所述指令能够由所述电子设备中的软件或固件执行以根据非易失性存储器的现有块创建经过更新的块。
10.根据权利要求7所述的设备,其中所述移动电子设备包括下列之一:蜂窝电话、个人数字助理、寻呼机、或者手持个人计算机。
CN200880121210.9A 2007-10-17 2008-10-15 在更新期间使用高效的块备份和块恢复的移动手持送受话器 Active CN101904105B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/874102 2007-10-17
US11/874,102 US7802129B2 (en) 2007-10-17 2007-10-17 Mobile handset employing efficient backup and recovery of blocks during update
PCT/US2008/011824 WO2009051760A1 (en) 2007-10-17 2008-10-15 Mobile handset employing efficient backup and recovery of blocks during update

Publications (2)

Publication Number Publication Date
CN101904105A true CN101904105A (zh) 2010-12-01
CN101904105B CN101904105B (zh) 2016-08-17

Family

ID=40564695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880121210.9A Active CN101904105B (zh) 2007-10-17 2008-10-15 在更新期间使用高效的块备份和块恢复的移动手持送受话器

Country Status (5)

Country Link
US (1) US7802129B2 (zh)
CN (1) CN101904105B (zh)
DE (1) DE112008002767B4 (zh)
GB (1) GB2468225B (zh)
WO (1) WO2009051760A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468515B2 (en) 2000-11-17 2013-06-18 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US8578361B2 (en) 2004-04-21 2013-11-05 Palm, Inc. Updating an electronic device with update agent code
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
US8893110B2 (en) 2006-06-08 2014-11-18 Qualcomm Incorporated Device management in a network
CN107003919A (zh) * 2014-12-24 2017-08-01 英特尔公司 容错自动双列直插存储器模块刷新

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8561049B2 (en) * 2005-08-23 2013-10-15 Red Bend Ltd. Method and system for updating content stored in a storage device
JP2010039512A (ja) * 2008-07-31 2010-02-18 Fujitsu Ltd ソフトウェア更新装置、およびソフトウェア更新プログラム
US8924777B2 (en) * 2010-12-23 2014-12-30 Samsung Electronics Co., Ltd. Condensed FOTA backup
US8656091B2 (en) 2011-07-25 2014-02-18 Hewlett-Packard Development Company, L.P. Data storage in nonvolatile memory
US9424125B2 (en) * 2013-01-16 2016-08-23 Google Inc. Consistent, disk-backed arrays
US20160381673A1 (en) * 2015-06-25 2016-12-29 Qualcomm Incorporated Memory management for reception of wireless communications
US10430178B2 (en) * 2018-02-19 2019-10-01 GM Global Technology Operations LLC Automated delivery and installation of over the air updates in vehicles
JP7354631B2 (ja) * 2018-08-10 2023-10-03 株式会社デンソー 電子制御装置、車両用電子制御システム、差分データの整合性判定方法及び差分データの整合性判定プログラム
CN111104149A (zh) * 2018-10-25 2020-05-05 华为技术有限公司 一种固件升级方法、装置及终端

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040123282A1 (en) * 2000-11-17 2004-06-24 Rao Bindu Rama Mobile handset with a fault tolerant update agent
CN1906574A (zh) * 2003-11-19 2007-01-31 艾利森电话股份有限公司 更新移动终端中的数据

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684944A (en) 1995-08-14 1997-11-04 Lubbers; Clark E. Atomic update of EDC protected data
KR100601626B1 (ko) 1999-11-15 2006-07-14 삼성전자주식회사 소프트웨어 업그레이드 방법 및 이를 위한 기록 매체
JP2004514214A (ja) 2000-11-17 2004-05-13 ビットフォン コーポレイション 情報をアップデートおよび配布するシステムおよび方法
CN1529847A (zh) 2001-07-16 2004-09-15 任宇清 内嵌软件更新系统
WO2004042538A2 (en) 2002-11-05 2004-05-21 Bitfone Corporation Firmware update system for facilitating firmware update in mobile handset related applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040123282A1 (en) * 2000-11-17 2004-06-24 Rao Bindu Rama Mobile handset with a fault tolerant update agent
CN1906574A (zh) * 2003-11-19 2007-01-31 艾利森电话股份有限公司 更新移动终端中的数据

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468515B2 (en) 2000-11-17 2013-06-18 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US8578361B2 (en) 2004-04-21 2013-11-05 Palm, Inc. Updating an electronic device with update agent code
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US8893110B2 (en) 2006-06-08 2014-11-18 Qualcomm Incorporated Device management in a network
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
CN107003919A (zh) * 2014-12-24 2017-08-01 英特尔公司 容错自动双列直插存储器模块刷新

Also Published As

Publication number Publication date
WO2009051760A1 (en) 2009-04-23
GB2468225B (en) 2012-04-25
US7802129B2 (en) 2010-09-21
US20090106580A1 (en) 2009-04-23
GB2468225A (en) 2010-09-01
CN101904105B (zh) 2016-08-17
DE112008002767B4 (de) 2017-01-26
DE112008002767T5 (de) 2010-10-14
GB201007372D0 (en) 2010-06-16

Similar Documents

Publication Publication Date Title
CN101904105A (zh) 在更新期间使用高效的块备份和块恢复的移动手持送受话器
CN101377744B (zh) 一种终端设备软件升级恢复方法及装置
US7082549B2 (en) Method for fault tolerant updating of an electronic device
US7210010B2 (en) Efficient system and method for updating a memory device
KR100774857B1 (ko) 통신단말의 소프트웨어 갱신 방법, 통신단말 및소프트웨어 갱신 시스템
ES2371995T3 (es) Actualización del firmware de un dispositivo electrónico.
CN1711747B (zh) 包括从升级中发生的故障和错误自动恢复的电子文件升级
US20050055595A1 (en) Software update method, apparatus and system
CN101896889B (zh) 无线终端、无线终端的非易失存储器、诊断信息的可靠性保存方法
CN101930387A (zh) 用于更新压缩只读文件系统的改进的容错方法及装置
WO2011006378A1 (zh) 无线数据卡的升级方法和系统
CN101695162A (zh) 一种移动终端空中固件升级方法及装置
JP3864337B2 (ja) バージョンアップ方法
KR100986487B1 (ko) 고장 허용 갱신 에이전트를 구비한 모바일 핸드세트
WO2005088448A1 (en) Method and apparatus for reliable in-place update
JP2009009391A (ja) 更新処理ソフトウェア自己更新方法および携帯端末装置
KR100832269B1 (ko) 무선 통신 단말의 프로그램 갱신 방법 및 시스템
CN103488492A (zh) 阅读器设备及其固件升级方法及装置
JP2010079382A (ja) ソフトウエア更新方法
KR100628176B1 (ko) 정보 단말기의 저장 프로그램 갱신 방법
KR100545095B1 (ko) 무선통신단말기 소프트웨어 업그레이드 방법
CN115904457B (zh) 一种基于物联网的电脑固件远程升级系统及方法
KR100722444B1 (ko) 플래쉬 메모리를 이용한 컴퓨터 업데이트 방법
KR20090070549A (ko) 소프트웨어 업데이트 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: QUALCOMM INC.

Free format text: FORMER OWNER: HEWLETT PACKARD CO.

Effective date: 20140226

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20140226

Address after: American California

Applicant after: Qualcomm Inc.

Address before: American Texas

Applicant before: Hewlett-Packard Development Corp.

C14 Grant of patent or utility model
GR01 Patent grant