一种实现NORFLASH坏块管理的方法及其控制电路转让专利

申请号 : CN200710176507.2

文献号 : CN101425334B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄钧李刚陈震徐磊陈冈宗萍乔瑛殷越刘亮

申请人 : 北京同方微电子有限公司

摘要 :

一种实现NOR FLASH坏块管理的方法及其控制电路,涉及FLASH闪存技术领域。本发明控制电路包括分为普通区、常用区和替换区的FLASH。普通区和常用区为系统总线可访问区域,普通区不可被替换。常用区可通过替换区对坏块的逻辑地址进行替换。替换区为常用区的替换备份区。本发明控制电路还包括控制FLASH擦替换的擦替换控制单元、系统上电时用来检查并校验写错误的上电纠错单元、索引存储单元以及控制FLASH擦写时序的FLASH接口单元。同现有技术相比,本发明通过对FLASH进行物理上的配置分区,对坏块进行记录和擦写替换以及上电纠错,实现系统逻辑地址访问NOR FLASH时,有不同擦写耐力。

权利要求 :

1.一种实现NOR FLASH坏块管理的方法,将FLASH分为普通区、常用区和替换区,其主要步骤为:

①系统上电时,上电纠错单元检查索引存储单元信息,如有损坏,校验索引存储单元的错误信息并对其进行纠正;

②系统访问NOR FLASH普通区时,如出现坏块不做替换;当系统对常用区进行擦动作发现有坏块时,擦替换控制单元通过FLASH接口单元在索引存储单元的信息里找到替换区已被替换的地址索引的最大值,然后改写索引存储单元;

③系统访问常用区坏块地址时,控制电路将通过索引存储单元自动找到替换区的替换数据块。

2.如权利要求1所述的实现NOR FLASH坏块管理的方法,其特征在于,所述索引存储单元被分为Ax和Ay两个存储区域,存取同样的数据;系统上电时依次扫描两个存储区域中对应单元的值,如果发现两者的值不相等,则记录此Ax和Ay单元的位置,待扫描完Ax和Ay,找到了当前已使用过的替换区的最大地址,再将该最大值加1的地址索引值改写入相应的Ax和Ay对应单元达到纠错的目的。

3.如权利要求1或2所述的实现NOR FLASH坏块管理的方法,其特征在于,所述索引存储单元用一个或多个字节,对应一个常用区的数据块地址,每个字节存储对应常用区数据块是否已被替换的信息,以及对应的替换区的地址信息。

4.如权利要求3所述的实现NOR FLASH坏块管理的方法,其特征在于,所述替换区的数据块逻辑地址对应于索引存储单元里的数据,替换区的物理地址为替换区基地址加上索引数据。

5.如权利要求4所述的实现NOR FLASH芯片坏块管理的方法,其特征在于,所述索引存储单元可以是FLASH的数据存储单元或一次编程区,也可以是其他在系统无电源时仍能保持存储数据的非易失性存储器EEPROM。

6.一种对如权利要求1所述的实现NOR FLASH坏块管理方法的控制电路,其特征在于,它包括分为普通区、常用区和替换区的FLASH,普通区和常用区为系统总线可访问区域,普通区不可被替换,常用区可通过替换区对坏块的逻辑地址进行替换,替换区为常用区的替换备份区;控制电路还包括控制FLASH擦替换的擦替换控制单元、系统上电时用来检查并校验写错误的上电纠错单元、索引存储单元以及控制FLASH擦写时序的FLASH接口单元,所述擦替换控制单元、上电纠错单元相互连接并分别与FLASH接口单元相互连接,FLASH接口单元和索引存储单元、FLASH相互连接。

7.如权利要求6所述的控制电路,其特征在于,所述擦替换控制单元包括擦写单元和回读校验单元,擦写单元控制FLASH的写操作和擦操作,回读校验单元用于擦结束回读校验。

8.如权利要求6或7所述的控制电路,其特征在于,所述索引存储单元可以是FLASH的数据存储单元或一次编程区,也可以是其他在系统无电源时仍能保持存储数据的非易失性存储器EEPROM。

9.如权利要求8所述的控制电路,其特征在于,所述索引存储单元被分为Ax和Ay两个存储区域,存取同样的数据。

说明书 :

一种实现NOR FLASH坏块管理的方法及其控制电路

技术领域

