CN106681893B - 一种nand flash模拟器的实现方法 - Google Patents
一种nand flash模拟器的实现方法 Download PDFInfo
- Publication number
- CN106681893B CN106681893B CN201611249702.9A CN201611249702A CN106681893B CN 106681893 B CN106681893 B CN 106681893B CN 201611249702 A CN201611249702 A CN 201611249702A CN 106681893 B CN106681893 B CN 106681893B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- nand flash
- page
- area
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000004088 simulation Methods 0.000 claims description 14
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 238000012937 correction Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 230000008520 organization Effects 0.000 abstract description 4
- 238000012360 testing method Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种NAND FLASH模拟器的实现方法,其特征在于在硬盘中根据待模拟的NAND FLASH的块数目创建相同数目的文件夹,每个文件夹模拟一个块,文件夹以块号进行命名;根据每个块包含的页数目在每个文件夹中创建相同数目的文件,文件以页号进行命名,每个文件的大小按照待模拟的NAND FLASH的页大小进行设置,每个文件按照NAND FLASH的页存储结构分为data区和spare区。通过在硬盘中按照NAND FLASH的物理存储结构创建与其对应的文件夹和文件,通过对文件访问设置不同的条件来模拟NAND FLASH的读写特性,NAND FLASH的特性考虑周全,且测试***死机或异常掉电所有NAND FLASH数据现场都会保留,利于问题原因查找与分析。
Description
技术领域
本发明涉及信息存储领域,尤其涉及一种NAND FLASH模拟器的实现方法。
背景技术
NAND FLASH芯片从设计到最后到产品化整个研发周期非常长,在设计过程中涉及到NAND FLASH的相关控制算法或程序的设计,为了加快研发速度,在实际NAND FLASH出来前,一般都会通过NAND FLASH模拟器来测试验证这些控制算法或程序。目前的FTL开发基于ramdisk的NAND FLASH模拟器都是采用一段内存来模拟NAND FLASH存储,如通过在内存中分配一段空间,按照NAND FLASH的Block和Page的组成方式进行数据组织,因此需要模拟的FLASH容量越大,PC的内存需求就越大,这样就会因为内存大小问题无法模拟大容量NANDFLASH,同时由于数据是存储于内存中,一旦程序出现崩溃或断电,所有数据和运行现场就破坏了,无法定位程序问题,特别是在长时间的老化过程。且现有的模拟器都没有模拟NANDFLASH对外呈现的特性,模拟器对NAND FLASH的特性考虑不周全,无法真实的模拟NANDFLASH,也就无法真正起到模拟NAND FLASH对控制算法或程序进行验证或测试。
发明内容
针对以上缺陷,本发明目的在于提高NAND FLASH模拟器与实际NAND FLASH相关特性的相似度,达到提高芯片开发效率的目的。
为了实现上述目的,本发明提供了一种NAND FLASH模拟器的实现方法,其特征在于在硬盘中根据待模拟的NAND FLASH的块数目创建相同数目的文件夹,每个文件夹模拟一个块,文件夹以块号进行命名;根据每个块包含的页数目在每个文件夹中创建相同数目的文件,文件以页号进行命名,每个文件的大小按照待模拟的NAND FLASH的页大小进行设置,每个文件按照NAND FLASH的页存储结构分为data区和spare区;通过向将整个文件夹的所有文件都写入0XFF模拟对该块的擦除操作;通过在文件内容前增加判断待改写的文件是否全为0XFF,并进行ECC计算,分别写入data区和spare区,增加当前写入的文件名与上次写入的文件名的大小限制,实现模拟写操作;通过读取文件并计算data区的ECC数据与spare区的数据进行校验或纠错,得到实际存储的数据,实现模拟读操作。
所述的NAND FLASH模拟器的实现方法,其特征在于还包括异常掉电模拟操作,异常掉电的指令可设置为手动掉电模式和随机掉电模式,所述手动掉电模式可人工操作在任何时间将指定的文件内容的部分区域数据进行异常数据标识;所述随机掉电模式后天允许任务随机操作将随机的文件的部分区域数据进行异常数据标识。
所述的NAND FLASH模拟器的实现方法,其特征在于所述的异常数据标识具体为:异常数据标识包括部分编程失败和low page数据丢失;部分编程失败通过文件后端的部分data数据改写为0xFF进行模拟实现;low page数据丢失通过软件记录upper page与lowpage的对应关系,一旦收到掉电命令,假如当前正在program upper page,就立刻将对应的low page的spare数据一个标记位置上,代表data区域内出现ecc fail,数据不可用。假如当前正在program low page,只要将low page的spare区别数据标记成出错。
所述的NAND FLASH模拟器的实现方法,其特征在于还增加了状态记录器,用于表示各个文件当前所处的状态,对各个文件的操作前必须判断当前文件是否为空闲状态,只有空闲状态才可继续操作,开始操作需要将当前操作类型更新到状态记录器。
所述的NAND FLASH模拟器的实现方法,其特征在于还包括位反转模拟器,根据NAND FLASH的工艺特性设置位反转概率,随机的按照设定的位反转概率随机挑选任意的文件,对该文件任意位置的一个bit或多个bit数据改写为1的操作。
本发明通过在硬盘中按照NAND FLASH的物理存储结构创建与其对应的文件夹和文件,通过对文件访问设置不同的条件来模拟NAND FLASH的读写特性,NAND FLASH的特性考虑周全,且测试***死机或异常掉电所有NAND FLASH数据现场都会保留,利于问题原因查找与分析。
附图说明
图1是模拟器中的FLASH数据存放示意图;
图2是模拟器中一个Page的数据存放示意图;
图3是模拟器中模拟写数据异常掉电的数据出错处理流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是模拟器中的FLASH数据存放示意图;在硬盘中根据待模拟的NAND FLASH的块数目创建相同数目的文件夹,每个文件夹模拟一个块,文件夹以块号进行命名;根据每个块包含的页数目在每个文件夹中创建相同数目的文件,文件以页号进行命名。图2是模拟器中一个Page的数据存放示意图;每个文件的大小按照待模拟的NAND FLASH的页大小进行设置,每个文件按照NAND FLASH的页存储结构分为data区和spare区,还增加了一个ECC flag标识;User Data用于保存用户数据,Spare Data用于存储FTL算法的必要数据,以及用于模拟Flash特性需要的ECC fail的标记,ECC fail时,将该标记为0,否则为1,通过该标记可以模拟FLASH Ecc fail情况。通过向将整个文件夹的所有文件都写入0XFF模拟对该块的擦除操作;通过在文件内容前增加判断待改写的文件是否全为0XFF,并进行ECC计算,分别写入data区和spare区,增加当前写入的文件名与上次写入的文件名的大小限制,实现模拟写操作;通过读取文件并计算data区的ECC数据与spare区的数据进行校验或纠错,得到实际存储的数据,实现模拟读操作。
异常掉电是FLASH在使用过程中经常发生的情况,因此异常掉电的数据模拟是模拟器的一个重要模拟项目,图3是模拟器中模拟写数据异常掉电的数据出错处理流程图。当模拟器接收到掉电的信号,则将cache内的数据写入部分数据到该页所在的文件中,判断写入的地址是否为Low page,如果是则直接将FLASH中的数据随机将该地址对应的Spare区域的ECC flag标识为fail;如果不是则先将对应的Low page数据全部的ECC flag标志为fail,后在将FLASH中的数据随机将该地址对应的Spare区域的ECC flag标识为fail。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (3)
1.一种NAND FLASH模拟器的实现方法,其特征在于在硬盘中根据待模拟的NANDFLASH的块数目创建相同数目的文件夹,每个文件夹模拟一个块,文件夹以块号进行命名;根据每个块包含的页数目在每个文件夹中创建相同数目的文件,文件以页号进行命名,每个文件的大小按照待模拟的NAND FLASH的页大小进行设置,每个文件按照NAND FLASH的页存储结构分为data区和spare区;通过向将整个文件夹的所有文件都写入0XFF模拟对该块的擦除操作;通过在文件内容前增加判断待改写的文件是否全为0XFF,并进行ECC计算,分别写入data区和spare区,增加当前写入的文件名与上次写入的文件名的大小限制,实现模拟写操作;通过读取文件并计算data区的ECC数据与spare区的数据进行校验或纠错,得到实际存储的数据,实现模拟读操作;还包括异常掉电模拟操作,异常掉电的指令可设置为手动掉电模式和随机掉电模式,所述手动掉电模式可人工操作在任何时间将指定的文件内容的部分区域数据进行异常数据标识;所述随机掉电模式后天允许任务随机操作将随机的文件的部分区域数据进行异常数据标识;所述的异常数据标识具体为:异常数据标识包括部分编程失败和low page数据丢失;部分编程失败通过文件后端的部分data数据改写为0xFF进行模拟实现;low page数据丢失通过软件记录upper page与lowpage的对应关系,一旦收到掉电命令,假如当前正在program upper page,就立刻将对应的low page的spare数据一个标记位置上,代表data区域内出现ecc fail,数据不可用;假如当前正在program low page,只要将low page的spare区别数据标记成出错。
2.根据权利要求1所述的NAND FLASH模拟器的实现方法,其特征在于还增加了状态记录器,用于表示各个文件当前所处的状态,对各个文件的操作前必须判断当前文件是否为空闲状态,只有空闲状态才可继续操作,开始操作需要将当前操作类型更新到状态记录器。
3.根据权利要求1或2所述的NAND FLASH模拟器的实现方法,其特征在于还包括位反转模拟器,根据NAND FLASH的工艺特性设置位反转概率,随机的按照设定的位反转概率随机挑选任意的文件,对该文件任意位置的一个bit或多个bit数据改写为1的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611249702.9A CN106681893B (zh) | 2016-12-29 | 2016-12-29 | 一种nand flash模拟器的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611249702.9A CN106681893B (zh) | 2016-12-29 | 2016-12-29 | 一种nand flash模拟器的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106681893A CN106681893A (zh) | 2017-05-17 |
CN106681893B true CN106681893B (zh) | 2019-07-12 |
Family
ID=58872524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611249702.9A Expired - Fee Related CN106681893B (zh) | 2016-12-29 | 2016-12-29 | 一种nand flash模拟器的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106681893B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445691B (zh) * | 2018-10-16 | 2022-03-29 | 深圳忆联信息***有限公司 | 一种提高ftl算法开发和验证效率的方法及装置 |
CN109684150B (zh) * | 2018-12-24 | 2022-04-26 | 北京得瑞领新科技有限公司 | 存储颗粒控制器的性能测试***、测试方法及仿真平台 |
CN112231110A (zh) * | 2020-12-14 | 2021-01-15 | 深圳市芯天下技术有限公司 | 提升非易失存储器仿真效率方法、装置、存储介质和终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923570A (zh) * | 2010-07-21 | 2010-12-22 | 中国电子科技集团公司第三十八研究所 | 一种在Windows CE环境下建立大页面NAND Flash存储***的方法 |
CN104750535A (zh) * | 2013-12-26 | 2015-07-01 | 珠海全志科技股份有限公司 | NAND Flash仿真控制器及控制调试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7822913B2 (en) * | 2007-12-20 | 2010-10-26 | Unity Semiconductor Corporation | Emulation of a NAND memory system |
-
2016
- 2016-12-29 CN CN201611249702.9A patent/CN106681893B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923570A (zh) * | 2010-07-21 | 2010-12-22 | 中国电子科技集团公司第三十八研究所 | 一种在Windows CE环境下建立大页面NAND Flash存储***的方法 |
CN104750535A (zh) * | 2013-12-26 | 2015-07-01 | 珠海全志科技股份有限公司 | NAND Flash仿真控制器及控制调试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106681893A (zh) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103425597B (zh) | 数据储存装置和快闪存储器的区块管理方法 | |
US8225067B2 (en) | Multilevel cell NAND flash memory storage system, and controller and access method thereof | |
CN103593216B (zh) | 将ubi格式的***文件制作成工厂烧录映像文件方法 | |
CN102063943B (zh) | Nand闪存参数自动检测*** | |
CN106681893B (zh) | 一种nand flash模拟器的实现方法 | |
TWI489466B (zh) | 記憶體抹除方法、記憶體控制器與記憶體儲存裝置 | |
CN110673789B (zh) | 固态硬盘的元数据存储管理方法、装置、设备及存储介质 | |
CN102662701A (zh) | Cpld在线升级方法、装置及业务单板 | |
CN108762989B (zh) | 固态硬盘的数据存储方法、装置、设备及可读存储介质 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
CN110618892A (zh) | 一种固态硬盘的bug定位方法、装置、电子设备及介质 | |
TW201945927A (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN103970967B (zh) | 一种电力***电磁暂态仿真分析*** | |
CN102646453A (zh) | NandFlash控制器中错误校正码模块的测试方法及*** | |
CN115168921B (zh) | 一种适用于多固态硬盘***的无损删除管理装置 | |
TWI464585B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
CN110442299B (zh) | 数据写入方法、存储器控制电路单元以及存储器储存装置 | |
CN116343888A (zh) | 一种存储芯片的验证方法、电子设备及存储介质 | |
CN104750535B (zh) | NAND Flash仿真控制器及控制调试方法 | |
CN104008020B (zh) | 用于追踪死扇区以自动搜索和誊写的鲁棒扇区id方案 | |
WO2016155323A1 (zh) | 一种具有复位功能的阻变型随机存储器模型及存储方法 | |
CN108108118B (zh) | 数据写入方法以及存储控制器 | |
CN211878599U (zh) | 应用于现场可编辑门阵列fpga的仿真验证*** | |
CN109299018B (zh) | 一种Flash存储器中历史数据的读取方法及装置 | |
CN116882335B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190712 |