CN109766216A - 一种基于flash的数据掉电位置的恢复方法 - Google Patents
一种基于flash的数据掉电位置的恢复方法 Download PDFInfo
- Publication number
- CN109766216A CN109766216A CN201811560744.3A CN201811560744A CN109766216A CN 109766216 A CN109766216 A CN 109766216A CN 201811560744 A CN201811560744 A CN 201811560744A CN 109766216 A CN109766216 A CN 109766216A
- Authority
- CN
- China
- Prior art keywords
- block
- nand flash
- flash
- data
- power down
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000013500 data storage Methods 0.000 description 6
- 239000003990 capacitor Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000004146 energy storage Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种基于FLASH的数据掉电位置的恢复方法,其特征在于:在NAND FLASH数据存储、读取和擦除中,采用NvRAM记录NAND FLASH的块存储状态;在NAND FLASH上电时,遍历NvRAM中记录的NAND FLASH的块存储状态,计算出NAND FLASH的数据掉电存储位置。本发明能够解决FLASH的数据掉电的问题,保证数据的安全。
Description
技术领域
本发明涉及基于NAND FLASH电子盘存储管理技术领域,尤其是一种基于FLASH的数据掉电位置的恢复方法。
背景技术
现有大多数的NAND FALSH电子盘在存储过程中如果要对电子盘进行断电,必须确保没有进行数据存储,如果在存储过程中掉电,很容易造成电子盘数据错乱,已经存储在硬件中的数据无法使用;
虽然有极少数电子盘具有掉电保护功能,但是都是采用大容量储能电容为断电后提供短时的供电,确保数据存储完成,大容量储能电容成本高,而且一般一两个电容还无法满足掉电后持续存储数据的要求,还需要有额外的电路保证掉电后电容的电量仅给电子盘供电而不会给电源线供电,因此这种方法硬件成本高,电路复杂,电容数量多,在上电时容易产生较大的浪涌电流,对供电电源也提出了具有较高的供电能力,因此使用电容储能并不是最好的方案。
发明内容
本发明的发明目的在于:针对上述存在的问题,提供一种基于FLASH的数据掉电位置的恢复方法,采用NvRAM进行记录NAND FLASH的块存储状态,而不记录具体的存储物理位置,在电子盘上电时,通过遍历NvRAM中记录的NAND FLASH的块存储状态,计算出数据存储的结束物理位置,在有新数据存储时,继续存储数据。
本发明采用的技术方案如下:
本发明一种基于FLASH的数据掉电位置的恢复方法:在NAND FLASH数据存储、读取和擦除中,采用NvRAM记录NAND FLASH的块存储状态;在NAND FLASH上电时,遍历NvRAM中记录的NAND FLASH的块存储状态,计算出NAND FLASH的数据掉电存储位置。
作为优选,所述采用NvRAM记录NAND FLASH的块存储状态的具体方法包括以下步骤:
步骤一:使用FPGA控制NAND FLASH芯片,采用FPGA接收外部芯片的数据,将数据存储到NAND FLASH中,数据存储结束后,再通过FPGA将NAND FLASH中存储的数据读取出来;
步骤二:采用FPGA控制NvRAM,使NvRAM记录NAND FLASH的坏块和每个块的使用次数。
作为优选,所述计算NAND FLASH的数据掉电存储位置的具体方法:通过FPGA遍历NvRAM中记录的每个块的使用次数,当检测到前面一个块和后面一个块的使用次数不同时,前面一个块为上次掉电时的存储位置,本次上电存储时从后面一个块开始存储。
作为优选,所述步骤二的具体方法:每个块对应一个块计数器来记录状态,每写一个新块,将该块对应的计数器加1,每个块使用1个字节进行循环计数;当进行擦除操作时,将擦除后返回的该块是否为坏块的标记记录在NvRAM中。
作为优选,还包括:当对NAND FLASH进行格式化操作时,将所有块的计数器清零,下次上电时,FPGA检测到所有块的块计数器相同,则从第0块开始存储。
综上所述,由于采用了上述技术方案,本发明的有益效果是:与现有技术相比,本发明基于FLASH的数据掉电位置恢复方法,易于移植,并且已经在工程中经过验证,可以确保电子盘在存储过程中掉电不会出现数据错乱并且下次上电后数据可以正常进行存储。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是本发明一种基于FLASH的数据掉电位置恢复方法的流程图。
图2是FPGA的控制逻辑框图。
图3是实施例中格式化后所有计数器清零的状态图。
图4是实施例中部分块存储一次后的NvRAM状态图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
如图1所示 ,本发明一种基于FLASH的数据掉电位置的恢复方法,包括:在NANDFLASH数据存储、读取和擦除中,采用NvRAM记录NAND FLASH的块存储状态;在NAND FLASH上电时,遍历NvRAM中记录的NAND FLASH的块存储状态,计算出NAND FLASH的数据掉电存储位置。
所述NvRAM记录NAND FLASH的块存储状态的具体方法包括以下步骤:
步骤一:使用FPGA控制NAND FLASH芯片,采用FPGA接收外部芯片的数据,将数据存储到NAND FLASH中,数据存储结束后,再通过FPGA将NAND FLASH中存储的数据读取出来;
步骤二:采用FPGA控制NvRAM,使NvRAM记录NAND FLASH的坏块和每个块的使用次数;
所述步骤二的具体方法:每个块对应一个块计数器来记录状态,每写一个新块,将该块对应的计数器加1,每个块使用1个字节进行循环计数;当进行擦除操作时,将擦除后返回的该块是否为坏块的标记记录在NvRAM中。
所述计算NAND FLASH的数据掉电存储位置的具体方法:通过FPGA遍历NvRAM中记录的每个块的使用次数,当检测到前面一个块和后面一个块的使用次数不同时,前面一个块为上次掉电时的存储位置,本次上电存储时从后面一个块开始存储;当对NAND FLASH进行格式化操作时,将所有块的计数器清零,下次上电时,FPGA检测到所有块的块计数器相同,则从第0块开始存储。
如图2所示,FPGA接收外部输入的数据,依次经过数据缓存和写FLASH缓存,进入写FLASH模块,启动FLASH控制器模块,在FLASH阵列中写入数据,完成数据的存储;当需要读取FLASH,利用读FLASH模块,启动FLASH控制器模块,从FLASH阵列中读出数据,依次经过FLASH缓存仲裁、读FLASH缓存和USB控制模块,通过USB接口上传到计算机使用;当需要擦除FLASH,通过 擦除FLASH模块,启动FLASH控制器模块,擦除FLASH上的相应数据,完成擦除;FPGA连接NvRAM芯片,FPGA中包含NvRAM控制模块,通过NvRAM控制模块,FPGA能够控制NvRAM芯片,分别将NAND FALSH阵列的块的存储状态记录在NvRAM芯片中,同时遍历NvRAM芯片,检测块的存储状态。
NAND FLASH的数据存储最小单位为一页,多个页组成一个块。在实施例中选用的NAND FLASH大小为1GB,共包含4096个块,每个块包含64页,每页的大小为4096字节,使用8片NAND FLASH组成8GB的NAND FALSH阵列;使用一片128KB的NvRAM记录NAND FLASH的坏块和每个块的使用次数,当进行擦除操作时,将擦除后返回的该块是否为坏块的标记记录在NvRAM中,坏块则记录为0x00,非坏块则记录为0xFF,4096个块使用4096字节进行标记。
每写一个新块,则将该块对应的计数器加1,每个块使用1个字节进行循环计数,这样在写NvRAM时只需要一个操作,避免需要多个操作才能完成写NvRAM时,在写的过程中异常掉电问题。
如图3所示,当对NAND FLASH电子盘进行格式化操作时,将所有块的计数器清零,下次上电时,FPGA逻辑检测到所有块的块计数器相同,则从第0块开始存储,当FPGA接收的外部输入数据达到32KB时,FPGA启动存储操作,数据存储完成后,如果本次是存储一个新块的第一页,则将本块对应的块计数器加1,否则,块计数器保持不变。
在下次上电时,FPGA逻辑遍历NvRAM中记录的每个块的使用次数,当检测到前面一个块和后面一个块的使用次数不同时,表明上次掉电时存储的是前面一个块,本次上电存储时从后面一个块开始存储。
根据图3可知,上次掉电时数据存储在第20块,下次上电时从第21块开始存储;每次存储只需要执行一次操作,更新一个字节,存储信息安全可靠。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (5)
1.一种基于FLASH的数据掉电位置的恢复方法,其特征在于:在NAND FLASH数据存储、读取和擦除中,采用NvRAM记录NAND FLASH的块存储状态;在NAND FLASH上电时,遍历NvRAM中记录的NAND FLASH的块存储状态,计算出NAND FLASH的数据掉电存储位置。
2.如权利要求1所述的基于FLASH的数据掉电位置的恢复方法,其特征在于:所述NvRAM记录NAND FLASH的块存储状态的具体方法包括以下步骤:
步骤一:使用FPGA控制NAND FLASH芯片,采用FPGA接收外部芯片的数据,将数据存储到NAND FLASH中,数据存储结束后,再通过FPGA将NAND FLASH中存储的数据读取出来;
步骤二:采用FPGA控制NvRAM,使NvRAM记录NAND FLASH的坏块和每个块的使用次数。
3.如权利要求1所述的基于FLASH的数据掉电位置的恢复方法,其特征在于:所述计算NAND FLASH的数据掉电存储位置的具体方法:通过FPGA遍历NvRAM中记录的每个块的使用次数,当检测到前面一个块和后面一个块的使用次数不同时,前面一个块为上次掉电时的存储位置,本次上电存储时从后面一个块开始存储。
4.如权利要求2所述的基于FLASH的数据掉电位置的恢复方法,其特征在于:所述步骤二的具体方法:每个块对应一个块计数器来记录状态,每写一个新块,将该块对应的计数器加1,每个块使用1个字节进行循环计数;当进行擦除操作时,将擦除后返回的该块是否为坏块的标记记录在NvRAM中。
5.如权利要求4所述的基于FLASH的数据掉电位置的恢复方法,其特征在于:还包括:当对NAND FLASH进行格式化操作时,将所有块的计数器清零,下次上电时,FPGA检测到所有块的块计数器相同,则从第0块开始存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811560744.3A CN109766216A (zh) | 2018-12-20 | 2018-12-20 | 一种基于flash的数据掉电位置的恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811560744.3A CN109766216A (zh) | 2018-12-20 | 2018-12-20 | 一种基于flash的数据掉电位置的恢复方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109766216A true CN109766216A (zh) | 2019-05-17 |
Family
ID=66452058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811560744.3A Pending CN109766216A (zh) | 2018-12-20 | 2018-12-20 | 一种基于flash的数据掉电位置的恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766216A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154447A (zh) * | 2006-09-28 | 2008-04-02 | 北京握奇数据系统有限公司 | 一种闪存控制方法及闪存 |
EP2264602A1 (en) * | 2009-06-17 | 2010-12-22 | Gemalto SA | Memory device for managing the recovery of a non volatile memory |
WO2012008732A2 (ko) * | 2010-07-12 | 2012-01-19 | (주)이더블유비엠코리아 | 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 |
CN106227620A (zh) * | 2016-07-20 | 2016-12-14 | 中国航空工业集团公司航空动力控制系统研究所 | 可恢复的Flash数据存储方法 |
-
2018
- 2018-12-20 CN CN201811560744.3A patent/CN109766216A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154447A (zh) * | 2006-09-28 | 2008-04-02 | 北京握奇数据系统有限公司 | 一种闪存控制方法及闪存 |
EP2264602A1 (en) * | 2009-06-17 | 2010-12-22 | Gemalto SA | Memory device for managing the recovery of a non volatile memory |
WO2012008732A2 (ko) * | 2010-07-12 | 2012-01-19 | (주)이더블유비엠코리아 | 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 |
CN106227620A (zh) * | 2016-07-20 | 2016-12-14 | 中国航空工业集团公司航空动力控制系统研究所 | 可恢复的Flash数据存储方法 |
Non-Patent Citations (2)
Title |
---|
周建峰等著: "《数据存储、恢复与安全应用实践》", vol. 1, 中国铁道出版社, pages: 44 * |
邢旺等: "数据记录器中NAND Flash的坏块管理方法", 《舰船电子工程》, no. 08, 20 August 2016 (2016-08-20), pages 132 - 160 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10007431B2 (en) | Storage devices configured to generate linked lists | |
US10776153B2 (en) | Information processing device and system capable of preventing loss of user data | |
US10275310B2 (en) | Updating exclusive-or parity data | |
US8504762B2 (en) | Flash memory storage device with data interface | |
US8775874B2 (en) | Data protection method, and memory controller and memory storage device using the same | |
CN102081577B (zh) | 对Flash存储器的数据存储结构进行数据操作的方法 | |
TWI451435B (zh) | 非揮發性記憶體儲存裝置、記憶體控制器與資料儲存方法 | |
US9280460B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
TWI645404B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
US20190034098A1 (en) | Solid-state drive with non-volatile random access memory | |
US9442834B2 (en) | Data management method, memory controller and memory storage device | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US9519436B1 (en) | Memory erasing method, memory controller, and memory storage apparatus | |
US9177656B2 (en) | Data writing method, memory storage device and memory controlling circuit unit | |
US9696922B2 (en) | Storage system | |
US9652330B2 (en) | Method for data management and memory storage device and memory control circuit unit | |
CN104699413A (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
CN108959589B (zh) | 基于stt-mram加速固态存储器件日志文件保存恢复的方法 | |
TW201707002A (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
US10824366B2 (en) | Method for recording duration of use of data block, method for managing data block using the same and related device | |
CN109992201A (zh) | 数据存储设备及其操作方法 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
US20110264848A1 (en) | Data recording device | |
CN109766216A (zh) | 一种基于flash的数据掉电位置的恢复方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190517 |
|
RJ01 | Rejection of invention patent application after publication |