[0001] 本发明涉及FLASH闪存技术领域,特别是一种用于嵌入式系统或FLASH坏块进行管理的方法及其控制电路。

背景技术

[0002] FLASH又叫闪存,是非易失存储器,以页(SECTOR)或块(BLOCK)为单位对存储器单元进行擦写和再编程。任何FLASH器件的写入操作只能在空或已擦除的单元内进行,大多数情况下,在进行写入操作之前必须先执行擦除。
[0003] NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR FLASH技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND FLASH结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。
[0004] NOR的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在FLASH闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于FLASH的管理和需要特殊的系统接口。
[0005] NOR FLASH主要应用在代码存储介质中,占据了容量为1~16MB闪存市场的大部分,而NAND FLASH主要用在更大容量的产品当中。NOR的擦写次数是十万次,应付一般的应用足以。但在很多应用中,往往有部分数据需要常常更新维护,这部分数据就需要频繁擦写,它要求比十万次更高的擦写耐力,而用软件来实现坏的数据块的管理和更新备份会很烦琐,也会占用大量系统执行时间。

发明内容

[0006] 针对上述现有技术中存在的不足,本发明的目的是提供一种实现NOR FLASH坏块管理的方法及其控制电路。它通过对FLASH进行物理上的配置分区,对坏块进行记录和擦写替换以及上电纠错,实现系统逻辑地址访问NOR FLASH时,有不同擦写耐力。
[0007] 为了实现上述发明的目的,本发明的技术方案以如下方式实现:
[0008] 一种实现NOR FLASH坏块管理的方法,将FLASH分为普通区、常用区和替换区,其主要步骤为:
[0009] ①系统上电时,上电纠错单元检查索引存储单元信息,如有损坏,校验索引存储单元的错误信息并对其进行纠正;
[0010] ②系统访问NOR FLASH普通区时,如出现坏块不做替换;当系统对常用区进行擦动作发现有坏块时,擦替换控制单元通过FLASH接口单元在索引存储单元的信息里找到替换区已被替换的地址索引的最大值,然后改写索引存储单元;
[0011] ③系统访问常用区坏块地址时,控制电路将通过索引存储单元自动找到替换区的替换数据块。
[0012] 在上述实现NOR FLASH坏块管理的方法中,所述索引存储单元被分为Ax和Ay两个存储区域,存取同样的数据;系统上电时依次扫描两个存储区域中对应单元的值,如果发现两者的值不相等,则记录此Ax和Ay单元的位置,待扫描完Ax和Ay,找到了当前已使用过的替换区的最大地址,再将该最大值加1的地址索引值改写入相应的Ax和Ay对应单元达到纠错的目的。
[0013] 在上述实现NOR FLASH坏块管理的方法中,所述索引存储单元用一个或多个字节,对应一个常用区的数据块地址,每个字节存储对应常用区数据块是否已被替换的信息,以及对应的替换区的地址信息。
[0014] 在上述实现NOR FLASH坏块管理的方法中,所述替换区的数据块逻辑地址对应于索引存储单元里的数据,替换区的物理地址为替换区基地址加上索引数据。
[0015] 在上述实现NOR FLASH坏块管理的方法中,所述索引存储单元可以是FLASH的数据存储单元或一次编程区,也可以是其他在系统无电源时仍能保持存储数据的非易失性存储器,如EEPROM。
[0016] 对上述实现NOR FLASH坏块管理方法的控制电路,其结构特点是,它包括分为普通区、常用区和替换区的FLASH。普通区和常用区为系统总线可访问区域,普通区不可被替换。常用区可通过替换区对坏块的逻辑地址进行替换。替换区为常用区的替换备份区。控制电路还包括控制FLASH擦替换的擦替换控制单元、系统上电时用来检查并校验写错误的上电纠错单元、索引存储单元以及控制FLASH擦写时序的FLASH接口单元。所述擦替换控制单元、上电纠错单元相互连接并分别与FLASH接口单元相互连接,FLASH接口单元和索引存储单元、FLASH相互连接。
[0017] 在上述控制电路中,所述擦替换控制单元包括擦写单元和回读校验单元。擦写单元控制FLASH的写操作和擦操作,回读校验单元用于擦结束回读校验。
[0018] 在上述控制电路中,所述索引存储单元可以是FLASH的数据存储单元或一次编程区,也可以是其他在系统无电源时仍能保持存储数据的非易失性存储器,如EEPROM。
[0019] 在上述控制电路中,所述索引存储单元被分为Ax和Ay两个存储区域,存取同样的数据。
[0020] 本发明由于采用了上述的管理方法和与其适应的控制回路,通过对FLASH进行物理上的配置分区,实现FLASH在某一区域产生数据坏块情况下,系统还能对该FLASH区域进行访问。也就是说,在系统软件不做更改,也不对数据进行备份的情况下,本发明实现了坏块的数据备份,也就实现了系统对FLASH访问的高擦写耐力。
[0021] 下面结合附图和具体实施方式对本发明做进一步说明。

