一种提高NANDFLASH可靠性的方法及装置与流程

文档序号:11136051阅读:683来源:国知局
本发明涉及闪存
技术领域
,具体涉及一种提高NANDFLASH可靠性的方法及装置。
背景技术
:由于NANDFLASH具有容量大、成本低、改写速度快的优点,已经逐渐在支付终端、车载导航、工控设备、机顶盒等嵌入式设备上得到了使用,替代了原来NORFLASH等存储设备的地位。但NANDFLASH的可靠性却不如以往的存储设备,而且随着工艺的提高,可靠性不断下降。NANDFLASH的较低可靠性特别表现在终端掉电的时候。在擦除或编程过程中掉电,会导致相应区域的数据处于不稳定状态,这使得终端中存储的数据发生错误,甚至导致终端无法使用。目前,由于NANDFLASH具备众多不可靠性,通常使用在带电池的终端产品(或使用备份电池)上,这样产品有电池供电,很少出现突然掉电导致的问题。而一些有高可靠性要求的工控类设备,则还是使用原来的NORFLASH等存储设备,以避免可靠性问题。在一个使用NANDFLASH作为存储器的终端上,NANDFLASH划分为多个分区,有的分区存放整体镜像(比如Linux内核/UBOOT),除非是更新,否则都是读取;有的分区则是基于文件系统,可以以读写文件或目录。所以掉电过程中可能在编程和擦除的区域基本都是属于文件系统分区。对于NANDFLASH,常用的文件系统有JFFS2和UBIFS,目前基本都是使用UBIFS。UBIFS还需要通过一个存储设备管理层UBI实现基于NAND的文件系统操作。NANDFLASH在编程和擦除过程中,如果遇到掉电,会产生不稳定的位(unstablebits)。由于编程或擦除没有完成,所以正在进行编程或擦除区域的位的电荷不稳定,存在着一些位的值有时为0,有时为1的情况,即不稳定位。不稳定位对文件系统或者其保存的数据会造成致命影响。比如:正在编程过程中掉电,重新启动后,不稳定位都是正确值;这样,启动过程中文件系统驱动进行的恢复操作就认为该页内容正确,并按相应内容进行了恢复操作。可是,后续重新上电或重启后,该页内的不稳定位突然跳变,而且超过ECC纠错能力,这样使得该页数据非法。文件系统分区中如果一个有效数据页内容非法,可能造成某个文件数据异常导致数据丢失,或者文件系统的原数据异常导致分区无法正常挂载文件系统从而导致整个分区无法访问。所以,掉电时需要对编程操作进行保护。技术实现要素:本发明所要解决的技术问题是:提高一种提高NANDFLASH可靠性的方法及装置。为了解决上述技术问题,本发明采用的技术方案为:提供一种提高NANDFLASH可靠性的方法,包括如下步骤:在使用过程中,NANDFLASH进行读取、擦除或编程的操作;NAND控制器接收到中断信号后,判断NANDFLASH当前的操作的类型;所述NANDFLASH包括支持完成一次NAND的编程操作的电容;若为编程操作,利用所述电容完成编程操作,通过NANDFLASH控制器复位NANDFLASH,结束当前正在进行的操作;若不为编程操作,通过NANDFLASH控制器复位NANDFLASH,结束当前正在进行的操作。优选的,上述的提高NANDFLASH可靠性的方法中,所述NANDFLASH包括IO口线,用于触发电平发送中断信号至NANDFLASH控制器。本发明的另一技术方案为提供一种提高NANDFLASH可靠性的装置,包括:IO口线,用于触发电平发送中断信号至NANDFLASH控制器;电容,用于支持完成一次NAND的编程操作的电容;NAND控制器,用于接收到中断信号后,判断NANDFLASH当前的操作的类型;若为编程操作,利用所述电容完成编程操作,复位NANDFLASH,结束当前正在进行的操作;若不为编程操作,复位NANDFLASH,结束当前正在进行的操作。本发明的有益效果在于:与现有技术相比,本发明抓住了掉电需要保护的关键操作-编程操作,通过保证掉电时完成整个编程操作,有效避免了掉电对NANDFLASH数据的损坏,保证了使用NANDFLASH终端的数据可靠性。此外,本发明技术方案实现难度不大,且增加的成本有限,可用于产业化生产产品。附图说明图1为本发明具体实施方式的提高NANDFLASH可靠性的装置的结构框图:1、提高NANDFLASH可靠性的装置;11、IO口线;12、电容;13、NAND控制器。具体实施方式为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。NANDFLASH:一种非易失闪存技术,内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。具有容量较大,改写速度快等优点,适用于大量数据的存储。NORFLASH:一种非易失闪存技术,读速度快,改写速度慢,容量较小。擦除:将FLASH中一个块/扇区的所有数据位都变为1,NANDFLASH擦除以块为单位,一个块包含多个页。编程:将FLASH中一个页/字节的某些数据位变为0,NANDFLASH编程以页为单位。UBI:FLASH的逻辑卷管理层,实现磨损平衡、逻辑块管理、卷管理和坏块管理。UBIFS:一种用于FLASH的日志文件系统,基于UBI实现。NANDFLASH的一个块需要擦除后才能重新编程,而编程是以页为单位,所以编程单位小于擦除单位。这样,UBIFS等用于NAND的文件系统,如果需要擦除一个块时,这个块中内容已经是标记为无效数据;也就是说,擦除的块中数据都是无效的。所以,文件系统分区如果在擦除过程中掉电,且出现了不稳定位,也不会影响这个分区文件系统的有效性和包含数据的有效性。由此,对于文件系统分区,掉电时只需要对编程操作进行保护,而不需要对擦除操作进行保护。而且,擦除操作时间长达几毫秒,也难以保证完成。基于上面的原理,我们只需要实现在掉电时保证一个页的擦除操作完成即可。本发明最关键的构思在于:本发明通过保证编程过程不受掉电干扰,从而有效避免了掉电对NANDFLASH数据的损坏,保证了使用NANDFLASH终端的数据可靠性。请参照图1,本发明提供一种提高NANDFLASH可靠性的方法,包括如下步骤:在使用过程中,NANDFLASH进行读取、擦除或编程的操作;NAND控制器接收到中断信号后,判断NANDFLASH当前的操作的类型;所述NANDFLASH包括支持完成一次NAND的编程操作的电容;所述NANDFLASH包括IO口线,用于触发电平发送中断信号至NANDFLASH控制器。若为编程操作,利用所述电容完成编程操作,通过NANDFLASH控制器复位NANDFLASH,结束当前正在进行的操作;若不为编程操作,通过NANDFLASH控制器复位NANDFLASH,结束当前正在进行的操作。使处理器一直在上述步骤“判断NANDFLASH当前的操作的类型”后至步骤结束中循环而不返回,避免中断处理程序返回后进行其他操作,等待系统掉电关机。本发明还提供一种提高NANDFLASH可靠性的装置1,包括:IO口线11,用于触发电平发送中断信号至NANDFLASH控制器;电容12,用于支持完成一次NAND的编程操作的电容;NAND控制器13,用于接收到中断信号后,判断NANDFLASH当前的操作的类型;若为编程操作,利用所述电容完成编程操作,复位NANDFLASH,结束当前正在进行的操作;若不为编程操作,复位NANDFLASH,结束当前正在进行的操作。本发明上述提高NANDFLASH可靠性的方法及装置中:硬件上实现了下面特性:1)、掉电中断:在掉电时,IO口线触发电平,并产生中断信号;2)、在掉电时,电容可支持完成一次NAND的编程操作。对于页大小2KB的NAND,一页编程操作最大时间大约700微秒,典型值200微秒。软件上的实现具体如下(NAND控制器接收中断信号后):1)检查NAND控制器,确定是否有操作正在进行中,如果有,确定操作类型(编程/擦除/读取);2)如果是编程操作,等待编程操作完成,通过控制器复位NAND,结束当前正在进行的操作;如果不是编程操作,通过控制器复位NAND,结束当前正在进行的操作;3)用while(1);等语句让处理器一直在上述1)和步骤2)中循环而不返回,避免中断处理程序返回后进行其他操作,等待系统掉电关机。通过上面的软硬件结合措施,保证了掉电时编程操作完成,从而有效避免了因为掉电导致文件系统分区数据损坏甚至整个分区损坏,提高了终端可靠性。综上所述,本发明提供的提高NANDFLASH可靠性的方法及装置抓住了掉电需要保护的关键操作-编程操作,通过保证掉电时完成整个编程操作,有效避免了掉电对NANDFLASH数据的损坏,保证了使用NANDFLASH终端的数据可靠性。此外,本发明技术方案实现难度不大,且增加的成本有限,可用于产业化生产产品。以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的
技术领域
,均同理包括在本发明的专利保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1