CN106201774B - 一种nand flash存储芯片数据存储结构分析方法 - Google Patents
一种nand flash存储芯片数据存储结构分析方法 Download PDFInfo
- Publication number
- CN106201774B CN106201774B CN201610482134.0A CN201610482134A CN106201774B CN 106201774 B CN106201774 B CN 106201774B CN 201610482134 A CN201610482134 A CN 201610482134A CN 106201774 B CN106201774 B CN 106201774B
- Authority
- CN
- China
- Prior art keywords
- data
- physical
- block
- page
- chip
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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
Abstract
本发明揭示了一种NAND FLASH存储芯片数据存储结构分析方法,确定芯片物理块和物理页的大小,以只读方式打开物理镜像;进行有效块判断;利用连续数据所在的物理页分析页结构;根据各物理页管理区比特位的变化情况确定逻辑块号、逻辑页号的位置;根据能体现数据连续性的数据体的数据连续情况进行数据交错分析与数据合并;根据逻辑块号的重复情况判断是否进行数据分段;进行数据重组;删除管理区数据,最终得到逻辑镜像文件。本发明实现了脱离NAND FLASH存储器控制电路前提下,存储芯片物理镜像到逻辑镜像的转换,达到了对该类设备损坏后进行数据恢复与取证的目的。
Description
技术领域
本发明属于NAND FLASH存储设备技术领域,特别涉及一种NAND FLASH存储芯片数据存储结构分析方法。
背景技术
基于NAND FLASH的存储设备作为新一代的半导体存储器,广泛应用于电子产品领域。传统硬盘等块设备的读写单位为扇区,NAND FLASH存储设备的读写特性则不同。通常NAND FLASH存储设备包含至少一个NAND FLASH芯片,每块芯片包含至少一个晶圆,每个晶圆由若干块组成,每个块包含若干页。NAND擦除的操作单位为块,写的操作单位为页,且无法对同一块内存位置重复执行写操作,必须先擦除,才可执行写操作。为避免频繁执行“擦除-写入”操作影响存储器的性能与寿命,该类设备大多设计了从物理单元到数据扇区的动态映射机制。由于数据不是顺序存放,当主控芯片损坏或其它原因导致映射机制失效时,即使NAND FLASH的内容被成功读取,也很难得到用户数据。
为将物理单元映射为数据扇区,NAND FLASH的页被分为数据区(DA)与管理区(SA),数据区即包含若干个数据扇区,大小为512的倍数,用于存储数据的有效内容。管理区则提供了能够将用户数据按照逻辑顺序存放到原来位置的参数,即逻辑块号和逻辑页号,除此之外管理区内还包括标识位、校验位等其他数据(EXT),其中管理区中一直保持不变的比特位为标识位,为确保数据完整性而进行错误检测和纠错的比特位为校验位。不同主控芯片设计的NAND FLASH页结构也各有不同,例如大小为2112的页可以设计为4*(512DA+16SA),也可以是[512DA+512DA]+16SA+2*(512DA+16SA)+16EXT。为提高数据读写效率,NANDFLASH还可以对某两个数据块进行同时读写,在存储上表现为数据交错存储。为减少管理区内逻辑块号的编址位,某些存储设备还对芯片数据进行了平均分段。
由于NAND FLASH页尺寸不同,设计者的软件方案各异,现有技术中尚无成熟通用的NAND FLASH存储芯片数据存储结构分析方法。如何将芯片的物理镜像根据逻辑块号、逻辑页号进行重组,进而转换为块设备的数据扇区存储格式,成为该类设备数据恢复与取证的难题。
发明内容
本发明的目的是解决在脱离FLASH存储器控制电路直接读取并重组Flash芯片的数据的问题,提出了一种NAND FLASH存储芯片数据存储结构分析方法,具体包括以下步骤:
100、确定芯片的物理块大小和物理页大小,提取NAND FLASH芯片的物理镜像并以只读方式打开镜像文件A;
200、有效块判断:逐字节搜索镜像文件,统计连续多个字节取值等于0x00或0xFF的个数n,并记录这些连续数据所在的物理块号,若n大于门限值min时,所述连续数据所在的物理块为无效块,否则为有效块;
300、页结构分析:在存在前述连续数据的有效块中,选取前述连续数据所在的物理页进行统计,查找第一个连续512字节的数据片段即为首个数据扇区,接下来依次查找其余数据扇区,数据扇区以外的数据片段为管理区;
400、逻辑块号、逻辑页号比特位判断:对比某个有效块中某物理页内部的多个管理区片段,找到保持不变的比特位{a},对比某个有效块中各物理页的一个管理区片段,找到保持不变的比特位{b},对比整个芯片中各物理页的一个管理区片段,找到保持不变的比特位{c},比特位{a}除去比特位{b}后得到逻辑页号所在比特位,比特位{b}除去比特位{c}后得到逻辑块号所在比特位;
500、数据交错分析与数据合并:
若芯片只包含一个晶圆,则不存在数据交错;
若芯片包含两个以上晶圆,则存在数据交错的可能性,确定芯片内能体现数据连续性的数据体,若该数据体的两个连续片段分别处于同一晶圆内两相邻物理块内相同序号的物理页,则该晶圆的奇数序号物理块与偶数序号物理块需要按页进行数据合并;若该数据体的两个连续片段分别处于不同晶圆内相同序号物理块内相同序号的物理页,则该芯片不同晶圆的相同序号物理块需要按页进行数据合并;若该数据体的两个连续片段分别处于不同晶圆内相同序号物理块的末序号物理页和首序号物理页,则该芯片不同晶圆的相同序号物理块需要按块进行数据合并;
其余情况不进行数据合并,最终得到中间文件B;
600、数据分段:提取芯片某晶圆各奇数序号物理块的逻辑块号,统计各逻辑块号的重复情况,
若出现次数N≥2,则将所述中间文件平均分成N个子中间文件C;若N=1或管理区内无逻辑块号,则无需进行数据分段;
700、数据重组:各有效块的数据按逻辑块号顺序组合,对每个有效块内的数据,按逻辑页号顺序组合,若管理区中无逻辑页号,则有效块内数据按物理页顺序组合,若执行了数据分段,则将数据重组后的N个子中间文件C顺序拼接得到结果文件D1;若管理区中无逻辑块号与逻辑页号,则无需进行数据重组,将所述镜像文件去除无效块,顺序拼接得到结果文件D2。
800、删除管理区:将结果文件D1或者D2中每个页的管理区数据全部删除,得到逻辑镜像文件E。
优选地,上述门限值min的取值为物理页大小。
优选地,上述能体现数据连续性的数据体,若为FAT文件系统,该数据体为FAT表,若为NTFS文件系统,该数据体为MFT。
有益效果:
采用本发明方法用于智能手机、U盘等设备中的NAND FLASH存储芯片在脱离主控芯片情况下,直接分析芯片物理镜像中的数据存储结构,从而利用现有的针对硬盘等块设备的文件恢复软件,实现该类芯片的数据恢复与取证。本发明方法支持对各种页尺寸、页结构的NAND FLASH芯片进行分析,支持对数据交错、数据分段等存储结构的分析,通用性与实用性较强。
附图说明
图1为本发明所述方法的综合流程图
图2为将原镜像文件转化成磁盘模式前后对比截图
图3为任一有效块内,提取512字节连续数据片段的页结构分析截图
图4为块004B5中第0010页内不同物理扇区管理区统计
图5为块00DC9内不同物理页首个管理区统计
图6为不同块内首页内首个管理区统计
图7为相邻两个物理块之间FAT表内数据变化图
图8为A-0晶圆块004首个物理页末尾数据与A-1晶圆相同物理块首个物理页首个数据对比图
图9为块2F4在A-0晶圆内块号重复情况统计图
具体实施方式
下面结合附图详细说明本发明的具体实施方式。
本实施方式实现了一种NAND FLASH存储芯片数据存储结构分析方法,如图1所示,为详细说明本发明,下面以主控芯片型号为AU6986、存储芯片型号为29F64G08CAMD2的NANDFLASH存储设备为例,具体说明本实施方式的实施过程。已知该NAND FLASH存储设备包含一个存储芯片,该芯片内的数据以文件系统FAT32形式存储。分析该芯片数据结构的具体实施过程如下:
提取并打开镜像文件:通过NAND FLASH读取设备提取该NAND FLASH存储芯片的物理镜像,该存储芯片内部包括两个晶圆,因此得到的物理镜像是两个文件A-0与A-1。根据存储芯片的型号信息直接查看数据手册,获知该芯片的物理参数为:一个物理页大小为4320字节,一个物理块包含128个页。使用十六进制编辑器以只读方式打开镜像文件A-0、A-1,为方便观察分析首先将镜像文件A-0、A-1转化成磁盘形式,设置一个扇区大小为一个物理页的大小(4320字节),转化前后对比结果如图2所示。
有效块判断:设门限值min取值为物理页大小4320字节。全盘逐字节搜索镜像文件A-0、A-1,例如镜像文件A-0中,在第3个页内偏移15104字节处起连续出现0xFF,统计该连续出现0xFF的个数n为1090800个,这个数值远大于门限值min,判断这段连续数据所在的物理块是无效块,继续进行全盘搜索,找到并记录所有无效块的物理块号,剩余物理块为有效块。
页结构分析:在存在所述连续数据的有效块中,选取所述连续数据所在的物理页进行统计,本实施例中,在镜像文件A-0第32641个页处,如图3所示,找到第一个连续512字节的数据片段,即为首个数据扇区,接下来依次查找其余数据扇区,数据扇区以外的数据片段为管理区,共找到8个连续512字节数据为0x00的数据片段,在任意两个连续512个全0字节之间的数据部分为管理区,可看出,8个数据扇区对应的管理区大小都为24字节。即页结构为8*(512DA+24SA)+32EXT。
逻辑块号、逻辑页号比特位判断:在同一个块内任意一个页中包含的管理区内,存在数值不变的比特位{a},比特位{a}=逻辑块号+逻辑页号+标识位,本实施例中,镜像文件A-0任取一有效块(例如物理块号为0x004B5),在该块中任取一个物理页(例如第0x10个页),分析该物理页内所有管理区片段,如图4所示,多取几个页进行综合统计,可得出每个管理区内数值保持不变的比特位{a}为D0D1...D31;在同一个块内不同页中任取一条管理区统计,存在数值不变的比特位{b},比特位{b}=逻辑块号+标识位,本实施例中,任取一有效块(例如物理块号为0xDC9),统计这个物理块内不同物理页的第一个管理区内容,如图5所示发现依旧是前32位数值保持不变,多取几个块进行综合对比,可得出数值保持不变的比特位{b}也为D0D1...D31;在不同块中任取不同的页进行管理区统计,存在数值不变的比特位{c},比特位{c}=标识位,在有效块中统计不同物理块第一个页的第一个管理区内容,如图6,综合分析得出保持不变的比特位{c}为D0...D11与D24...D31两段。
比特位{a}除去比特位{b}后得到逻辑页号所在比特位,比特位{b}除去比特位{c}后得到逻辑块号所在比特位。在本例中比特位{a}与比特位{b}位置一致,故其没有逻辑页号,逻辑页内数据按顺序存储;比特位{b}除去比特位{c}后得到比特位D12...D23为逻辑块号所在比特位,而其余保持不变的比特位D0...D11与D24...D31为标识位。
数据交错分析与数据合并:若芯片只包含一个晶圆,则不存在数据交错,本实例包含2个晶圆,则存在数据交错的可能性。若芯片存储的数据格式是FAT文件系统,能够体现该数据连续性的数据体是FAT表,FAT表用以描述文件簇的分配状态及标明文件或目录的下一簇的簇号,如果一个文件在设备中连续存储,则FAT表数据体现为簇号连续递增。若芯片存储的数据格式是NTFS文件系统,能够体现该数据连续性的数据体是MFT,MFT通常为连续存储,MFT项序号表现为连续递增。本实施例中芯片存储的数据格式是FAT32文件系统,FAT32文件系统中FAT表开头固定为“F8FFFF0F”,每个簇号用32位数据表示,例如“03000000”表示簇号为0x00000003。
如果同一晶圆内相邻物理块存在按页交错的情况,则相互交错的奇数块和偶数块的逻辑块号应相同,在本实施例中,FAT表起始位置处于物理镜像A-0中物理块号为0x2FE的块的第1个物理页中,如有交错则与物理块号为0x2FF的块进行交错,如图7,分析管理区数据,这两个物理块的逻辑块号分别为0x004与0x2F4,并不相同,故排除在同一晶圆内相邻物理块按页交错的情况。
物理镜像A-0中物理块号为0x2FE的块的第1个物理页里,末个数据扇区的结尾数据为簇号0x00000400,物理镜像A-1中相同序号物理块的第1个物理页里,首个数据扇区的起始数据为簇号0x00000401,如图8,二者内容刚好相连续,故本实施例中不同晶圆间相同序号物理块数据以页为单位相互交错,而没有以块为单位进行交错。所以将该芯片两个晶圆的镜像文件A-0与A-1的相同序号物理块按页进行数据合并,得到中间文件B。
数据分段:提取芯片某晶圆任一奇数序号块的逻辑块号,本实施例中为0x2F4,统计该逻辑块号的重复情况,如图9所示发现块号为2F4的逻辑块在一个晶圆中出现了8次。利用相同的方法提取其他奇数序号块的逻辑块号,并统计该逻辑块号的重复情况,综合分析可知重复次数N=8,所以该实例中数据分成了8段。将前述得到的中间文件B平均分成8个子中间文件C。
数据重组:对前面生成的每个中间文件C,剔除无效块后,各有效块数据按逻辑块号顺序组合。对每个块内的数据,本实施例中管理区内无逻辑页号,故数据按物理页顺序组合,将数据重组后的8个子中间文件C顺序拼接,即得到结果文件D。
删除管理区:将结果文件D中每个页的管理区数据全部删除,即得到以扇区为单位的逻辑镜像文件E。
至此,NAND FLASH存储芯片的数据存储结构分析完毕,最终逻辑镜像文件存储结构与硬盘等块设备的存储结构相同,使用普通硬盘恢复软件即可完成对该NAND FLASH结果文件的数据恢复与取证。
以上所述,仅是本发明的优选实施例,并非对本发明作任何形式上的限制,凡是利用本发明的设计思路对以上实施例所作的任何简单修改与等同变化,均仍属本发明技术方案的保护范围。
Claims (3)
1.一种NAND FLASH存储芯片数据存储结构分析方法,其特征在于,包括如下步骤:
100、确定芯片的物理块大小和物理页大小,提取NAND FLASH芯片的物理镜像并以只读方式打开镜像文件A;
200、有效块判断:逐字节搜索镜像文件A,统计连续多个字节取值等于0x00或0xFF的个数n,并记录这些连续数据所在的物理块号,
若n大于门限值min时,所述连续数据所在的物理块为无效块,否则为有效块;
300、页结构分析:在存在所述连续数据的有效块中,选取所述连续数据所在的物理页进行统计,查找第一个连续512字节的数据片段即为首个数据扇区,接下来依次查找其余数据扇区,
数据扇区以外的数据片段为管理区;
400、逻辑块号、逻辑页号比特位判断:对比某个有效块中某物理页内部的多个管理区片段,找到保持不变的比特位{a},对比某个有效块中各物理页的一个管理区片段,找到保持不变的比特位{b},对比整个芯片中各物理页的一个管理区片段,找到保持不变的比特位{c},
比特位{a}除去比特位{b}后得到逻辑页号所在比特位,比特位{b}除去比特位{c}后得到逻辑块号所在比特位;
500、数据交错分析与数据合并:若芯片只包含一个晶圆,则不存在数据交错,若芯片包含两个以上晶圆,则存在数据交错的可能性,
确定芯片内能体现数据连续性的数据体,若该数据体的两个连续片段分别处于同一晶圆内两相邻物理块内相同序号的物理页,则该晶圆的奇数序号物理块与偶数序号物理块需要按页进行数据合并,
若该数据体的两个连续片段分别处于不同晶圆内相同序号物理块内相同序号的物理页,则该芯片不同晶圆的相同序号物理块需要按页进行数据合并,
若该数据体的两个连续片段分别处于不同晶圆内相同序号物理块的末序号物理页和首序号物理页,则该芯片不同晶圆的相同序号物理块需要按块进行数据合并,
其余情况不进行数据合并,最终得到中间文件B;
600、数据分段:提取芯片某晶圆各奇数序号物理块的逻辑块号,统计各逻辑块号的重复情况,
若出现次数N≥2,则将所述中间文件平均分成N个子中间文件C,若N=1或管理区内无逻辑块号,则无需进行数据分段;
700、数据重组:各有效块的数据按逻辑块号顺序组合,对每个有效块内的数据,按逻辑页号顺序组合,若管理区中无逻辑页号,则有效块内数据按物理页顺序组合,若执行了数据分段,则将数据重组后的N个子中间文件C顺序拼接得到结果文件D1,
若管理区中无逻辑块号与逻辑页号,则无需进行数据重组,将所述镜像文件去除无效块,顺序拼接得到结果文件D2,
800、删除管理区:将结果文件D1或者D2中每个页的管理区数据全部删除,得到逻辑镜像文件E。
2.根据权利要求1所述的NAND FLASH存储芯片数据存储结构分析方法,其特征在于,所述门限值min的取值为物理页大小。
3.根据权利要求2所述的NAND FLASH存储芯片数据存储结构分析方法,其特征在于,所述能体现数据连续性的数据体,若为FAT文件系统,该数据体为FAT表,若为NTFS文件系统,该数据体为MFT。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610482134.0A CN106201774B (zh) | 2016-06-28 | 2016-06-28 | 一种nand flash存储芯片数据存储结构分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610482134.0A CN106201774B (zh) | 2016-06-28 | 2016-06-28 | 一种nand flash存储芯片数据存储结构分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106201774A CN106201774A (zh) | 2016-12-07 |
CN106201774B true CN106201774B (zh) | 2020-11-06 |
Family
ID=57462118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610482134.0A Active CN106201774B (zh) | 2016-06-28 | 2016-06-28 | 一种nand flash存储芯片数据存储结构分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106201774B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI639918B (zh) * | 2017-05-11 | 2018-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
CN107908572B (zh) * | 2017-11-21 | 2021-08-27 | 四川巧夺天工信息安全智能设备有限公司 | 一种重组NAND-Flash芯片数据的方法 |
CN109271107A (zh) * | 2018-09-01 | 2019-01-25 | 苏州韦科韬信息技术有限公司 | 一种提升固态硬盘顺序读性能的方法 |
CN110427764B (zh) * | 2019-07-31 | 2022-11-04 | 四川效率源信息安全技术股份有限公司 | 一种针对主控芯片的数据解密方法 |
CN112560086B (zh) * | 2020-12-11 | 2022-11-08 | 海光信息技术股份有限公司 | 一种用于密码协处理器的配置方法、装置、cpu及电子设备 |
CN116842589A (zh) * | 2023-07-04 | 2023-10-03 | 沈阳安华晟源信息科技有限公司 | 一种flash芯片底层物理镜像提取方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100054402A (ko) * | 2008-11-14 | 2010-05-25 | 삼성전자주식회사 | 스토리지를 갖는 컴퓨팅 장치와, 상기 스토리지에 대한 관리 장치 및 방법과, 파일 시스템이 기록된 기록 매체 |
CN102136296B (zh) * | 2011-02-21 | 2013-08-21 | 北京理工大学 | 一种NAND Flash存储芯片的元数据格式识别方法 |
-
2016
- 2016-06-28 CN CN201610482134.0A patent/CN106201774B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106201774A (zh) | 2016-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106201774B (zh) | 一种nand flash存储芯片数据存储结构分析方法 | |
KR101397353B1 (ko) | Key-value 스토어를 포함하는 메모리 시스템 | |
CN107305586B (zh) | 索引生成方法、索引生成装置及搜索方法 | |
WO2015145647A1 (ja) | ストレージ装置とデータ処理方法及びストレージシステム | |
CN102999433B (zh) | 一种虚拟磁盘的冗余数据删除方法及系统 | |
WO2016041401A1 (zh) | 向缓存中写入数据的方法及装置 | |
US20200183831A1 (en) | Storage system and system garbage collection method | |
KR20090026296A (ko) | 예측 데이터 로더 | |
US20150242122A1 (en) | Method for wrtiting data, memory storage device and memory control circuit unit | |
CN109496292B (zh) | 一种磁盘管理方法、磁盘管理装置及电子设备 | |
CN104461390A (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
WO2006094367A1 (en) | Method for detecting the presence of subblocks in a reduced-redundancy storage system | |
CN111125033B (zh) | 一种基于全闪存阵列的空间回收方法及系统 | |
CN111475508B (zh) | 一种优化叶子节点合并操作的高效索引方法 | |
CN102024034A (zh) | 一种面向高清媒体的嵌入式文件系统的碎片处理方法 | |
KR20180009574A (ko) | 입력 데이터를 압축하여 저장하는 데이터 저장 장치 | |
EP3154202A1 (en) | Encoding program, encoding method, encoding device, decoding program, decoding method, and decoding device | |
US11176033B2 (en) | Data storage devices and data processing methods | |
CN105844210A (zh) | 硬件有效的指纹识别 | |
US5729223A (en) | Method and apparatus for data compression and restoration | |
US11789639B1 (en) | Method and apparatus for screening TB-scale incremental data | |
CN111913890A (zh) | 一种基于安全模组的非易失存储器随机化读写方法 | |
CN109271353B (zh) | 一种在数据去重过程中选择性重写自引用块方法及系统 | |
JP2014063540A (ja) | key−valueストア方式を有するメモリシステム | |
CN105404475A (zh) | MCU片内小容量flash的存储管理系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |