CN107908572A - 一种重组NAND‑Flash芯片数据的方法 - Google Patents
一种重组NAND‑Flash芯片数据的方法 Download PDFInfo
- Publication number
- CN107908572A CN107908572A CN201711162744.3A CN201711162744A CN107908572A CN 107908572 A CN107908572 A CN 107908572A CN 201711162744 A CN201711162744 A CN 201711162744A CN 107908572 A CN107908572 A CN 107908572A
- Authority
- CN
- China
- Prior art keywords
- physical block
- address
- byte
- sequence number
- mark
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种重组NAND‑Flash芯片数据的方法,其特征在于包括以下步骤,S1:在所述NAND‑Flash芯片的每一物理块的字节长度范围内,以每一物理块的首字节地址为起始地址,查找Update Table的标识;S2:根据所述Update Table的标识,查找并读取Update Table数据;S3:查找并获取所述NAND‑Flash芯片的无效记录物理块的物理块序号,所述无效记录物理块为未存储数据的物理块;S4:查找Banks Table的标识;S5:根据所述Banks Table的标识,查找并读取用户数据;本发明具有简便有效、数据的恢复和重组成功率高的有益效果,并解决了现有技术中尚无针对主控芯片型号为SSS6677的芯片的数据重组技术方案的问题,实现了对此类NAND‑Flash存储设备的数据恢复与电子取证。
Description
技术领域
本发明属于数据恢复与电子取证领域,涉及Flash芯片的数据恢复与取证,尤其涉及一种重组NAND-Flash芯片数据的方法。
背景技术
NAND-Flash内存是Flash内存的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。NAND-Flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。
但是,当NAND-Flash存储设备里存放重要数据而NAND-Flash存储设备出现故障、用户无法正常读写数据的时候,需要对NAND-Flash存储设备的存储芯片进行拆除,直接对芯片读取数据,再根据主控芯片的型号对数据进行重组。现有技术中,针对NAND-Flash存储设备的故障而进行有效恢复和重组的方法很少,有些恢复和重组的技术方案过于复杂,操作起来比较繁琐,恢复和重组成功率较低,尤其对于NAND-Flash芯片的主控芯片型号为SSS6677的恢复和重组,现有技术中尚无具体的技术方案。
发明内容
本发明针对现有技术的不足和上述问题,提出一种重组NAND-Flash芯片数据的方法,通过分析即Update Table管理表及Banks Table管理表,寻址用户数据并重组,从而达到恢复数据的目的,所述方法包括以下步骤:
S1:在所述NAND-Flash芯片的每一物理块的字节长度范围内,以每一物理块的首字节地址为起始地址,查找Update Table的标识;
S2:根据所述Update Table的标识,查找并读取Update Table数据;
S3:查找并获取所述NAND-Flash芯片的无效记录物理块的物理块序号,所述无效记录物理块为未存储数据的物理块;
S4:查找Banks Table的标识;
S5:根据所述Banks Table的标识,查找并读取用户数据。
作为优选,所述NAND-Flash芯片的主控芯片型号为SSS6677。
作为优选,所述NAND-Flash芯片由多个物理块组成,每一所述物理块由多个页组成,每一所述页具有相同的页结构及相同的字节长度,每一所述页由多个扇区、与所述多个扇区各自一一对应的多个管理区及一个填充区组成。
作为优选,所述步骤S2包括以下步骤:
S201:查找所述Update Table数据的有效物理块序号:以所述Update Table的标识的后一字节地址为起始地址,每两字节为一组,顺序读取所述Update Table数据的物理块序号,其中,所述有效物理块序号以0x00000000为结束标识;
S202:根据所述Update Table数据的物理块序号,顺序读取所述Update Table数据。
作为优选,所述步骤S3中,其特征在于,所述步骤S3中,以所述Update Table的标识的首字节地址为起始地址,向后跳转,跳转的字节长度为一个扇区的字节长度与一个管理区的字节长度之和,以每两字节为一组,顺序读取所述无效物理块序号,所述无效物理块序号以0x00000000为结束标识。
作为优选,所述步骤S5包括以下步骤:
S501:以所述Banks Table的标识的首字节地址为起始地址,向前跳转0x190个字节,以每两字节为一组,顺序读取所述Banks Table的物理块序号,其中,所述Banks Table的物理块序号以0xFFFF为结束标识;
S502:判断所述Banks Table的物理块序号是否等于0xFFFF,如果是,执行步骤S508,否则,执行步骤S503;
S503:查找所述Banks Table的物理块序号的首字节地址,以所述Banks Table的物理块序号的首字节地址为起始地址,在所述Banks Table的物理块的字节长度范围内查找最后一个所述Banks Table的标识;
S504:寻址所述用户数据的末地址:以最后一个所述Banks Table的标识的首字节地址为起始地址,向前跳转0x191个字节,并标记当前地址为用户数据的物理块末地址;
S505:寻址所述用户数据的首地址:以所述末地址为起始地址,向前查找第一个内容为0xFF的字节地址,并以所述第一个内容为0xFF的字节地址的后一字节地址作为所述用户数据的物理块首地址;
S506:以当前地址为起始地址,以每两字节为一组,顺序读取所述用户数据的物理块序号,再以每两个所述组为一个重组单位,两个所述组的物理块之间以页交换的方式进行所述用户数据的重组。
S507:判断下一物理块序号是否等于0xFFFF,如果是,执行步骤S508,否则执行步骤S506;
S508:将所述重组的用户数据进行尾加,得到完整的用户数据。
作为优选,所述Update Table的标识为0x000000BF000000000000,所述BanksTable的标识为0x03000F000000BF00。
与现有技术相比,本发明的有益效果是方法简便有效,数据的恢复和重组成功率高,并解决了现有技术中尚无针对主控芯片型号为SSS6677的芯片的数据重组方案的问题,实现了对此类NAND-Flash存储设备的数据恢复与电子取证。
附图说明
图1为本发明的主流程图;
图2为本发明的实施例中Update Table的数据结构图;
图3为本发明的实施例中查找并读取Update Table的数据的处理流程图;
图4为本发明的实施例中一个有效物理块的数据结构示意图;
图5为本发明的实施例中无效物理块序号的数据结构图;
图6为本发明的实施例中Banks Table的数据结构图;
图7A、7B为本发明的实施例中一个物理块的数据结构图;
图8为本发明的实施例中用户数据的物理块序号的数据结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步阐述。
本实施例中,选用主控芯片型号为SSS6677的NAND-Flash芯片的U盘作为数据重组的存储设备,该U盘由多个物理块组成,每一物理块由0x80个页组成,每一页具有相同的页结构且字节长度为0x10E0,每一页由8个扇区、8个管理区及一个填充区组成,每一扇区的字节长度为0x200,每一管理区的字节长度为0x10,填充区的字节长度为0x60;因此,每一物理块的字节长度为0x10E0*0x80,即0x87000。
如图1所示,一种重组NAND-Flash芯片数据的方法,包括以下步骤:
S1:在该U盘的每一物理块的字节长度0x87000范围内,以每一物理块的首字节地址为起始地址,查找Update Table的标识0x000000BF000000000000,如图2中的黑色矩形框的内容所示;
S2:根据Update Table的标识0x000000BF000000000000,查找并读取UpdateTable数据,步骤S2包括图3所示的以下步骤:
S201:查找Update Table数据的有效物理块序号:有效物理块用以存储各种数据;
如图2所示,以Update Table的标识0x000000BF000000000000的后一字节地址为起始地址,每两字节为一组,顺序读取Update Table数据的物理块序号,如图2中粗黑下划线所示的0x0000表示第一个有效物理块,0x0001表示第二个有效物理块,0x0800表示第三个有效物理块,以此类推;其中,所述有效物理块序号以0x00000000为结束标识,如图2中的黑色椭圆框的内容所示;
S202:根据图2中所示的Update Table数据的物理块序号,顺序读取Update Table数据,图4示出了第一个有效物理块的数据结构图,即有效物理块序号为0x0000的有效物理块的数据结构图,需要注意的是,图4未示出第一个有效物理块的完整数据结构图,该有效物理块的字节长度应为0x87000,图4仅示出该物理块开始部分的内容;
S3:查找并获取NAND-Flash芯片的无效记录物理块的物理块序号,无效记录物理块为未存储数据的物理块;
以图2中所示的Update Table的标识0x000000BF000000000000的首字节地址为起始地址,向后跳转,所跳转的字节长度为一个扇区的字节长度0x200加上一个管理区的字节长度0x10,即0x210,如图5所示,目前寻址到0x43EDB210,以每两字节为一组,顺序读取所述无效物理块序号,图5中所示的黑色矩形框的内容为无效物理块序号,无效物理块序号以0x00000000为结束标识;其中,序号以黑色下划线所示的每两字节为一组,为了达到示例的目的,图5只对前4组无效物理块序号画出了黑色下划线;
S4:查找Banks Table的标识0x03000F000000BF00,如图6中黑色矩形框的内容所示;
S5:根据Banks Table的标识0x03000F000000BF00,查找并读取用户数据,步骤S5包括以下步骤:
S501:如图6所示,以Banks Table的标识0x03000F000000BF00的首字节地址为起始地址,向前跳转0x190个字节至0x00CFA860,以每两字节为一组,顺序读取Banks Table的物理块序号,如图6中黑色下划线所示的内容;其中,Banks Table的物理块序号以0xFFFF为结束标识;
S502:判断Banks Table的物理块序号是否等于0xFFFF,如果是,执行步骤S508,否则,执行步骤S503;
S503:查找Banks Table的物理块序号的首字节地址,以Banks Table的物理块序号的首字节地址为起始地址,在Banks Table的物理块的字节长度范围内查找最后一个Banks Table的标识:如图6中物理块序号为0x0018为例,该物理块的首字节地址为0x18*0x87000,即寻址到0xCA8000,如图7A所示,以0xCA8000为起始地址,在Banks Table的物理块的字节长度范围0x87000内查找最后一个Banks Table的标识0x03000F000000BF00,如图7B中黑色矩形框的内容所示;
S504:寻址用户数据的末地址:以最后一个Banks Table的标识0x03000F000000BF00的首字节地址为起始地址,向前跳转0x191个字节,并标记当前地址为用户数据的物理块末地址,如图7B中黑色椭圆框所示的地址0x00CFA85F;
S505:寻址用户数据的首地址:以该末地址0x00CFA85F为起始地址,向前查找第一个内容为0xFF的字节,如图8中黑色椭圆框所示的字节,其地址为0x00CFA43F,并以该字节地址的后一字节地址0x00CFA440作为用户数据的物理块首地址,如图8所示;
S506:如图8中黑色矩形框内黑色下划线所示,以当前地址0x00CFA440为起始地址,以每两字节为一组,顺序读取用户数据的物理块序号,例如0x006A为一组,0x0861为一组,以此类推;再以每两个组为一个重组单位,如图8中黑色矩形框的内容所示,两个组的物理块之间以页交换的方式进行用户数据的重组,本实施例中,以第一个黑色矩形框为例,将用户数据的物理块0x006A、0x0861为一个重组单位并进行两个物理块之间的页交换方式的用户数据的重组。
S507:判断下一物理块序号是否等于0xFFFF,如果是,执行步骤S508,否则执行步骤S506;
S508:将重组的用户数据进行尾加,得到完整的用户数据。
应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (7)
1.一种重组NAND-Flash芯片数据的方法,其特征在于包括以下步骤:
S1:在所述NAND-Flash芯片的每一物理块的字节长度范围内,以每一物理块的首字节地址为起始地址,查找Update Table的标识;
S2:根据所述Update Table的标识,查找并读取Update Table数据;
S3:查找并获取所述NAND-Flash芯片的无效记录物理块的物理块序号,所述无效记录物理块为未存储数据的物理块;
S4:查找Banks Table的标识;
S5:根据所述Banks Table的标识,查找并读取用户数据。
2.根据权利要求1所述的一种重组NAND-Flash芯片数据的方法,其特征在于,所述NAND-Flash芯片的主控芯片型号为SSS6677。
3.根据权利要求2所述的一种重组NAND-Flash芯片数据的方法,其特征在于,所述NAND-Flash芯片由多个物理块组成,每一所述物理块由多个页组成,每一所述页具有相同的页结构及相同的字节长度,每一所述页由多个扇区、与所述多个扇区各自一一对应的多个管理区及一个填充区组成。
4.根据权利要求3所述的一种重组NAND-Flash芯片数据的方法,其特征在于,所述步骤S2包括以下步骤:
S201:查找所述Update Table数据的有效物理块序号:以所述Update Table的标识的后一字节地址为起始地址,每两字节为一组,顺序读取所述Update Table数据的物理块序号,其中,所述有效物理块序号以0x00000000为结束标识;
S202:根据所述Update Table数据的物理块序号,顺序读取所述Update Table数据。
5.根据权利要求1所述的一种重组NAND-Flash芯片数据的方法,其特征在于,所述步骤S3中,以所述Update Table的标识的首字节地址为起始地址,向后跳转,跳转的字节长度为一个扇区的字节长度与一个管理区的字节长度之和,以每两字节为一组,顺序读取所述无效物理块序号,所述无效物理块序号以0x00000000为结束标识。
6.根据权利要求5所述的一种重组NAND-Flash芯片数据的方法,其特征在于,所述步骤S5包括以下步骤:
S501:以所述Banks Table的标识的首字节地址为起始地址,向前跳转0x190个字节,以每两字节为一组,顺序读取所述Banks Table的物理块序号,其中,所述Banks Table的物理块序号以0xFFFF为结束标识;
S502:判断所述Banks Table的物理块序号是否等于0xFFFF,如果是,执行步骤S508,否则,执行步骤S503;
S503:查找所述Banks Table的物理块序号的首字节地址,以所述Banks Table的物理块序号的首字节地址为起始地址,在所述Banks Table的物理块的字节长度范围内查找最后一个所述Banks Table的标识;
S504:寻址所述用户数据的末地址:以最后一个所述Banks Table的标识的首字节地址为起始地址,向前跳转0x191个字节,并标记当前地址为用户数据的物理块末地址;
S505:寻址所述用户数据的首地址:以所述末地址为起始地址,向前查找第一个内容为0xFF的字节地址,并以所述第一个内容为0xFF的字节地址的后一字节地址作为所述用户数据的物理块首地址;
S506:以当前地址为起始地址,以每两字节为一组,顺序读取所述用户数据的物理块序号,再以每两个所述组为一个重组单位,两个所述组的物理块之间以页交换的方式进行所述用户数据的重组。
S507:判断下一物理块序号是否等于0xFFFF,如果是,执行步骤S508,否则执行步骤S506;
S508:将所述重组的用户数据进行尾加,得到完整的用户数据。
7.根据权利要求5所述的一种重组NAND-Flash芯片数据的方法,其特征在于,所述Update Table的标识为0x000000BF000000000000,所述Banks Table的标识为0x03000F000000BF00。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711162744.3A CN107908572B (zh) | 2017-11-21 | 2017-11-21 | 一种重组NAND-Flash芯片数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711162744.3A CN107908572B (zh) | 2017-11-21 | 2017-11-21 | 一种重组NAND-Flash芯片数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107908572A true CN107908572A (zh) | 2018-04-13 |
CN107908572B CN107908572B (zh) | 2021-08-27 |
Family
ID=61846811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711162744.3A Active CN107908572B (zh) | 2017-11-21 | 2017-11-21 | 一种重组NAND-Flash芯片数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107908572B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1608257A (zh) * | 2001-10-26 | 2005-04-20 | 麦提林克斯公司 | 包括相关矩阵和基于量度分析的聚集系统资源分析 |
WO2005071577A1 (en) * | 2004-01-23 | 2005-08-04 | Majora Pty Ltd | Shift swapping system |
US20080082798A1 (en) * | 2006-09-29 | 2008-04-03 | 3Dlabs Inc. Ltd., | Flexible Microprocessor Register File |
CN101727398A (zh) * | 2008-10-31 | 2010-06-09 | 西安奇维测控科技有限公司 | 经信息序列化实现闪存控制器管理数据存储与还原的方法 |
CN102169462A (zh) * | 2011-04-27 | 2011-08-31 | 中国科学院光电技术研究所 | 基于NAND Flash的数据记录方法与记录控制器 |
CN102981965A (zh) * | 2012-11-07 | 2013-03-20 | 江苏乐买到网络科技有限公司 | 一种nand flash文件系统 |
CN106155578A (zh) * | 2015-04-27 | 2016-11-23 | 四川效率源信息安全技术有限责任公司 | 手机闪存芯片数据重组的方法 |
CN106201774A (zh) * | 2016-06-28 | 2016-12-07 | 中国人民解放军61660部队 | 一种nand flash存储芯片数据存储结构分析方法 |
-
2017
- 2017-11-21 CN CN201711162744.3A patent/CN107908572B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1608257A (zh) * | 2001-10-26 | 2005-04-20 | 麦提林克斯公司 | 包括相关矩阵和基于量度分析的聚集系统资源分析 |
WO2005071577A1 (en) * | 2004-01-23 | 2005-08-04 | Majora Pty Ltd | Shift swapping system |
US20080082798A1 (en) * | 2006-09-29 | 2008-04-03 | 3Dlabs Inc. Ltd., | Flexible Microprocessor Register File |
CN101727398A (zh) * | 2008-10-31 | 2010-06-09 | 西安奇维测控科技有限公司 | 经信息序列化实现闪存控制器管理数据存储与还原的方法 |
CN102169462A (zh) * | 2011-04-27 | 2011-08-31 | 中国科学院光电技术研究所 | 基于NAND Flash的数据记录方法与记录控制器 |
CN102981965A (zh) * | 2012-11-07 | 2013-03-20 | 江苏乐买到网络科技有限公司 | 一种nand flash文件系统 |
CN106155578A (zh) * | 2015-04-27 | 2016-11-23 | 四川效率源信息安全技术有限责任公司 | 手机闪存芯片数据重组的方法 |
CN106201774A (zh) * | 2016-06-28 | 2016-12-07 | 中国人民解放军61660部队 | 一种nand flash存储芯片数据存储结构分析方法 |
Non-Patent Citations (3)
Title |
---|
M. LIN: "Greedy page replacement algorithm for flash-aware swap system", 《EEE TRANSACTIONS ON CONSUMER ELECTRONICS》 * |
方健: "固态存储阵列关键技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
杜晔华: "嵌入式系统中闪速存储器系统的若干节能技术研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN107908572B (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI516935B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
CN101320594B (zh) | 一种闪存芯片的物理操作方法 | |
TW201135736A (en) | Methods for calculating compensating voltage and adjusting threshold voltage and memory apparatus and controller | |
CN102831072B (zh) | 闪存设备及其管理方法、数据读写方法及读写装置 | |
JP2015036982A5 (zh) | ||
CN103914397B (zh) | 闪存存储设备及其管理方法 | |
CN103425595A (zh) | 数据储存装置和闪存的区块管理方法 | |
TWI652577B (zh) | 資料儲存裝置及非揮發式記憶體操作方法 | |
TW201019107A (en) | Method for managing a memory apparatus, and associated memory apparatus thereof | |
JP2018190483A5 (zh) | ||
CN107562644B (zh) | 一种固态硬盘映射表的压缩方法 | |
CN103699673B (zh) | 一种移动终端的图片处理方法、装置和移动终端 | |
CN106205693A (zh) | 半导体存储器件 | |
CN103198021B (zh) | 一种提高固态硬盘数据传输效率的方法 | |
CN108681509A (zh) | 一种快速建立闪存映射表的方法 | |
CN104376099A (zh) | 一种基于闪存的文件系统的实现方法和实现装置 | |
CN106528441B (zh) | 仿真eeprom的数据处理方法、装置及电子设备 | |
CN109976664A (zh) | 固态存储设备的日志数据组织 | |
TW201351141A (zh) | 資料儲存裝置及資料清除方法 | |
WO2017096521A1 (zh) | 一种扩展用户分区的方法和装置 | |
CN107908572A (zh) | 一种重组NAND‑Flash芯片数据的方法 | |
CN103425546A (zh) | 一种通用高效高可靠的Nor Flash数据存储管理方法 | |
CN102855327B (zh) | 一种小型嵌入式文件存储管理系统 | |
CN105260130A (zh) | 一种希捷硬盘系统文件的读写方法 | |
CN105045537A (zh) | 电表参数数据的擦写方法、在电表存储设备中搜索电力线参数的方法以及一种电表 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |