校正闪速存储器内格式化错误的方法和系统的制作方法

文档序号:6562770阅读:128来源:国知局
专利名称:校正闪速存储器内格式化错误的方法和系统的制作方法
技术领域
本发明一般涉及数据处理系统,特别是涉及数据处理系统内的闪速存储器(flash memory)。再具体些说,本发明涉及在修复数据处理系统的闪速存储器内的坏扇区时恢复格式化的系统、方法和计算机程序产品。
背景技术
许多基于微处理器的设备和系统使用采用特定形式的EEPROM(电可擦可编程只读存储器)来存储数据的所谓“闪速存储器”设备。这样的设备可以包括例如计算机、移动电话、电子玩具、摄像机和诸如洗衣机之类的家用电器。确实,几乎每个基于微处理器的产品今天都使用了闪速存储器。
闪速存储器保持所存储的信息而不需要电源。闪速存储器与典型的EEPROM不同,EEPROM每次一个字节地擦除内容,这使典型的EEPROM更新很慢。闪速存储器可以整块地擦除它的数据,这使闪速存储器对于经常需要更新大量数据的应用(如在记忆棒的情况下)成为优选的技术。
在闪速存储器芯片内部,信息存储在单元(cell)内。有一个浮动栅用来保护写入各单元的数据。隧穿电子穿过低导电材料,在“一闪”之间改变栅极的电荷,从而清除单元内的内容,使得它可以被重写。这种“一闪”之间清除单元内容就是“闪速存储器”这个名称的由来。
不幸的是,装有闪速存储器的设备可能出现故障的最大原因之一就是闪速存储器本身。由于闪速存储器组件通常是与诸如主电路板之类的其他组件焊在一起的,因此闪速存储器有故障往往不仅需要更换闪速存储器,而且还需要更换其他组件。闪速存储器成为深度集成入设备使设备的设计人员设计出一些校正闪速存储器内的错误的方法,这些方法中大多数取决于用户人工干预或者冗余存储数据。
在数据处理系统内,由于种种原因(例如在写入或格式化操作期间断电)存储在闪速存储器内的数据的格式化可能受到损伤或破坏。如同对闪速存储器内其他问题的纠错方法那样,从格式化数据的损坏中恢复的现有技术方法涉及不断维持对数据的冗余副本,或者要求用户通过更换或人工修复来校正对格式化的损坏。
现有技术方法的这种状态导致一些缺点。首先,维持格式化数据的冗余副本不是所希望的,因为这样的维持增大了对存储量的要求。对存储量要求的这种关心在嵌入式系统或存储资源有限的其他系统中就显得特别重要。类似,现有技术方法的需要用户通过更换或人工修复来校正对格式化的损坏要花费用户或信息技术人员的大量时间。所希望的是减少这样的花费。

发明内容
本发明揭示了一种校正闪速存储器内的格式化错误的方法。发现第一闪速存储器的第一格式化中的错误,从存储第二数据的第二闪速存储器提取第二格式化。用第二格式化的修改代替有错误的第一格式化,并将第一数据与第二格式化的修改一同存储在第一闪速存储器中。第一数据与第二数据不同。