附图说明

[0022] 图1为本发明的控制电路结构示意图;
[0023] 图2为本发明实施例中索引存储单元的分配示意图;
[0024] 图3为本发明FLASH的擦操作以及替换程序流程图;
[0025] 图4为本发明的在系统中的应用示例图。

具体实施方式

[0026] 参看图1,本发明包括分为普通区、常用区和替换区的FLASH。普通区和常用区为系统总线可访问区域,普通区不可被替换。常用区可通过替换区对坏块的逻辑地址进行替换,替换区为常用区的替换备份区。本发明还包括控制FLASH擦替换的擦替换控制单元、系统上电时用来检查并校验写错误的上电纠错单元、索引存储单元以及控制FLASH擦写时序的FLASH接口单元。擦替换控制单元、上电纠错单元相互连接并分别与FLASH接口单元相互连接,FLASH接口单元和索引存储单元、FLASH相互连接。擦替换控制单元包括擦写单元和回读校验单元,擦写单元控制FLASH的写操作和擦操作,回读校验单元用于擦结束回读校验。索引存储单元可以是FLASH的数据存储单元或一次编程区,也可以是其他在系统无电源时仍能保持存储数据的非易失性存储器,如EEPROM。索引存储单元被分为Ax和Ay两个存储区域,存取同样的数据。
[0027] 参看图2,本发明使用时,假设常用区有128个数据块,并且常用区数据最多可被替换2次,则Ax区和Ay区分别为256字节,Ax就有Ax0~Ax127。每个Ax的位置就代表一个常用区地址,这个地址是相对于常用区的起始地址而言。每个Ax对应两个字节,每个字节的数据代表每一次替换的信息。每一个字节的定义为,bit[6:0]指的替换区数据块的索引地址,这个地址是相对于替换区的起始地址而言,实际访问替换区的地址是替换区起始地址加上此索引地址;bit[7]指的是常用区是否已经被替换,定义如果没被替换此位为1,已被替换此位为0。
[0028] 参看图3,FLASH的擦操作及替换程序流程的方法步骤为:
[0029] 系统开始工作,当访问NOR FLASH普通区时,如出现坏块不做替换。系统对常用区进行擦动作时,当常用区地址为0的数据块擦寿命第一次耗尽时,即经回读检查发现为坏块,会找到Ax区的Ax0位置。先查看第一个字节,第一个字节的内容为FF。擦替换控制单元通过FLASH接口单元在索引存储单元的信息里找到替换区已被替换的地址索引的最大值,然后将该最大值加1的地址索引值写入Ax0的第一个字节。此后,当系统访问常用区第一个数据块时,系统逻辑地址访问的还是常用区第一个数据块,但其物理地址将访问Ax0中第一个字节所指向的替换区的地址。
[0030] 当常用区地址为0的数据块擦寿命第二次耗尽时,会找到Ax0位置。先查看第一个字节,第一个字节的内容已经改写,于是查看第二个字节。擦替换控制单元通过FLASH接口单元在索引存储单元的信息里找到替换区已被替换的地址索引的最大值,然后将该最大值加1的地址索引值写入Ax0的第二个字节。此后,当系统访问常用区地址为0的数据块时,系统逻辑地址访问的还是常用区地址为0的数据块,但其物理地址将访问Ax0中第二个字节所代表的替换区的地址。
[0031] 这样就实现了常用区寿命结束被替换区所替换的功能,其他数据块以此类推。
[0032] 图4为本发明在系统中的应用示例图,系统中的Cpu通过本发明控制电路访问NOR FLASH。Cpu将地址和控制信号经控制电路传达到NOR FLASH,并经控制电路与NOR FLASH进行数据交换。