CN108694988A - 存储器测试系统及其操作方法 - Google Patents
存储器测试系统及其操作方法 Download PDFInfo
- Publication number
- CN108694988A CN108694988A CN201711471770.4A CN201711471770A CN108694988A CN 108694988 A CN108694988 A CN 108694988A CN 201711471770 A CN201711471770 A CN 201711471770A CN 108694988 A CN108694988 A CN 108694988A
- Authority
- CN
- China
- Prior art keywords
- variable
- test
- data storage
- storage device
- memory
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/46—Test trigger logic
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C29/56004—Pattern generation
-
- 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3485—Performance evaluation by tracing or monitoring for I/O devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/1208—Error catch memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/36—Data generation devices, e.g. data inverters
- G11C2029/3602—Pattern generator
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C2029/5606—Error catch memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
Abstract
本发明涉及一种存储器测试系统,可包括:数据存储装置,包括非易失性存储器装置和控制器,控制器被配置成控制非易失性存储器装置的操作;以及测试装置,被配置成:向数据存储装置请求测试;在数据存储装置中执行测试时,向数据存储装置请求输出通过用于执行测试而驱动固件所生成的变量;并且基于从数据存储装置输出的变量来确定固件是否被正常驱动。
Description
相关申请的交叉引用
本申请要求于2017年3月29日提交的申请号为10-2017-0040086的韩国申请的优先权,其全部内容通过引用并入本文。
技术领域
各个实施例总体涉及一种半导体装置。更特别地,本公开的实施例涉及一种用于测试存储器的系统和方法。
背景技术
存储器装置在制造之后经历各种测试以检查其是否被正常操作。对存储器装置的测试包括黑盒测试和白盒测试,黑盒测试在存储器装置中存储的固件(FW)的策略为未知的状态下执行,白盒测试在FW的策略为已知的状态下执行。
通常,通过确定每个存储器装置对特定测试命令的响应精度的过程来对存储器装置执行测试。如果存储器装置的响应不准确,则确定对应的存储器装置存在缺陷,然后使用单独的调试设备来执行存储器装置的缺陷分析。
这样,因为对存储器装置的操作测试和对被确定为存在缺陷的存储器装置的缺陷分析被分开执行,所以增加了测试时间和成本。
发明内容
各个实施例提供了一种能够实时监控固件的驱动状态的用于测试存储器的系统和方法。
各个实施例提供了一种能够减少测试时间的用于测试存储器的系统和方法。
各个实施例提供了一种能够容易地测量固件的测试覆盖范围(coverage)的用于测试存储器的系统和方法。
在实施例中,存储器测试系统可包括:数据存储装置,包括非易失性存储器装置和控制器,控制器被配置成控制非易失性存储器装置的操作;以及测试装置,被配置成:请求对数据存储装置的测试;在数据存储装置中执行测试时,向数据存储装置请求输出通过用于执行测试而驱动固件所生成的变量;并且基于从数据存储装置输出的变量来确定固件是否被正常驱动。
在实施例中,用于测试存储器的方法可包括:向数据存储装置传输用于对数据存储装置执行测试的测试命令;在数据存储装置中执行测试的同时,监控通过用于执行对应于测试命令的测试而驱动固件所生成的变量;确定变量是否有效;如果变量有效,则确定从数据存储装置接收到的测试结果是否正常。
在实施例中,一种存储器测试装置的操作方法可包括:向数据存储装置请求在测试操作中正在驱动固件时生成的变量;并基于该变量确定固件的正常驱动。数据存储装置包括固件和存储器装置。固件在被驱动时控制存储器装置。
附图说明
图1是示意性示出根据本公开的实施例的存储器测试系统的框图。
图2是示出变量信息表的示例的简图。
图3是示出多个源代码组和插入在多个源代码组之间的多个驱动校验码的简图。
图4是示出存储用于表示图3的各源代码组是否被驱动的值的驱动校验区域的简图。
图5是示出通过驱动校验码的驱动而在驱动校验区域中存储第一值的示例的简图。
图6是示出变量表的示例的简图。
图7是示出根据实施例的用于测试存储器的方法的流程图。
图8是详细示出图7的步骤S420的流程图。
图9A是示出图1的非易失性存储器装置的配置的示例的框图。
图9B是示出其中通过图9A的每个存储块而将读取计数值存储在其中的读取计数表的简图。
图9C是示出将具有读取计数值大于或等于阈值的存储块的数据复制到空存储块的示例的简图。
图9D是示出当读取计数值大于或等于阈值时,对应于存储块的每一个的读取计数值的变化以及数据已被复制到其的存储块的示例的简图。
图9E是示出在坏块表中,与读取计数值已经达到或超出阈值的存储块对应的变量的变化的示例的简图。
图10是示出根据本公开的另一实施例的用于测试存储器的方法的流程图。
图11是详细示出图10的步骤S720的流程图。
图12是示出其中将某个存储器主体的读取计数值改变为预定值的示例的简图。
具体实施方式
以下参照附图更详细地描述本发明的各个实施例。然而,应注意的是,本发明可以以不同的其它实施例、形式和变化实施,并且不应被解释为限于本文阐述的实施例。相反,提供所述的实施例使得本公开将是彻底且完整的,并且将向本发明所属领域的技术人员完全传达本发明。在整个公开中,相同的附图标记在整个本发明的各个附图和实施例中表示相同的部件。
将理解的是,虽然术语“第一”、“第二”、“第三”等可在本文使用以描述各种元件,但是这些元件不受这些术语限制。这些术语被用于区分一个元件与另一元件。因此,在不脱离本发明的精神和范围的情况下,下面描述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能已经被夸大。
将进一步理解的是,当一个元件被称为“连接至”或“联接至”另一元件时,它可以直接在其它元件上、连接至或联接至其它元件,或可存在一个或多个中间元件。另外,也将理解的是,当元件被称为在两个元件“之间”时,两个元件之间可以仅有一个元件或也可存在一个或多个中间元件。
本文使用的术语的目的仅是描述特定实施例而不旨在限制本发明。如本文使用的,单数形式也旨在包括复数形式,除非上下文另有清楚地说明。将进一步理解的是,当在该说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,它们指定阐述的元件的存在而不排除一个或多个其它元件的存在或增加。如本文使用的,术语“和/或”包括一个或多个相关的所列项目的任何一个和所有组合。
除非另有限定,否则本文所使用的包括技术术语和科学术语的所有术语具有与本发明所属领域中普通技术人员通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与它们在本公开的上下文和相关领域中的含义一致的含义并且将不以理想化或过于正式的意义来解释,除非本文如此明确地限定。
在下面的描述中,为了提供对本发明的全面理解,描述了大量的具体细节。可在没有一些或全部这些具体细节的情况下实施本发明。在其它情况下,没有详细地描述公知的进程结构和/或进程以避免不必要地模糊本发明。
也应注意的是,在一些情况下,对相关领域的技术人员显而易见的是,结合一个实施例描述的特征或元件可单独使用或与另一实施例的其它特征或元件结合使用,除非另有明确说明。
图1是示意性示出根据本公开的实施例的存储器测试系统10的框图。
根据实施例的存储器测试系统10可包括测试装置100和数据存储装置200。
测试装置100可以是用于检查数据存储装置200是否执行正常操作的装置。例如,测试装置100可通过诸如蜂窝电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV和车载信息娱乐系统的各种装置中的任何一种进行配置。测试装置100可被称为主机装置。
测试装置100可包括处理器110和存储器120。
处理器110可控制测试装置100的一般操作。处理器110可将从外部元件输入的用以测试数据存储装置200的操作或者监控固件FW的驱动条件的各种信号提供到数据存储装置200。
例如,测试装置100可从外部元件接收测试命令CMD_T、变量监控命令CMD_VM、变量改变命令CMD_VC等,但是待输入的命令不限于这些。此处,外部元件可指测试器。此外,测试装置100可将测试命令CMD_T、变量输出命令CMD_VO或变量改变命令CMD_VC提供到数据存储装置200。
测试命令CMD_T可以是用于测试待在数据存储装置200中执行的各种操作的命令。例如,测试命令CMD_T可包括用于测试待在数据存储装置200中执行的所有操作的各种测试命令,诸如用于测试待在数据存储装置200中执行的编程操作的编程测试命令,以及用于测试读取操作的读取测试命令。测试命令CMD_T可包括诸如测试操作的类型、地址和测试数据的信息,但是包括在测试命令CMD_T中的信息不特别限于上述列表并且可包括其它信息。
变量监控命令CMD_VM可以是用于监控通过驱动存储在数据存储装置200,例如数据存储装置200的非易失性存储器装置210的系统数据区域中的固件FW而生成的变量的命令。换言之,变量监控命令CMD_VM可以是用于实时监控在对数据存储装置200执行测试时生成的变量并根据策略来验证固件FW是否被正常驱动的命令。
已经从测试器接收到变量监控命令CMD_VM的测试装置100可将变量输出命令CMD_VO提供到数据存储装置200。变量输出命令CMD_VO可以是用于请求输出通过驱动固件FW而生成的变量的命令。已经从测试装置100接收到变量输出命令CMD_VO的数据存储装置200可将通过驱动固件FW而生成的变量提供到测试装置100。
固件FW可指用于管理非易失性存储器装置210的一组源代码,使得根据操作指南在非易失性存储器装置210中执行各种操作。换言之,固件FW可控制用于管理非易失性存储器装置210的诸如垃圾收集、损耗均衡以及读取回收的后台操作。
此外,当驱动固件FW时,可生成各种变量表。例如,当驱动固件FW时待生成的变量表可包括读取计数表、块管理表、物理到逻辑(P2L)表、逻辑到物理(L2P)表、坏块表、EW循环表等,但变量表的类型不限于上述列表并且可包含其它类型的变量表。在驱动固件FW期间生成变量表是本领域公知的,所以本领域技术人员将容易理解的是可以生成各种其他变量表。
如图1所示,在驱动固件FW期间生成的变量表VT可被存储在数据存储装置200的控制器220的随机存取存储器(RAM)223中。此处,存储变量表VT的位置,即地址,可被预先存储在构建固件FW期间生成的变量信息表VIT中。固件FW的构建可包括生成目标文件的过程和生成执行文件的过程,其中通过编译通过使用诸如C语言的编程语言编写的源代码文件来生成目标文件以及通过链接所生成的目标文件来生成执行文件。此处,在编译源代码文件的过程中,可生成可执行且可链接格式(ELF)文件,并且变量信息表VIT可指包括在ELF文件中的符号表。变量信息表VIT可由测试器存储在测试装置100的存储器120中。
图2是示出变量信息表VIT的示例的简图。
如图2所示,变量信息表VIT可包括变量名称,变量存储位置,即变量地址,以及变量大小。例如,变量名称可指在驱动上述固件FW期间生成的变量表的类型。变量地址可指相应变量存储在数据存储装置200的控制器220的随机存取存储器223的变量表VT中的地址。此外,变量地址可指存储每个变量的区域的起始地址。变量大小可指存储每个变量的区域的大小。也就是说,在变量表VT中,存储每个变量的区域可通过变量地址和变量大小来确定。
变量改变命令CMD_VC可以是用于将存储在变量表VT中的变量改变为预定值的命令,其中变量表VT存储在数据存储装置200的随机存取存储器223中。为此,变量改变命令CMD_VC可包括诸如变量名称、变量位置(地址)和待改变的变量值的信息,但不特别限于此。
图3是示出多个源代码组和插入在多个源代码组之间的多个驱动校验码的简图,图4是示出存储用于表示图3的各源代码组是否被驱动的值的驱动校验区域的简图,图5是示出通过驱动校验码的驱动而将第一值存储在驱动校验区域的示例的简图。
如图3所示,固件FW可由多个源代码形成。例如,固件FW可包括对应于多个操作的多个源代码组第一SCG至第mnSCG。此外,固件FW可包括插入在各个源代码组第一SCG至第mnSCG之间的多个驱动校验码C1至Cmn。
驱动校验码C1至Cmn中的每一个可被驱动,使得当源代码组第一SCG至第mnSCG中的相应一个源代码组被驱动时,第一值被存储在图4中所示的驱动校验区域DCR的相应位中。例如,第一值可以是“1”,但不限于此。
参照图4,驱动校验区域DCR可由对应于驱动校验码C1至Cmn的数量的位形成。例如,如果第一源代码组第一SCG被驱动以执行第一操作,则第一驱动校验码C1可被驱动,使得第一值被存储在驱动校验区域DCR的相应位(即,C1)中。以这种方式,如果第一源代码组第一SCG至第mn源代码组第mnSCG全部被驱动,则第一值可通过驱动对应于各个源代码组的校验码而被存储在驱动校验区域DCR的相应位中。
测试装置100可参考驱动校验区域DCR来计算固件FW的测试覆盖范围。例如,如果测试装置100将请求输出存储在驱动校验区域DCR中的变量的变量输出命令CMD_VO传输到数据存储装置200,则数据存储装置200可将存储在驱动校验区域DCR中的变量提供到测试装置100。测试装置100可基于形成驱动校验区域DCR的位的总数量和其中存储第一值的位的数量来计算固件FW的测试覆盖范围。
例如,如图5所示,如果驱动校验区域DCR由一百(100)个位形成,并且其中已经存储第一值的位(即,阴影位)的数量为五十五(55),则测试装置100可确定固件FW的测试覆盖范围为55%。这样,测试装置100可通过在对数据存储装置200执行测试的同时实时监控存储在驱动校验区域DCR中的变量来容易地计算固件FW的测试覆盖范围。
数据存储装置200可根据待与测试装置100联接的接口协议来由各种存储器装置中的任何一种形成。例如,数据存储装置200可由诸如以下的各种存储装置中的任何一种来配置:固态驱动器(SSD),MMC、eMMC、RS-MMC或微型-MMC型的多媒体卡,SD、迷你-SD、微型-SD型的安全数字卡,通用串行总线(USB)存储装置,通用闪速存储(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)型存储装置,标准闪存(CF)卡,智能媒体卡和记忆棒。
数据存储装置200可以各种封装类型中的任何一种的形式来制造。例如,数据存储装置200可以诸如以下的各种封装类型中的任何一种的形式来制造:堆叠封装(POP)型、系统级封装(SIP)型、片上系统(SOC)型、多芯片封装(MCP)型、板上芯片(COB)型、晶圆级制造封装(WFP)型以及晶圆级堆叠封装(WSP)型。
重新参照图1,数据存储装置200可包括非易失性存储器装置210和控制器220。
控制器220可控制数据存储装置200的一般操作。控制器220可解码并驱动诸如固件FW或软件的代码类指令或算法。控制器220可以硬件或硬件和软件组合的形式实现。
控制器220可包括处理器221和随机存取存储器223。虽然在图1中未示出,但是控制器220可进一步包括能够与测试装置100进行通信的接口单元(未示出),能够与非易失性存储器装置210进行通信的存储器控制单元(未示出),以及错误校正码(ECC)单元,该错误校正码(ECC)单元能够生成用于从测试装置100提供的测试数据DATA_T的奇偶校验数据并且使用奇偶校验数据来检测和校正从非易失性存储器装置210读取的测试数据DATA_T的错误。
处理器221可控制控制器220的一般操作。处理器221可由微控制单元(MCU)和中央处理单元(CPU)配置。
处理器221可响应于从测试装置100提供的测试命令CMD_T来对非易失性存储器装置210执行测试。测试命令CMD_T可包括诸如测试操作的类型、测试位置信息和测试数据的信息。
例如,如果从测试装置100提供的测试命令CMD_T是用于编程操作测试的编程测试命令,则处理器221可执行将测试数据DATA_T存储在非易失性存储器装置210的测试位置中的编程测试。如果从测试装置100提供的测试命令CMD_T是用于读取操作测试的读取测试命令,则处理器221可执行从非易失性存储器装置210的测试位置读出测试数据DATA_T的读取测试。
虽然作为示例说明了编程测试和读取测试,但是处理器221还可对非易失性存储器装置210执行对应于包括在从测试装置100提供的测试命令CMD_T中的信息的测试。
随机存取存储器223可存储待由处理器221驱动的固件FW或软件。此外,随机存取存储器223可存储驱动固件FW或软件所需的数据。换言之,随机存取存储器223可作为处理器221的工作存储器。
随机存取存储器223可临时存储待从测试装置100传输到非易失性存储器装置210或从非易失性存储器装置210传输到测试装置100的测试数据DATA_T。换言之,随机存取存储器223可作为缓冲存储器。
随机存取存储器223可存储变量表VT,在驱动固件FW期间生成的变量存储在变量表VT中。
图6是示出变量表VT的示例的简图。
参照图6,变量表VT可包括多种变量。虽然在图6中仅示出读取计数和编程计数作为变量,但是包括在变量表VT中的变量不特别限于此。此外,如图2所示,其中存储相应类型的变量的每个区域的起始地址可被存储在变量信息表VIT中。例如,如图2和图6所示,存储读取计数的区域的起始地址为“0x10005600”,并且存储编程计数的区域的起始地址为“0x30002420”。
虽然变量表VT可包括对应于包括在非易失性存储器装置210中的各个存储块的变量,但是其不特别限于此。例如,在非易失性存储器装置210包括n个存储块的情况下,用于各个第一存储块#1至第n存储块#n的n个读取计数变量(或者n个编程计数变量)可被存储在变量表VT中。
图7是示出根据本公开的实施例的用于测试存储器的方法的流程图。图8是详细示出图7的步骤S420的流程图。在根据参照图7和图8的本实施例的存储器测试方法的描述中,图1和图2也将被用作参考。
在步骤S410中,测试装置100的处理器110可将测试命令CMD_T传输到数据存储装置200。此处,测试装置100可从外部元件,即测试器接收测试命令CMD_T。已经从测试装置100接收到测试命令CMD_T的数据存储装置200可将表示已经接收到测试命令CMD_T的信号提供到测试装置100。
在步骤S420中,测试装置100的处理器110可实时监控当在数据存储装置200中驱动固件FW以执行对应于在步骤S410中传输的测试命令CMD_T的测试时所生成的变量。将参照图8详细描述步骤S420。
参考图8,图8提供图7中所示的步骤S420的详细描述,在步骤S421中,测试装置100的处理器110可确定是否从外部元件提供了变量监控命令CMD_VM。变量监控命令CMD_VM可包括诸如变量名称的信息。如果从外部元件提供了变量监控命令CMD_VM,则可执行步骤S423。
在步骤S423中,处理器110可参考存储在存储器120中的变量信息表VIT,来检查待被监控的变量所存储的位置。例如,处理器110可参考变量信息表VIT,来检查与包括在变量监控命令CMD_VM中的变量名称相匹配的地址,并且将相应地址确定为待被监控的变量所存储的存储位置。
在步骤S425中,测试装置100的处理器110可将包括待被监控的变量的存储位置的变量输出命令CMD_VO传输到数据存储装置200。已经从测试装置100接收到变量输出命令CMD_VO的数据存储装置200可将存储在变量表VT的变量之中的、被请求从测试装置100输出的变量输出到测试装置100,其中变量表VT存储在随机存取存储器223中。
在步骤S427中,处理器110可检查从数据存储装置200输出的变量(在下文中,简称“输出变量”)。
重新参照图7,在步骤S430中,测试装置100的处理器110可确定输出变量是否有效。例如,处理器110可通过将输出变量与预期变量进行比较来确定输出变量是否有效。具体而言,当输出变量与预期变量匹配时,处理器110可确定输出变量有效。当输出变量与预期变量不匹配时,处理器110可确定输出变量无效。如果输出变量无效,则可执行步骤S460。如果输出变量有效,则可执行步骤S440。
在步骤S440中,处理器110可确定从数据存储装置200提供的测试结果是否正常。例如,在读取测试的情况下,处理器110可通过读出在期望执行测试的位置处编程的测试数据DATA_T并通过确定读出的测试数据DATA_T与起初编程的测试数据DATA_T是否匹配,来确定测试结果是否正常。确定对数据存储装置200的测试结果是否正常的方法可根据测试类型而变化。确定测试和测试结果是否正常的技术是本领域中公知的技术。因此,将省略对其的进一步的描述。
如果测试结果正常,则可执行步骤S450,如果测试结果不正常,则可执行步骤S460。
在步骤S450中,测试装置100的处理器110可将后续测试命令CMD_T传输到数据储存装置200,并返回到步骤S420。
在步骤S460中,测试装置100的处理器110可确定数据存储装置200存在缺陷,并中断测试。
在本实施例中,在对数据存储装置200的测试期间,实时监控通过驱动固件FW而生成的变量。因此,根据测试结果,不仅可验证数据存储装置200是否被正常操作,而且还可验证固件FW是否被正常驱动。因此,可更迅速地检查数据存储装置200是否存在缺陷。
图9A是示出图1的非易失性存储器装置210的配置的示例的框图。图9B是示出其中通过图9A的每个存储块而将读取计数值存储在其中的读取计数表RCT的简图。图9C是示出将具有读取计数值大于或等于阈值的存储块的数据复制到空存储块的示例的简图。图9D是示出当读取计数值大于或等于阈值时,对应于存储块的每一个的读取计数值的变化,以及数据已被复制到其的存储块的示例的简图。图9E是示出在坏块表中,与读取计数值已经成为或超出阈值的存储块对应的变量的变化的示例的简图。
参照图9A,将描述数据存储装置200的非易失性存储器装置210包括n个存储块并执行存储块1的读取测试的情况。为便于描述,如图9B所示,假设第一存储块#1的读取计数值为499,并且阈值读取计数为500。
如果对存储块1执行读取测试,则如图9D所示,存储块1的读取计数#1可改变为500。此处,测试装置100可执行以下操作来检查固件FW是否被正常驱动。测试装置100可使用变量输出命令CMD_VO向数据存储装置200请求输出读取计数,并且基于从数据存储装置200输出的读取计数来检查读取计数是否有效。此处,测试装置100可请求包括在非易失性存储器装置210中的所有存储块的读取计数,或者可选地,仅请求存储块1的读取计数#1。
如图9D所示,因为存储块1的读取计数#1已经改变为500,所以测试装置100可确定存储块1的读取计数#1有效。同时,因为存储块1的读取计数#1已经达到阈值,所以测试装置100可根据策略执行以下操作以验证读取回收操作是否已经被正常地执行。在读取回收操作期间,存储块1的数据可被复制到另一存储块,并将存储块1注册为坏块。为便于描述,如图9C所示,假设存储块1的数据已经被复制到存储块3。
测试装置100可使用变量输出命令CMD_VO向数据存储装置200请求输出坏块表BBT(参见图9E)和读取计数表RCT(参见图9D)。如果从数据存储装置200输出坏块表BBT和读取计数表RCT,则测试装置100可检查表示存储块1为坏块的值(例如,“1”)是否已经被存储在与坏块表BBT中的存储块1相对应的区域中。此外,可检查表示已经开始存储块3的使用的值(例如“0”)是否已经被存储在与读取计数表RCT中的存储块3相对应的区域中。
如果读取计数表RCT的变量和坏块表BBT的变量无效,则测试装置100可确定固件FW未被正常驱动并中断测试。
图10是示出根据本发明的另一实施例的用于测试存储器的方法的流程图。图11是详细示出图10的步骤S720的流程图。在根据参照图10和图11的实施例的存储器测试方法的描述中,图1至图3也将被用作参考。此外,将省略与参照图7和图8描述的存储器测试方法的描述重复的描述。
在步骤S710中,测试装置100的处理器110可将测试命令CMD_T传输到数据存储装置200。
在步骤S720中,处理器110可将变量改变命令CMD_VC传输到数据存储装置200,变量改变命令CMD_VC用于将与在步骤S710中传输的测试命令CMD_T相对应的变量改变为预定值。
例如,如果在步骤S710中传输的测试命令CMD_T是用于对存储块1进行编程操作测试的命令,则处理器110可将变量改变命令CMD_VC传输到数据存储装置200,该变量改变命令CMD_VC用于将在数据存储装置200的随机存取存储器223中存储的变量表VT中的存储块1的编程计数值改变成预定值。
如果在步骤S710中传输的测试命令CMD_T是用于对存储块1进行读取操作测试的命令,则处理器110可将变量改变命令CMD_VC传输到数据存储装置200,该变量改变命令CMD_VC用于将变量表VT中的存储块1的读取计数值改变为预定值。
此处,预定值可以是最接近阈值的值。例如,在存储块1的读取计数阈值为500的情况下,预定值可以是499。此处,在常规技术中,为了验证对第一存储块的读取回收操作是否根据策略而被正常执行,应当对存储块1总共执行100次读取测试。然而,在本实施例中,如图12所示,因为使用变量改变命令CMD_VC而将存储块1的读取计数强制地改变至499(即,与阈值最接近的值),所以应当被执行以验证存储块1的读回收操作的读取测试的次数可被减少。因此,可缩短测试时间。
在步骤S730中,处理器110可实时监控固件FW被驱动以在数据存储装置200中执行测试时所生成的变量。已经参照图5描述了监控变量的详细方法。因此,将省略对其的进一步描述。
在步骤S740中,处理器110可确定输出变量是否有效。例如,处理器110可通过将输出变量与预期变量进行比较来确定输出变量是否有效。如果输出变量无效,则可执行步骤S770。如果输出变量有效,则可执行步骤S750。
在步骤S750中,处理器110可确定从数据存储装置200提供的测试结果是否正常。如果测试结果正常,则可执行步骤S760,如果测试结果不正常,则可执行步骤S770。
在步骤S760,处理器110可将后续的测试命令CMD_T传输到数据存储装置200,并返回到步骤S720。
在步骤S770中,处理器110可确定数据存储装置200存在缺陷,并中断测试。
根据实施例,可以在测试数据存储装置的过程期间,实时监控通过驱动固件(FW)而生成的变量。
因此,不仅可验证数据存储装置是否被正常操作,而且还可实时验证固件是否被正常驱动。
因此,可更迅速地检查数据存储装置是否存在缺陷。
尽管上面已经描述了各个实施例,但是本领域技术人员将理解,所描述的实施例仅为示例。因此,在此描述的用于测试存储器的系统和方法不应基于所描述的实施例受到限制。
Claims (18)
1.一种存储器测试系统,其包括:
数据存储装置,其包括非易失性存储器装置和控制器,所述控制器被配置成控制所述非易失性存储器装置的操作;以及
测试装置,其被配置成:向所述数据存储装置请求测试;在所述数据存储装置中执行所述测试时,向所述数据存储装置请求输出通过用于执行所述测试而驱动固件所生成的变量;并且
基于从所述数据存储装置输出的变量来确定所述固件是否被正常驱动。
2.根据权利要求1所述的存储器测试系统,其中当确定所述固件被正常驱动时,所述测试装置基于从所述数据存储装置传输的测试结果来确定所述数据存储装置是否正常操作。
3.根据权利要求1所述的存储器测试系统,其中当确定所述固件未被正常驱动时,不管所述数据存储装置是否提供所述测试结果或所述数据存储装置提供的所述测试结果是否正常,所述测试装置确定所述数据存储装置存在缺陷,并且中断对所述数据存储装置的所述测试。
4.根据权利要求1所述的存储器测试系统,
其中所述非易失性存储器装置包括多个存储块,并且
其中所述固件被存储在所述多个存储块之中的至少一个存储块中的系统数据区域中。
5.根据权利要求1所述的存储器测试系统,其中所述固件包括:
多个源代码组,所述多个源代码组对应于多个操作;以及
多个驱动校验码,所述多个驱动校验码被插入在各个源代码组之间。
6.根据权利要求5所述的存储器测试系统,其中所述控制器包括包含驱动校验区域的随机存取存储器,其中以位图方式将表示所述固件的各个源代码组是否被驱动的值存储在所述驱动校验区域中。
7.根据权利要求6所述的存储器测试系统,其中所述多个驱动校验码中的每一个被驱动,使得当所述源代码组的相应一个被驱动时,表示所述源代码组被驱动的第一值被存储在所述驱动校验区域的相应位中。
8.根据权利要求7所述的存储器测试系统,其中所述测试装置基于所述驱动校验区域的位的总数量和在所述驱动校验区域中的存储所述第一值的位的数量来计算所述固件的测试覆盖范围。
9.根据权利要求6所述的存储器测试系统,其中所述随机存取存储器包括变量表,其中通过驱动所述固件而生成的变量存储在所述变量表中。
10.根据权利要求9所述的存储器测试系统,其中在请求输出所述变量之前,所述测试装置请求所述数据存储装置将存储在所述变量表中的所述变量之中的对应于所述测试的变量改变为预定值。
11.根据权利要求1所述的存储器测试系统,
其中所述测试装置包括存储器,包括所述变量的名称和地址的变量信息表存储在所述存储器中,
其中当从外部元件输入所述变量的名称时,所述测试装置参照所述变量信息表将与所述变量的输入名称相对应的地址传输到所述数据存储装置,并且请求输出所述变量。
12.一种用于测试存储器的方法,其包括:
向数据存储装置传输用于对所述数据存储装置执行测试的测试命令;
在所述数据存储装置中执行所述测试的同时,监控通过用于执行对应于所述测试命令的所述测试而驱动固件所生成的变量;
确定所述变量是否有效;以及
如果所述变量有效,则确定从所述数据存储装置接收到的测试结果是否正常。
13.根据权利要求12所述的方法,其中监控所述变量包括:
确定是否接收到变量监控命令,所述变量监控命令包括关于所述变量的信息;
如果接收到所述变量监控命令,则参考变量信息表来检查所述变量的存储位置;
将包括所述变量的存储位置的变量输出命令传输到所述数据存储装置;以及
检查从所述数据存储装置输出的所述变量。
14.根据权利要求13所述的方法,
其中关于所述变量的信息包括变量名称,并且
其中在所述变量信息表中,所述变量名称和所述变量的存储位置被存储为彼此匹配。
15.根据权利要求13所述的方法,其中确定所述变量是否有效包括:
将从所述数据存储装置输出的所述变量与预期变量进行比较;以及
如果从所述数据存储装置输出的所述变量与所述预期变量匹配,则确定所述变量有效,并且如果从所述数据存储装置输出的所述变量与所述预期变量不匹配,则确定所述变量无效。
16.根据权利要求12所述的方法,其进一步包括:在监控所述变量之前,将变量改变命令传输到所述数据存储装置,所述变量改变命令用于将所述变量改变至预定值。
17.根据权利要求12所述的方法,其进一步包括:在确定所述变量是否有效之后,如果所述变量无效,则不管是否从所述数据存储装置接收到所述测试结果或所述测试结果是否正常,确定所述数据存储装置存在缺陷,并且中断所述测试。
18.一种存储器测试装置的操作方法,所述方法包括:
向数据存储装置请求在测试操作中正在驱动固件时生成的变量;以及
基于所述变量确定所述固件的正常驱动,
其中所述数据存储装置包括所述固件和存储器装置,并且
其中所述固件在被驱动时控制所述存储器装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0040086 | 2017-03-29 | ||
KR1020170040086A KR20180110482A (ko) | 2017-03-29 | 2017-03-29 | 메모리 테스트 시스템 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108694988A true CN108694988A (zh) | 2018-10-23 |
CN108694988B CN108694988B (zh) | 2022-09-23 |
Family
ID=63670524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711471770.4A Active CN108694988B (zh) | 2017-03-29 | 2017-12-29 | 存储器测试系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10599540B2 (zh) |
KR (1) | KR20180110482A (zh) |
CN (1) | CN108694988B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113450865A (zh) * | 2020-03-26 | 2021-09-28 | 长鑫存储技术有限公司 | 存储器测试系统及其测试方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220149220A (ko) | 2021-04-30 | 2022-11-08 | 삼성전자주식회사 | 메모리 장치 |
CN115599699B (zh) * | 2022-11-30 | 2023-03-21 | 合肥康芯威存储技术有限公司 | 基于Jenkins的BIT自动化测试方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5615335A (en) * | 1994-11-10 | 1997-03-25 | Emc Corporation | Storage system self-test apparatus and method |
CN1873626A (zh) * | 2005-06-01 | 2006-12-06 | 中兴通讯股份有限公司 | 一种自动生成桩和驱动函数的单元测试系统及方法 |
US20070300121A1 (en) * | 2006-06-23 | 2007-12-27 | Cooper Francis J | Software and Methods to Detect And Correct Data Structure |
US20080126784A1 (en) * | 2006-08-28 | 2008-05-29 | Fujitsu Limited | Storage apparatus, control method, and control device |
CN101246441A (zh) * | 2006-12-11 | 2008-08-20 | 三星电子株式会社 | 用于在下载固件中校正错误的电路和方法 |
US7707553B2 (en) * | 2005-12-08 | 2010-04-27 | International Business Machines Corporation | Computer method and system for automatically creating tests for checking software |
US20120110551A1 (en) * | 2010-10-27 | 2012-05-03 | International Business Machines Corporation | Simulating black box test results using information from white box testing |
US20130159814A1 (en) * | 2011-12-16 | 2013-06-20 | Daisuke Hashimoto | Semiconductor storage device, nonvolatile semiconductor memory test method, and medium |
US20140013298A1 (en) * | 2012-07-06 | 2014-01-09 | International Business Machines Corporation | Auto generation and linkage of source code to test cases |
CN103854704A (zh) * | 2012-12-03 | 2014-06-11 | 上海斐讯数据通信技术有限公司 | 闪存坏块的自动检测方法及自动检测装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7907531B2 (en) | 2005-06-13 | 2011-03-15 | Qualcomm Incorporated | Apparatus and methods for managing firmware verification on a wireless device |
US8970240B2 (en) * | 2010-11-04 | 2015-03-03 | Cascade Microtech, Inc. | Resilient electrical interposers, systems that include the interposers, and methods for using and forming the same |
-
2017
- 2017-03-29 KR KR1020170040086A patent/KR20180110482A/ko unknown
- 2017-12-01 US US15/828,701 patent/US10599540B2/en active Active
- 2017-12-29 CN CN201711471770.4A patent/CN108694988B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5615335A (en) * | 1994-11-10 | 1997-03-25 | Emc Corporation | Storage system self-test apparatus and method |
CN1873626A (zh) * | 2005-06-01 | 2006-12-06 | 中兴通讯股份有限公司 | 一种自动生成桩和驱动函数的单元测试系统及方法 |
US7707553B2 (en) * | 2005-12-08 | 2010-04-27 | International Business Machines Corporation | Computer method and system for automatically creating tests for checking software |
US20070300121A1 (en) * | 2006-06-23 | 2007-12-27 | Cooper Francis J | Software and Methods to Detect And Correct Data Structure |
US20080126784A1 (en) * | 2006-08-28 | 2008-05-29 | Fujitsu Limited | Storage apparatus, control method, and control device |
CN101246441A (zh) * | 2006-12-11 | 2008-08-20 | 三星电子株式会社 | 用于在下载固件中校正错误的电路和方法 |
US20120110551A1 (en) * | 2010-10-27 | 2012-05-03 | International Business Machines Corporation | Simulating black box test results using information from white box testing |
US20130159814A1 (en) * | 2011-12-16 | 2013-06-20 | Daisuke Hashimoto | Semiconductor storage device, nonvolatile semiconductor memory test method, and medium |
US20140013298A1 (en) * | 2012-07-06 | 2014-01-09 | International Business Machines Corporation | Auto generation and linkage of source code to test cases |
CN103854704A (zh) * | 2012-12-03 | 2014-06-11 | 上海斐讯数据通信技术有限公司 | 闪存坏块的自动检测方法及自动检测装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113450865A (zh) * | 2020-03-26 | 2021-09-28 | 长鑫存储技术有限公司 | 存储器测试系统及其测试方法 |
CN113450865B (zh) * | 2020-03-26 | 2022-05-20 | 长鑫存储技术有限公司 | 存储器测试系统及其测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108694988B (zh) | 2022-09-23 |
KR20180110482A (ko) | 2018-10-10 |
US20180285228A1 (en) | 2018-10-04 |
US10599540B2 (en) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140325148A1 (en) | Data storage devices which supply host with data processing latency information, and related data processing methods | |
US9720797B2 (en) | Flash memory controller, data processing system with flash memory controller and method of operating a flash memory controller | |
CN110390979B (zh) | 存储器控制器和具有存储器控制器的存储器系统 | |
KR101254647B1 (ko) | 솔리드 스테이트 드라이브 테스트장치 | |
US20170062075A1 (en) | Apparatus including core and clock gating circuit and method of operating same | |
US9128634B1 (en) | Systems and methods of packed command management for non-volatile storage devices | |
KR101240633B1 (ko) | 솔리드 스테이트 드라이브 테스트장치 | |
CN106339178B (zh) | 存储器控制单元及包括该存储器控制单元的数据存储设备 | |
US9159454B2 (en) | Failure detection apparatus for solid state drive tester | |
CN108694988A (zh) | 存储器测试系统及其操作方法 | |
KR20210027563A (ko) | 저장 장치 및 그 동작 방법 | |
US20190065300A1 (en) | Method of retrieving debugging data in uefi and computer system thereof | |
US20150026530A1 (en) | Controller based memory evaluation | |
US11960728B2 (en) | Interface circuit, memory device, storage device, and method of operating the memory device | |
CN105373338A (zh) | 一种flash的控制方法和控制器 | |
US10248538B2 (en) | Controller of semiconductor memory device for detecting event and storing event information and operating method thereof | |
KR102634776B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20190018610A1 (en) | Storing memory profile data of an application in non-volatile memory | |
CN108628761A (zh) | 原子命令执行方法与装置 | |
US9153345B2 (en) | Error generating apparatus for solid state drive tester | |
US20150309943A1 (en) | Memory control unit and data storage device including the same | |
KR101365430B1 (ko) | 솔리드 스테이트 드라이브 테스터에서 플래시 메모리 상태검출장치 | |
KR20210018570A (ko) | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 | |
US9268554B2 (en) | Controlling method, memory controller, and data transmission system | |
US20230185686A1 (en) | Storage system and operating method of the same |
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 |