CN116880782B - 一种内嵌式存储器及其测试方法 - Google Patents
一种内嵌式存储器及其测试方法 Download PDFInfo
- Publication number
- CN116880782B CN116880782B CN202311153340.3A CN202311153340A CN116880782B CN 116880782 B CN116880782 B CN 116880782B CN 202311153340 A CN202311153340 A CN 202311153340A CN 116880782 B CN116880782 B CN 116880782B
- Authority
- CN
- China
- Prior art keywords
- block
- write
- bad
- test
- erasure
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 227
- 230000015654 memory Effects 0.000 title claims abstract description 86
- 238000012545 processing Methods 0.000 claims abstract description 40
- 238000000034 method Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 7
- 238000012795 verification Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 9
- 238000011161 development Methods 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供了一种内嵌式存储器及其测试方法,包括:闪存块;固件闪存块,用以存储固件;以及主控器,电性连接于主机、闪存块以及固件闪存块,主控器用以对闪存块进行扫描,以获取擦除坏块与写坏块;其中,主控器还用以响应于主机或固件的擦除测试指令,对擦除坏块进行擦除操作处理,触发相应的擦除操作失败的错误处理流程,以将擦除测试块的信息存放于坏块表中;主控器还用以响应于主机或固件的写测试指令,对写坏块进行写操作处理,触发相应的写操作失败的错误处理流程,以将写测试块的信息存放于坏块表中。通过本发明提供的内嵌式存储器及其测试方法,以保证错误处理流程的有效性。
Description
技术领域
本发明涉及存储器领域,特别涉及一种内嵌式存储器及其测试方法。
背景技术
在内嵌式存储器的开发验证阶段,其内部的闪存块可能会因各种原因而出现坏块的情况。针对坏块,需要增加相应的错误处理流程,以使内嵌式存储器能够正常工作。由于闪存块出现擦除失败或写操作失败的概率较低,针对执行擦除操作时出错或执行写操作时出错的闪存块而言,在开发验证阶段并未设置相应的错误处理流程。
在内嵌式存储器的正常使用阶段,无法保证擦除失败的错误处理流程与写操作失败的错误处理流程的有效性。因此,存在待改进之处。
发明内容
本发明的目的在于提供一种内嵌式存储器及其测试方法,以保证错误处理流程的有效性。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供了一种内嵌式存储器,包括:
闪存块;
固件闪存块,用以存储固件;以及
主控器,电性连接于主机、所述闪存块以及所述固件闪存块,所述主控器用以对所述闪存块进行扫描,以获取擦除坏块与写坏块;
其中,所述主控器还用以响应于所述主机或所述固件的擦除测试指令,对所述擦除坏块进行擦除操作处理,触发相应的擦除操作失败的错误处理流程,以将擦除测试块的信息存放于坏块表中;
所述主控器还用以响应于所述主机或所述固件的写测试指令,对所述写坏块进行写操作处理,触发相应的写操作失败的错误处理流程,以将写测试块的信息存放于所述坏块表中。
在本发明一实施例中,所述主控器还用以对存放于所述坏块表中的所述擦除测试块与所述写测试块进行恢复,并将所述擦除坏块与所述写坏块的信息存放于所述坏块表中,以完成测试。
在本发明一实施例中,所述主控器用以将所述闪存块分为坏块与可用块,并从所述坏块中获取某一个执行擦除操作时出错的所述坏块,表示为所述擦除坏块,获取某一个执行写操作时出错的所述坏块,表示为所述写坏块,并将其余所述坏块的信息存放于所述坏块表中。
在本发明一实施例中,所述主控器用以选取某一可用块,表示为所述擦除测试块,并响应于所述擦除测试指令,对所述擦除坏块进行擦除处理,将生成的擦除操作失败信息赋予至所述擦除测试块,并将所述擦除测试块的信息存放于所述坏块表中。
在本发明一实施例中,所述主控器用以选取某一可用块,表示为所述写测试块,对所述写测试块进行擦除处理,所述主控器还用以响应于所述写测试指令,以向所述写测试块或所述写坏块中写入主机数据,并将所述写测试块的信息存放于所述坏块表中。
在本发明一实施例中,所述主控器还用以获取另一可用块,并将其余主机数据写入该可用块内。
在本发明一实施例中,所述主控器用以响应于所述写测试指令,向所述写测试块或所述写坏块中写入主机数据,或者,所述主控器直接向所述写测试块中写入主机数据。
在本发明一实施例中,所述主控器用以响应于所述写测试指令,根据所述写测试块中已经写入数据的数据页的数量与原本数据页的数量的比较结果,以向所述写测试块或所述写坏块中写入主机数据。
在本发明一实施例中,所述主控器用以根据所述写测试块中的状态寄存器的状态,以将所述写测试块的信息存放于所述坏块表中或重复获取新的写测试块进行测试。
本发明还提供了一种内嵌式存储器的测试方法,包括:
对闪存块进行扫描,以获取擦除坏块与写坏块;
响应于主机或固件的擦除测试指令,对所述擦除坏块进行擦除处理,触发相应的擦除失败的错误处理流程,以将擦除测试块的信息存放于坏块表中;
响应于所述主机或所述固件的写测试指令,对所述写坏块进行写操作处理,触发相应的写操作失败的错误处理流程,以将写测试块的信息存放于所述坏块表中。
如上所述,本发明提供一种内嵌式存储器及其测试方法,在内嵌式存储器的开发验证阶段,能够在对执行擦除操作时出错时与执行写操作时出错时的错误处理流程进行验证,进而有效保证错误处理流程的有效性与完备性。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中内嵌式存储器的示意图;
图2为本发明一实施例中内嵌式存储器的测试方法的流程图;
图3为图2中步骤S10的流程图;
图4为图2中步骤S20的流程图;
图5为图2中步骤S30的流程图;
图6为图5中步骤S31的流程图;
图7为图5中步骤S33的流程图;
图8为图7中步骤S333的流程图;
图9为图5中步骤S34的流程图。
图中:100、内嵌式存储器;110、主控器;120、闪存块;130、固件闪存块;200、主机。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明提供了一种内嵌式存储器(Embedded Multi Media Card,EMMC)100。内嵌式存储器100可以通过安装于电路板上,以作为智能手机、平板电脑、移动互联网设备等电子设备的存储介质。内嵌式存储器100可以包括主控器110、闪存块120以及固件闪存块130。闪存块120与固件闪存块130可以电连接于主控器110,主控器110可以与主机200电性连接。闪存块120可以对主机数据进行存储,主控器110可以控制不同的闪存块120工作。固件闪存块130中可以存储固件,也可通过固件定期控制闪存块120工作。固件(firmware)一般存储于设备中的电可擦除只读存储器(Electrically ErasableProgrammable ROM,EEPROM)或FLASH芯片中。在内嵌式存储器100出厂前,即内嵌式存储器100处于开发验证阶段时,需要验证其内部闪存块120运行失败的错误处理流程是否能够正常运行。在本实施例中,可通过主控器110与固件闪存块130中的固件控制闪存块120工作,以验证错误处理流程是否能够正常运行。
请参阅图1,在本发明的一个实施例中,在开发验证阶段,会对内嵌式存储器100中的闪存块120进行初步测试,进而可将闪存块120区分为坏块与可用块。可用块可以表示为对应的闪存块120可以正常使用。坏块可以表示为对应的闪存块120无法正常使用。其中,在闪存块120的测试过程中,当闪存块120执行擦除操作时出错,或者执行写操作时出错,或者执行读取操作时出错,如果bit的错误数超过了ECC的纠错能力时,此时该闪存块120可被标记为坏块。
请参阅图1,在本发明的一个实施例中,主控器110可用以对闪存块120进行扫描,以从坏块中获取擦除坏块与写坏块。具体的,主控器110可对所有的闪存块120进行扫描,进而将闪存块120区分为坏块和可用块。主控器110可对坏块进行扫描,从坏块中获取某一个因执行擦除操作时出错的坏块,表示为擦除坏块(Erase_Fail_Block),从坏块中获取某一个因执行写操作时出错的坏块,表示为写坏块(Write_Fail_Block)。此时,主控器110可将擦除坏块与写坏块进行保留,并将其余的所有的坏块的信息存放于主控器110内部状态寄存器中的坏块表中,以表示该闪存块120不可用。其中,坏块表是专门记录坏块的表格,在正常运行环节,会根据坏块表对坏块进行跳过,只会使用不在坏块表中的闪存块120。
请参阅图1,在本发明的一个实施例中,当获取到擦除坏块与写坏块后,主控器110可用以响应于主机200或固件的测试指令,以验证相应的错误处理流程是否能够正常运行。测试指令可以包括擦除测试指令与写测试指令。擦除测试指令可用以使闪存块120执行擦除操作。写测试指令可用以使闪存块120执行写操作。其中,测试指令可以通过主机200进行发送,当需要进行测试时,可将内嵌式存储器100电性连接到主机200上,通过主机200发送相应的测试指令以完成测试。当然,测试指令也可以通过固件进行发送,可在固件中设置相应代码,以使固件可以定期发送相应的测试指令,进而完成测试。
在本发明的一个实施例中,测试指令可以通过输入指令cmd56 with Argument进行触发。例如,当主机200向内嵌式存储器100发出指令cmd56 with Argument=0时,可以表示为主机200发出擦除测试指令,以使内嵌式存储器100完成擦除失败的错误处理流程的验证工作。当主机200向内嵌式存储器100发出指令cmd56 with Argument=1时,可以表示为主机200发出写测试指令,以使内嵌式存储器100完成写操作失败的错误处理流程的验证工作。
在本发明的一个实施例中,在对擦除失败的错误处理流程进行验证时,主控器110可用以响应于主机200或固件的擦除测试指令,对擦除坏块进行擦除操作处理,触发相应的擦除操作失败的错误处理流程,以将擦除测试块的信息存放于坏块表中。具体的,主控器110可以先选取某一可用块,表示为擦除测试块。之后,主控器110可用以响应于主机200或固件的擦除测试指令,对擦除坏块进行擦除处理,以获取擦除操作失败信息。最后,主控器110可将擦除操作失败信息赋予到擦除测试块内,并将擦除测试块的信息存放于坏块表中。其中,在对擦除坏块进行擦除操作时,擦除坏块会进入错误状态。主控器110接收到擦除坏块进入错误状态后,会获取相应的擦除操作失败信息。此时主控器110可对擦除测试块进行擦除处理,并将擦除操作失败信息赋予至擦除测试块中,以使擦除测试块进入错误状态,进而主控器110可将擦除测试块的信息存放于坏块表中,以完成擦除操作失败的错误处理流程的验证。擦除测试块是正常的、可用的闪存块120,仅是为了验证擦除操作失败的错误处理流程能够顺利进行而将其信息存放于坏块表中。
在本发明的一个实施例中,在对写操作失败的错误处理流程进行验证时,主控器110可以响应于主机200的写数据指令,判断当前可用块中是否存在空白页。若当前可用块中存在空白页,则继续向当前可用块中写入主机数据。若当前可用块中不存在空白页,主控器110可选取某一可用块,表示为写测试块。主控器110可用以响应于主机200的擦除指令,以对写测试块进行擦除处理,以将写测试块中存储的主机数据进行擦除,使其恢复为空白页。
在本发明的一个实施例中,主控器110还用以响应于写测试指令,以向写测试块或写坏块中写入主机数据。具体的,主控器110可用以响应于主机200或固件的写测试指令,以向写测试块或写坏块中写入主机数据。或者,主控器110还可直接向写测试块中写入主机数据。其中,主控器110需要判断是否接收到来自主机200或固件的写测试指令,并根据判断结果,以向不同的闪存块120写入主机数据。例如,当主控器110接收到来自主机200或固件的写测试指令时,主控器110可以向写测试块或写坏块中写入主机数据。当主控器110未接收到来自主机200或固件的写测试指令时,主控器110可直接向写测试块中写入主机数据。
在本发明的一个实施例中,当主控器110接收到来自主机200或固件的写测试指令时,主控器110可以根据写测试块中已经写入数据的数据页的数量与原本数据页的数量的比较结果,以向写测试块或写坏块中写入主机数据。具体的,主控器110可以判断写测试块中已经写入数据的数据页的数量是否小于原本数据页的数量。若写测试块中已经写入数据的数据页的数量小于原本数据页的数量,则向写测试块中写入主机数据。若写测试块中已经写入数据的数据页的数量等于原本数据页的数量,则向写坏块中写入主机数据。
在本发明的一个实施例中,以写测试块中原本数据页的数量为30,主机数据所占的数据页的数量为100为例进行说明。对于前30个数据页的主机数据而言,其是写入到写测试块中的,此时写测试块中已经写入数据的数据页的数量可以为30。对于后70个数据页的主机数据而言,无法写入到写测试块中。此时可将其写入到写坏块中。在对写坏块进行写操作时,写坏块会进入错误状态。主控器110接收到写坏块进入错误状态后,会获取相应的写操作失败信息。此时主控器110可对写测试块进行写操作处理,并将写操作失败信息赋予至写测试块中,以使写测试块进入错误状态,进而主控器110可将写测试块的信息存放于坏块表中,以完成写操作失败的错误处理流程的验证。写测试块是正常的、可用的闪存块120,仅是为了验证写操作失败的错误处理流程能够顺利进行而将其信息存放于坏块表中。
在本发明的一个实施例中,在向写测试块或写坏块中写入主机数据后,主控器110可用以根据写测试块中的状态寄存器的状态,以将写测试块的信息存放于坏块表中或重复获取新的写测试块进行测试。具体的,主控器110可检测写测试块中的状态寄存器是否存在问题。若写测试块中的状态寄存器不存在问题,则重复获取新的写测试块进行测试。若写测试块中的状态寄存器存在问题,则将写测试块的信息存放于坏块表中。同时,主控器110可获取另一可用块,并将其余主机数据写入该可用块内。例如,可将剩余的70个数据页的主机数据写入该可用块内。
在本发明的一个实施例中,当主控器110完成擦除操作失败的错误处理流程与写操作失败的错误处理流程的验证后,此时坏块表中可能会存放一定量的擦除测试块与写测试块的信息。同时,坏块表中并未存放擦除坏块与写坏块的信息。擦除测试块与写测试块是正常的、可用的闪存块120,擦除坏块与写坏块是不正常的、不可用的闪存块120。因此,需要对存放于坏块表中的擦除测试块与写测试块进行恢复,并将擦除坏块与写坏块的信息存放于坏块表中,以完成内嵌式存储器100的测试。
请参阅图2,本发明还提供了一种内嵌式存储器的测试方法,该测试方法可以应用于上述实施例中的内嵌式存储器100中,以对内嵌式存储器100进行测试。该测试方法可以包括如下步骤:
步骤S10、对所有的闪存块进行扫描,以获取擦除坏块与写坏块;
步骤S20、响应于主机或固件的擦除测试指令,对擦除坏块进行擦除处理,触发相应的擦除失败的错误处理流程,以将擦除测试块的信息存放于坏块表中;
步骤S30、响应于主机或固件的写测试指令,对写坏块进行写操作处理,以触发相应的写操作失败的错误处理流程,以将写测试块的信息存放于坏块表中;
步骤S40、对存放于坏块表中的擦除测试块与写测试块进行恢复,并将擦除坏块与写坏块的信息存放于坏块表中,以完成内嵌式存储器的测试。
请参阅图3,在本发明的一个实施例中,当执行步骤S10时,具体的,步骤S10可包括如下步骤:
步骤S11、对所有的闪存块进行扫描,将闪存块区分为坏块与可用块;
步骤S12、从坏块中获取某一个执行擦除操作时出错的坏块,表示为擦除坏块,获取某一个执行写操作时出错的坏块,表示为写坏块,并将除擦除坏块与写坏块以外的其余的坏块的信息存放于坏块表中。
在本发明的一个实施例中,当执行步骤S11时,具体的,在开发验证阶段,会对内嵌式存储器100内的闪存块120进行初步测试,进而可将闪存块120区分为坏块与可用块。可用块可以表示为对应的闪存块120可以正常使用。坏块可以表示为对应的闪存块120无法正常使用。
在本发明的一个实施例中,当执行步骤S12时,具体的,主控器110可对坏块进行扫描,从坏块中获取某一个因执行擦除操作时出错的坏块,表示为擦除坏块(Erase_Fail_Block),从坏块中获取某一个因执行写操作时出错的坏块,表示为写坏块(Write_Fail_Block)。此时,主控器110可将擦除坏块与写坏块进行保留,并将其余的所有的坏块的信息存放于主控器110内部状态寄存器中的坏块表中,以表示该闪存块120不可用。
请参阅图4,在本发明的一个实施例中,当执行步骤S20时,具体的,步骤S20可包括如下步骤:
步骤S21、选取某一可用块,表示为擦除测试块;
步骤S22、响应于主机或固件的擦除测试指令,对擦除坏块进行擦除处理,以获取擦除操作失败信息;
步骤S23、将擦除操作失败信息赋予到擦除测试块内,并将擦除测试块的信息存放于坏块表中。
在本发明的一个实施例中,当执行步骤S21、步骤S22及步骤S23时,具体的,在对擦除坏块进行擦除操作时,擦除坏块会进入错误状态。主控器110接收到擦除坏块进入错误状态后,会获取相应的擦除操作失败信息。此时主控器110可对擦除测试块进行擦除处理,并将擦除操作失败信息赋予至擦除测试块中,以使擦除测试块进入错误状态,进而主控器110可将擦除测试块的信息存放于坏块表中,以完成擦除操作失败的错误处理流程的验证。擦除测试块是正常的、可用的闪存块120,仅是为了验证擦除操作失败的错误处理流程能够顺利进行而将其信息存放于坏块表中。
请参阅图5,在本发明的一个实施例中,当执行步骤S30时,具体的,步骤S30可包括如下步骤:
步骤S31、选取某一可用块,表示为写测试块;
步骤S32、响应于主机的擦除指令,以对写测试块进行擦除处理;
步骤S33、响应于主机或固件的写测试指令,以向写测试块或写坏块中写入主机数据;
步骤S34、将写测试块的信息存放于坏块表中;
步骤S35、获取另一可用块,并将其余主机数据写入该可用块内。
请参阅图6,在本发明的一个实施例中,当执行步骤S31时,具体的,步骤S31可包括如下步骤:
步骤S311、响应于主机写数据指令,判断当前可用块中是否存在空白页;
步骤S312、若存在空白页,则继续向当前可用块中写入主机数据;
步骤S313、若不存在空白页,则选取某一可用块,表示为写测试块。
在本发明的一个实施例中,当执行步骤S311、步骤S312及步骤S313时,具体的,在对写操作失败的错误处理流程进行验证时,主控器110可以响应于主机200的写数据指令,判断当前可用块中是否存在空白页。若当前可用块中存在空白页,则继续向当前可用块中写入主机数据。若当前可用块中不存在空白页,主控器110可选取某一可用块,表示为写测试块。
在本发明的一个实施例中,当执行步骤S32时,具体的,主控器110可用以响应于主机200的擦除指令,以对写测试块进行擦除处理,以将写测试块中存储的主机数据进行擦除,使其恢复为空白页。
请参阅图7,在本发明的一个实施例中,当执行步骤S33时,具体的,步骤S33可包括如下步骤:
步骤S331、判断是否存在来自主机或固件的写测试指令;
步骤S332、若不存在来自主机或固件的写测试指令,则向写测试块中写入主机数据;
步骤S333、若存在来自主机或固件的写测试指令,则向写测试块或写坏块中写入主机数据。
在本发明的一个实施例中,当执行步骤S331与步骤S332时,具体的,主控器110需要判断是否接收到来自主机200或固件的写测试指令,并根据判断结果,以向不同的闪存块120写入主机数据。例如,当主控器110接收到来自主机200或固件的写测试指令时,主控器110可以向写测试块或写坏块中写入主机数据。当主控器110未接收到来自主机200或固件的写测试指令时,主控器110可直接向写测试块中写入主机数据。
请参阅图8,在本发明的一个实施例中,当执行步骤S333时,具体的,步骤S333可包括如下步骤:
步骤S3331、判断写测试块中已经写入数据的数据页的数量是否小于预设数量;
步骤S3332、若写测试块中已经写入数据的数据页的数量小于预设数量,则向写测试块中写入主机数据;
步骤S3333、若写测试块中已经写入数据的数据页的数量大于或等于预设数量,则向写坏块中写入主机数据。
在本发明的一个实施例中,当执行步骤S3331、步骤S3332及步骤S3333时,具体的,以写测试块中原本数据页的数量为30,主机数据所占的数据页的数量为100为例进行说明。对于前30个数据页的主机数据而言,其是写入到写测试块中的,此时写测试块中已经写入数据的数据页的数量可以为30。对于后70个数据页的主机数据而言,无法写入到写测试块中。此时可将其写入到写坏块中。
请参阅图9,在本发明的一个实施例中,当执行步骤S34时,具体的,步骤S34可包括如下步骤:
步骤S341、检测写测试块中的状态寄存器是否存在问题;
步骤S342、若不存在问题,则重复获取新的写测试块进行测试;
步骤S343、若存在问题,则将写测试块的信息存放于坏块表中。
在本发明的一个实施例中,当执行步骤S341、步骤S342及步骤S343时,具体的,在向写测试块或写坏块中写入主机数据后,主控器110可用以根据写测试块中的状态寄存器的状态,以将写测试块的信息存放于坏块表中或重复获取新的写测试块进行测试。具体的,主控器110可检测写测试块中的状态寄存器是否存在问题。若写测试块中的状态寄存器不存在问题,则重复获取新的写测试块进行测试。若写测试块中的状态寄存器存在问题,则将写测试块的信息存放于坏块表中。
在本发明的一个实施例中,当执行步骤S35时,具体的,主控器110可获取另一可用块,并将其余主机数据写入该可用块内。例如,可将剩余的70个数据页的主机数据写入该可用块内。
在本发明的一个实施例中,当执行步骤S40时,具体的,当主控器110完成擦除操作失败的错误处理流程与写操作失败的错误处理流程的验证后,此时坏块表中可能会存放一定量的擦除测试块与写测试块的信息。同时,坏块表中并未存放擦除坏块与写坏块的信息。擦除测试块与写测试块是正常的、可用的闪存块120,擦除坏块与写坏块是不正常的、不可用的闪存块120。因此,需要对存放于坏块表中的擦除测试块与写测试块进行恢复,并将擦除坏块与写坏块的信息存放于坏块表中,以完成内嵌式存储器100的测试。
可见,在上述方案中,在内嵌式存储器的开发验证阶段,能够在对执行擦除操作时出错时与执行写操作时出错的错误处理流程进行验证,进而有效保证错误处理流程的有效性与完备性。
以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (7)
1.一种内嵌式存储器,其特征在于,包括:
闪存块;
固件闪存块,用以存储固件;以及
主控器,电性连接于主机、所述闪存块以及所述固件闪存块,所述主控器用以对所述闪存块进行扫描,以获取擦除坏块与写坏块;
所述主控器还用以响应于所述主机或所述固件的擦除测试指令,对所述擦除坏块进行擦除操作处理,触发相应的擦除操作失败的错误处理流程,以将擦除测试块的信息存放于坏块表中;
所述主控器还用以响应于所述主机或所述固件的写测试指令,对所述写坏块进行写操作处理,触发相应的写操作失败的错误处理流程,以将写测试块的信息存放于所述坏块表中;
其中,所述主控器用以将所述闪存块分为坏块与可用块,并从所述坏块中获取某一个执行擦除操作时出错的所述坏块,表示为所述擦除坏块,获取某一个执行写操作时出错的所述坏块,表示为所述写坏块,并将其余所述坏块的信息存放于所述坏块表中;
所述主控器用以选取某一可用块,表示为所述擦除测试块,并响应于所述擦除测试指令,对所述擦除坏块进行擦除处理,将生成的擦除操作失败信息赋予至所述擦除测试块,并将所述擦除测试块的信息存放于所述坏块表中;
所述主控器用以选取某一可用块,表示为所述写测试块,对所述写测试块进行擦除处理,所述主控器还用以响应于所述写测试指令,以向所述写测试块或所述写坏块中写入主机数据,并将所述写测试块的信息存放于所述坏块表中。
2.根据权利要求1所述的内嵌式存储器,其特征在于,所述主控器还用以对存放于所述坏块表中的所述擦除测试块与所述写测试块进行恢复,并将所述擦除坏块与所述写坏块的信息存放于所述坏块表中,以完成测试。
3.根据权利要求1所述的内嵌式存储器,其特征在于,所述主控器还用以获取另一可用块,并将其余主机数据写入该可用块内。
4.根据权利要求1所述的内嵌式存储器,其特征在于,所述主控器用以响应于所述写测试指令,向所述写测试块或所述写坏块中写入主机数据,或者,所述主控器直接向所述写测试块中写入主机数据。
5.根据权利要求4所述的内嵌式存储器,其特征在于,所述主控器用以响应于所述写测试指令,根据所述写测试块中已经写入数据的数据页的数量与原本数据页的数量的比较结果,以向所述写测试块或所述写坏块中写入主机数据。
6.根据权利要求1所述的内嵌式存储器,其特征在于,所述主控器用以根据所述写测试块中的状态寄存器的状态,以将所述写测试块的信息存放于所述坏块表中或重复获取新的写测试块进行测试。
7.一种内嵌式存储器的测试方法,其特征在于,包括:
对闪存块进行扫描,获取坏块与可用块,并从所述坏块中获取某一个执行擦除操作时出错的所述坏块,表示为擦除坏块,获取某一个执行写操作时出错的所述坏块,表示为写坏块,并将其余所述坏块的信息存放于坏块表中;
响应于主机或固件的擦除测试指令,对所述擦除坏块进行擦除处理,触发相应的擦除失败的错误处理流程,以将擦除测试块的信息存放于坏块表中,其中,选取某一可用块,表示为擦除测试块,并响应于所述擦除测试指令,对所述擦除坏块进行擦除处理,将生成的擦除操作失败信息赋予至所述擦除测试块,并将所述擦除测试块的信息存放于所述坏块表中;
响应于所述主机或所述固件的写测试指令,对所述写坏块进行写操作处理,触发相应的写操作失败的错误处理流程,以将写测试块的信息存放于所述坏块表中,其中,选取某一可用块,表示为写测试块,对所述写测试块进行擦除处理,响应于所述写测试指令,以向所述写测试块或所述写坏块中写入主机数据,并将所述写测试块的信息存放于所述坏块表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311153340.3A CN116880782B (zh) | 2023-09-08 | 2023-09-08 | 一种内嵌式存储器及其测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311153340.3A CN116880782B (zh) | 2023-09-08 | 2023-09-08 | 一种内嵌式存储器及其测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116880782A CN116880782A (zh) | 2023-10-13 |
CN116880782B true CN116880782B (zh) | 2023-12-05 |
Family
ID=88257276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311153340.3A Active CN116880782B (zh) | 2023-09-08 | 2023-09-08 | 一种内嵌式存储器及其测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116880782B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117393032B (zh) * | 2023-12-13 | 2024-03-22 | 合肥康芯威存储技术有限公司 | 一种存储装置及其数据处理方法 |
CN117407928B (zh) * | 2023-12-13 | 2024-03-22 | 合肥康芯威存储技术有限公司 | 存储装置、存储装置的数据保护方法、计算机设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0922393A (ja) * | 1995-07-06 | 1997-01-21 | Mitsubishi Electric Corp | 通信機能を有するワンチップフラッシュメモリ装置 |
CN108345429A (zh) * | 2017-12-27 | 2018-07-31 | 北京兆易创新科技股份有限公司 | 一种Nand flash元件 |
CN110459259A (zh) * | 2019-07-31 | 2019-11-15 | 至誉科技(武汉)有限公司 | 存储设备写错误纠错能力的测试方法、系统及存储介质 |
CN110534151A (zh) * | 2018-05-24 | 2019-12-03 | 深圳忆联信息系统有限公司 | 实现写入前擦除的方法、装置、计算机设备及存储介质 |
WO2020015125A1 (zh) * | 2018-07-20 | 2020-01-23 | 江苏华存电子科技有限公司 | 一种高中低阶闪存的分类方法 |
CN111367710A (zh) * | 2018-12-25 | 2020-07-03 | 北京兆易创新科技股份有限公司 | 一种eMMC问题还原方法和装置 |
CN112542203A (zh) * | 2020-12-31 | 2021-03-23 | 深圳市芯天下技术有限公司 | 非易失性存储器的坏块修复方法、装置、存储介质和终端 |
CN114283873A (zh) * | 2021-11-12 | 2022-04-05 | 深圳宏芯宇电子股份有限公司 | 闪存检测方法及闪存检测系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8112682B2 (en) * | 2009-04-23 | 2012-02-07 | Sandisk Il Ltd | Method and device for bad-block testing |
JP5112566B1 (ja) * | 2011-12-16 | 2013-01-09 | 株式会社東芝 | 半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム |
KR20150029402A (ko) * | 2013-09-10 | 2015-03-18 | 에스케이하이닉스 주식회사 | 데이터 저장 시스템 및 그것의 동작 방법 |
KR20220001222A (ko) * | 2020-06-29 | 2022-01-05 | 에스케이하이닉스 주식회사 | 베드 블록을 처리하는 메모리 시스템 및 동작 방법 |
-
2023
- 2023-09-08 CN CN202311153340.3A patent/CN116880782B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0922393A (ja) * | 1995-07-06 | 1997-01-21 | Mitsubishi Electric Corp | 通信機能を有するワンチップフラッシュメモリ装置 |
CN108345429A (zh) * | 2017-12-27 | 2018-07-31 | 北京兆易创新科技股份有限公司 | 一种Nand flash元件 |
CN110534151A (zh) * | 2018-05-24 | 2019-12-03 | 深圳忆联信息系统有限公司 | 实现写入前擦除的方法、装置、计算机设备及存储介质 |
WO2020015125A1 (zh) * | 2018-07-20 | 2020-01-23 | 江苏华存电子科技有限公司 | 一种高中低阶闪存的分类方法 |
CN111367710A (zh) * | 2018-12-25 | 2020-07-03 | 北京兆易创新科技股份有限公司 | 一种eMMC问题还原方法和装置 |
CN110459259A (zh) * | 2019-07-31 | 2019-11-15 | 至誉科技(武汉)有限公司 | 存储设备写错误纠错能力的测试方法、系统及存储介质 |
CN112542203A (zh) * | 2020-12-31 | 2021-03-23 | 深圳市芯天下技术有限公司 | 非易失性存储器的坏块修复方法、装置、存储介质和终端 |
CN114283873A (zh) * | 2021-11-12 | 2022-04-05 | 深圳宏芯宇电子股份有限公司 | 闪存检测方法及闪存检测系统 |
Non-Patent Citations (1)
Title |
---|
基于SD控制器的闪存测试系统设计与研究;麻伟建;胡建萍;付建云;;计算机测量与控制(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116880782A (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116880782B (zh) | 一种内嵌式存储器及其测试方法 | |
US8086919B2 (en) | Controller having flash memory testing functions, and storage system and testing method thereof | |
US7290097B2 (en) | Nonvolatile memory | |
US6601132B2 (en) | Nonvolatile memory and method of writing data thereto | |
JP4722839B2 (ja) | メモリ制御回路、不揮発性記憶装置及びメモリ制御方法 | |
US7450436B2 (en) | Device recoverable purge for flash storage device | |
US8051339B2 (en) | Data preserving method and data accessing method for non-volatile memory | |
CN101599305B (zh) | 具有数据修复功能的储存系统及其数据修复方法 | |
CN109582216B (zh) | 数据储存装置与存储器装置的数据处理方法 | |
CN104731674B (zh) | 使用mlc nvm存储电子系统固件的方法与设备 | |
CN110459259A (zh) | 存储设备写错误纠错能力的测试方法、系统及存储介质 | |
CN111459708B (zh) | 坏块处理方法及装置 | |
US10509565B2 (en) | Apparatuses, methods, and computer-readable non-transitory recording mediums for erasure in data processing | |
JP4158526B2 (ja) | メモリカード及びメモリへのデータ書き込み方法 | |
CN110764693B (zh) | 一种提高Nand flash数据稳定性的方法以及装置 | |
CN107783723A (zh) | 一种存储器块处理方法和装置 | |
US20070101049A1 (en) | Redundant purge for flash storage device | |
US20070088905A1 (en) | System and method for purging a flash storage device | |
CN114089908A (zh) | 非易失性存储器及其操作方法 | |
KR20200101884A (ko) | 데이터 저장 시스템 및 그것의 동작 방법 | |
CN113327533B (zh) | 显示装置的补偿数据修复方法及补偿数据修复装置 | |
CN111370048A (zh) | 一种非易失存储器编程状态处理方法以及装置 | |
CN111949426A (zh) | 一种固件程序错误的检测方法、装置及存储设备 | |
TWI845062B (zh) | 對快閃記憶體模組進行測試的方法、與相關的快閃記憶體控制器及記憶裝置 | |
CN117742619B (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 |