在所附权利要求书中给出了相信是新颖的本发明特征。然而,从以下结合附图对一个例示性的实施例所作的详细说明中可以更好地理解本发明本身以及本发明的优选使用模式、其他目的和优点,在这些附图中图1A示出了实现修复安装到数据处理系统上的闪速存储器内的坏扇区的格式化恢复的方法、系统和计算机程序产品的优选实施例的数据处理系统的方框图;
图1B示出了安装到按照本发明的优选实施例设计的数据处理系统上的闪速存储器;图2例示了按照本发明的优选实施例的读取和写入数据的方法的高层逻辑流程图,这包括执行格式化恢复以修复安装到数据处理系统上的存储系统内的坏扇区;以及图3示出了在按照本发明的优选实施例执行格式化恢复以修复安装到数据处理系统上的闪速存储器内的坏扇区时的方法的高层逻辑流程图。
具体实施例方式
本发明利用了双介质映像(iamge)设计,在该设计中,在闪速存储器的不同扇区或在闪速存储器的多个单元(unit)内存在也称为关键数据的格式化数据的类似副本。如果并且当对触及格式化数据的操作的中断使格式化数据的扇区受到破坏时,本发明检测该破坏,并利用类似格式化的扇区作为模板来重构受破坏的格式化。随后,用重构的格式化来修复被破坏的扇区,允许系统返回完整的能力和功能,而不向用户发破坏警报。本发明提供了一种用于数据损坏的解决方案,其不需要格式化数据的特定冗余副本或用户干预。
现在参见附图,特别是图1A,其中示出了可以用来实现本发明的方法、系统和计算机程序产品的数据处理系统100。为了进行说明,数据处理系统在这里描述为具有服务器计算机所共有的特征。然而,如在这里所使用的,术语“数据处理系统”旨在包括任何类型的能接收、存储和运行软件产品的计算设备或机器,不仅包括计算机系统,而且还包括诸如通信设备(例如,路由器、交换机、寻呼机、电话机、电子图书、电子杂志和报纸,等等)、数据存储设备及个人和家用电子设备(例如,掌上计算机、Web电视接收机、家庭自动化系统、多介质收看系统,等等)之类的设备。
图1A和以下说明旨在提供对适合实现本发明的示范性数据处理系统的简要概述。虽然本发明的一些部分在作为固件驻留在服务器计算机的ROM内的指令的一般环境内进行说明,但本领域技术人员可以看到本发明也可以用在操作系统内运行的程序模块的组合来实现。通常,程序模块包括执行特定任务或实施特定抽象数据类型的例程、程序、组件和数据结构。本发明也可以在任务由一些通过通信网络链接的远程处理设备执行的分布式计算环境内实施。在分布式计算环境内,程序模块可以存储在本地和远地存储设备内。
数据处理系统100包括一个或多个处理单元102a-102d、至少两个接到存储器控制器105上的闪速存储器单元104a-104b、至少一个接到存储器控制器105上的RAM单元111和将存储器控制器105接到处理单元102a-102d和数据处理系统100的其他组件上的系统互连结构106。系统互连结构106上的命令在总线仲裁器108的控制下传送给各个系统组件。
数据处理系统100还包括附加的非易失大容量存储介质,诸如第一硬盘驱动器110和第二硬盘驱动器112之类。第一硬盘驱动器110和第二硬盘驱动器112由输入输出(I/O)接口114通信耦接到系统互连结构106上。虽然以上说的是硬盘,但本领域技术人员可以理解,在这个示范性的计算机操作环境内也可以用其他类型的计算机可读介质,诸如可移动磁盘、CD-ROM盘、磁带盒、闪速存储器卡、数字视盘、Bernoulli盒带和其他近来开发的硬件之类,来提供非易失大容量数据存储。在ROM 107内提供了附加的非易失性存储,其含有执行各个基本系统操作的固件109。本发明使用作为固件109存储在ROM107内的指令执行,并且相对于与存储器控制器105(含有称为格式化修改存储单元180的存储器单元)耦接的两个闪速存储器单元104a-104b对本发明进行例示性的说明。本发明也适用于第一硬盘驱动器110和第二硬盘驱动器112以及其他各种采用双介质映像设计的介质。
数据处理系统100可以在联网环境内用与诸如远程计算机116之类的远程计算机的逻辑连接进行工作。远程计算机116可以是服务器、路由器、对等设备或其他公共网络节点,通常包括许多或所有对数据处理系统100所说明的组成部分。在联网环境内,数据处理系统100所用的程序模块或者它们的一部分可以存储在诸如远程计算机116之类的远程存储器存储设备内。图1A中所示的逻辑连接包括通过局域网(LAN)118的连接,但在另一些实施方式中可以包括广域网(WAN)。
在LAN联网环境内使用时,数据处理系统100通过诸如网络适配卡120之类的输入输出接口接到LAN 118上。可以看到,所示的网络连接是示范性的,也可以使用在计算机之间建立通信链路的其他装置。
现在参见图1B,图中例示了按照本发明的优选实施例的安装(attach)到数据处理系统上的闪速存储器。闪速存储器104a含有四个扇区152a-158a。扇区152a含有头标160a、分区表偏移162a、分区名164a和分区表大小166a,这些统称为格式化数据160a-166a,而扇区154a-158a含有诸如应用所用的数据之类的存储数据。闪速存储器104b含有四个扇区152b-158b。扇区152b含有头标160b、分区表偏移162b、分区名164b和分区表大小166b,这些统称为格式化数据160b-166b,而扇区154b-158b含有应用所用的数据之类的存储数据。因此,闪速存储器104a的扇区154a-158a可以(并且通常确实)含有与闪速存储器104b的扇区154b-158b中的第二数据不同的第一数据。
现在来看图2,图中例示了按照本发明的优选实施例的读取和写入数据的方法的高层逻辑流程图,这包括执行格式化恢复以修复安装到数据处理系统上的存储系统内的坏扇区。
为了直观起见,在这里给出的对图2和图3的示范性说明涉及对闪速存储器104a执行格式化操作,而用闪速存储器104b提供备份格式数据。本领域技术人员很快就会认识到无论是闪速存储器104a还是闪速存储器104b在格式化操作期间都可以为对方提供备份。过程在步骤200启动后进至步骤204,存储器控制器105开始对闪速存储器104a内的存储的格式化扇区152a执行紧急操作。过程接着进至步骤206。在步骤206,存储器控制器105读闪速存储器104a的扇区152a。然后,过程进至步骤208,存储器控制器105更新包含在在步骤206中读取的闪速存储器104a的扇区152a中的数据的本地副本。过程接着进至步骤210。
在步骤210,存储器控制器105擦除在步骤206中读取的闪速存储器104a的扇区152a。然后,过程进至步骤212。在步骤212,存储器控制器105对在步骤206中读取的扇区152a的格式化数据160a-166a执行验证和恢复功能。步骤212的验证和恢复功能将在下面结合图3详细说明。过程接着进至步骤214。在步骤214,存储器控制器105重写在步骤206中读取的闪速存储器104a的扇区152a。于是,过程在步骤216结束。
现在参见图3,图中示出了按照本发明的优选实施例执行格式化恢复以修复安装到数据处理系统上的闪速存储器系统内的坏扇区的执的方法的高层逻辑流程图。过程在步骤300启动后进至步骤302,存储器控制器105验证在步骤206中读取的闪速存储器104a的扇区152a的头标160a。然后,过程进至步骤304。在步骤304,存储器控制器105确定对在步骤206中读取的闪速存储器104a的扇区152a的头标160a的验证是否成功。如果对在步骤206中读取的闪速存储器104a的扇区152a的头标160a的验证没有成功,过程就进至步骤306。
步骤306-316表示响应于在步骤304和步骤318-328(将在下面说明)中任何一个步骤确定验证失败而使用的通用恢复过程。在步骤306,存储器控制器105声明指示验证失败的内部标志位。过程接着进至步骤308,存储器控制器105将与在步骤206中读取的闪速存储器104a的扇区152a类似的闪速存储器104b的扇区152b的二进制映像复制到存储器控制器105中的格式化修改存储单元180。然后,过程进至步骤310,存储器控制器105从闪速存储器104b的扇区152b的格式化修改存储单元180中的二进制映像读取格式化数据160b-166b。过程接着进至步骤312。在步骤312,存储器控制器105将来自闪速存储器104b的扇区152b的格式化修改存储单元180中的二进制映像的格式化数据160b-166修改到可以用来代替在步骤206中读取的闪速存储器104a的扇区152a的受损坏的格式化数据160a-166a的程度。
必要的修改将随本发明的具体实施方式
而不同,并且取决于所用的闪速存储器的特定类型以及存储在闪速存储器104a的扇区154a-158a中和存储在闪速存储器104b的扇区154b-158b中的特定数据之间的差别。在一个优选实施例中,来自格式化数据160b-166b的某些数据可以直接再用。例如,从头标160b提取的数据可直接再用于头标160a。类似,分区表偏移162b可直接再用作分区表偏移162a,而分区表大小166b可直接再用作分区表大小166a。
在一个优选实施例中,通过将分区名164b的拖尾数字改变成对应于标识其所在的闪速存储器104a的指示符来得出分区名164a。一个优选实施例含有闪速存储器104b,按照惯例指定为具有分区名boot2、kern2、dump2和user2的“闪速存储器2”。一个优选实施例还含有闪速存储器104A,按照惯例指定为“闪速存储器1”。在修改分区名164b以用作分区名164a时,存储器控制器105将产生分区名boot1、kern1、dump1和user1。
在另一些实施例中,其他格式化数据160b-166b(如分区名164a)将从对闪速存储器104a的扇区154a-158a的扫描得出。在步骤312后,过程进至步骤314,其中存储器控制器105用在步骤312产生的用于替代先前在步骤206中读取的闪速存储器104a的扇区152a中存在的受损格式化数据160a-166a的格式化更新在步骤206中读取的闪速存储器104a的扇区152a。过程然后在步骤316结束。
回到在步骤304的验证过程,如果对在步骤206中读取的闪速存储器104的扇区152a的头标160a的验证成功,过程就进至步骤318,存储器控制器105验证在步骤206中读取的闪速存储器104a的扇区152的分区偏移表162a。过程接着进至步骤320。在步骤320,存储器控制器105确定对在步骤206中读取的闪速存储器104a的扇区152a的分区偏移表162a的验证是否成功。如果存储器控制器105确定对在步骤206中读取的闪速存储器104a的扇区152a的分区偏移表162a的验证没有成功,过程就进至上面已说明的步骤306。如果存储器控制器105确定对在步骤206中读取的闪速存储器104a的扇区152a的分区偏移表162a的验证成功,过程就进至步骤322。在步骤322,存储器控制器105验证在步骤206中读取的闪速存储器104a的扇区152a内的各分区名164a的有效性。
然后,过程进至步骤324,示为存储器控制器105确定对在步骤206中读取的闪速存储器104a的扇区152a内的分区名164a的有效性的验证是否成功。如果对在步骤206中读取的闪速存储器104a的扇区152a内的分区名164a的验证没有成功,过程就进至上面已说明的步骤306。如果对在步骤206中读取的闪速存储器104a的扇区152a内的分区名164a的验证成功,过程就进至步骤326,存储器控制器105验证在步骤206中读取的闪速存储器104a的扇区152a的分区表大小166a。然后,过程进至步骤328。在步骤328,存储器控制器105确定对在步骤206中读取的闪速存储器104a的扇区152a的分区表大小166a的验证是否成功。如果对在步骤206中读取的闪速存储器104a的扇区152a的分区表大小166a的验证没有成功,过程就进至上面已说明的步骤306。如果对在步骤206中读取的闪速存储器104a的扇区152a的分区表大小166a的验证成功,过程就在步骤316结束。
如相对于闪速存储器104a和闪速存储器104b所说明的那样,本发明利用了双介质映像设计,其中格式化数据的相似副本(也称为关键数据)存在于在闪速存储器或者闪速存储器的多个单元内的不同扇区152a和152b中。如果并且当由于对触及格式化数据160a-166a的操作的中断导致格式化数据160a-166a的扇区152a被破坏时,本发明检测该破坏并利用类似格式化的扇区152b作为模板来重构受破坏的格式化数据160a-166a。然后,用重构的格式化来修复受破坏的扇区152a,使系统可以返回完整的能力和功能,而不向用户发出破坏警报。
虽然以上是结合优选实施例对本发明进行具体说明的,但本领域技术人员可以理解其中无论在形式上还是在细节上都可以作出各种更改,这并不背离本发明的精神和专利保护范围。同样重要的是要注意到,虽然本发明已经在功能完全的计算机系统的背景内作了说明,但本领域技术人员可以理解本发明的机制能作为程序产品以各种形式分发,无论用来实际执行分发的载有信号的介质的具体类型是什么本发明同样可以应用。承载信号的介质的例子包括但不局限于诸如软盘或CD ROM之类的可记录型介质和诸如数字或模拟通信链路之类的传输型介质。
权利要求
1.一种校正闪速存储器中的格式化错误的方法,所述方法包括发现在第一闪速存储器的第一格式化中的错误;从存储第二数据的第二闪速存储器提取第二格式化;用所述第二格式化的修改代替所述有错误的第一格式化;以及用所述第二格式化的所述修改将第一数据存储在所述第一闪速存储器中,其中所述第一数据不同于所述第二数据。
2.权利要求1的方法,还包括产生所述第二闪速存储器的副本的步骤。
3.权利要求2的方法,其中所述产生所述第二闪速存储器的副本的步骤进一步包括将所述第二闪速存储器的二进制映像复制到格式化修改存储单元的步骤。
4.权利要求3的方法,其中所述将所述第二闪速存储器的二进制映像复制到格式化修改存储单元的步骤进一步包括将所述第二闪速存储器的二进制映像复制到存储器控制器中的格式化修改存储单元的步骤。
5.权利要求1的方法,其中所述发现第一闪速存储器的第一格式化中的错误的步骤进一步包括验证所述第一闪速存储器中的第一头标;验证所述第一闪速存储器中的第一分区表偏移;验证所述第一闪速存储器中的第一分区名有效性;以及验证所述第一闪速存储器中的第一分区表大小。
6.权利要求1的方法,其中所述用所述第二格式化的所述修改代替所述有错误的第一格式化的步骤进一步包括修改所述第二存储器的所述第二格式化以构建所述第一存储器的所述第一格式化的所述修改的步骤。
7.权利要求1的方法,其中所述从存储第二数据的所述第二闪速存储器提取所述第二格式化的步骤进一步包括从所述第二闪速存储器提取第二头标、第二分区表偏移、第二分区名和第二分区表大小的步骤。
8.一种校正闪速存储器中的格式化错误的系统,所述系统包括发现第一闪速存储器的第一格式化中的错误的装置;从存储第二数据的第二闪速存储器提取第二格式化的装置;用所述第二格式化的修改代替所述有错误的第一格式化的装置;以及用所述第二格式化的所述修改将第一数据存储在所述第一闪速存储器中的装置,其中所述第一数据不同于所述第二数据。
9.权利要求8的系统,还包括产生所述第二闪速存储器的副本的装置。
10.权利要求9的系统,其中所述产生所述第二闪速存储器的副本的装置进一步包括将所述第二闪速存储器的二进制映像复制到格式化修改存储单元的装置。
11.权利要求10的系统,其中所述将所述第二闪速存储器的二进制映像复制到格式化修改存储单元的装置进一步包括将所述第二闪速存储器的二进制映像复制到存储器控制器中的格式化修改存储单元的装置。
12.权利要求8的系统,其中所述发现第一闪速存储器的第一格式化中的错误的装置进一步包括验证所述第一闪速存储器中的第一头标的装置;验证所述第一闪速存储器中的第一分区表偏移的装置;验证所述第一闪速存储器中的第一分区名有效性的装置;以及验证所述第一闪速存储器中的第一分区表大小的装置。
13.权利要求8的系统,其中所述用所述第二格式化的所述修改代替所述有错误的第一格式化的装置进一步包括修改所述第二存储器的所述第二格式化以构建所述第一存储器的所述第一格式化的所述修改的装置。
14.权利要求8的系统,其中所述从存储第二数据的所述第二闪速存储器提取所述第二格式化的装置进一步包括从所述第二闪速存储器提取第二头标、第二分区表偏移、第二分区名和第二分区表大小的装置。
全文摘要
本发明揭示了校正闪速存储器中的格式化错误的方法。发现第一闪速存储器的第一格式化中的错误,从存储第二数据的第二闪速存储器提取第二格式化。用第二格式化的修改代替有错误的第一格式化,并将第一数据与第二格式化的修改一同存储在第一闪速存储器中。第一数据不同于第二数据。
文档编号G06F11/00GK1967491SQ200610144658
公开日2007年5月23日 申请日期2006年11月14日 优先权日2005年11月15日
发明者阿迪特·D.·帕特尔, 约汉·S.·郎福德, 马克·A.·迪肯森 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1