CN114242152A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN114242152A CN114242152A CN202110294749.1A CN202110294749A CN114242152A CN 114242152 A CN114242152 A CN 114242152A CN 202110294749 A CN202110294749 A CN 202110294749A CN 114242152 A CN114242152 A CN 114242152A
- Authority
- CN
- China
- Prior art keywords
- test
- memory
- command
- test commands
- firmware
- 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.)
- Withdrawn
Links
Images
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
-
- 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/3696—Methods or tools to render software testable
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- 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]
-
- 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
-
- 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
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开的实施例涉及一种存储器系统及其操作方法。根据本公开的实施例,该存储器系统可以在将固件设置为目标固件时生成多个测试命令以测试目标固件,通过处理多个测试命令来测试目标固件,并且基于与多个测试命令中的每一个相对应的种子值,随机地生成与多个测试命令中的每一个相对应的逻辑块地址LBA值。
Description
相关申请的交叉引用
本申请要求于2020年9月7日向韩国知识产权局提交的、申请号为10-2020-0113846的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
实施例总体上涉及一种存储器系统及其操作方法。
背景技术
存储器系统(例如,存储装置)基于从诸如计算机、移动终端(例如,智能手机或平板电脑)或各种其它电子装置中的任意一种的主机接收的请求存储数据。存储器系统可以是将数据存储在磁盘中的、诸如硬盘驱动器(HDD)的类型的装置,或者是将数据存储在非易失性存储器中的诸如固态驱动器(SSD)、通用闪存(UFS)装置和/或嵌入式MMC(eMMC)装置的类型的装置。
存储器系统可以进一步包括用于控制存储器装置的存储器控制器。存储器控制器可以从主机接收命令,并且基于接收到的命令,可以运行或控制用于读取、写入和/或擦除存储器系统中包括的易失性存储器或非易失性存储器中数据的操作。存储器控制器可以驱动固件以执行控制这些操作的逻辑运算。
在驱动固件之前,存储器系统可以对固件执行测试或相对于固件执行测试,以确定固件中是否存在错误和/或存储器系统中是否存在电路缺陷。通常,为了最小化用于测试固件的资源并有效地执行测试,在类似于用户环境的环境中测试固件,在该环境中存储器系统实际上接收并处理从主机接收的命令。
发明内容
本公开的实施例可以提供一种能够快速检测固件中是否存在错误并通知用户的存储器系统及其操作方法。
另外,本公开的实施例可以提供一种能够减少测试固件所需的成本的存储器系统及其操作方法。
一方面,本公开的实施例可以提供一种存储器系统,该存储器系统包括:存储器装置;以及存储器控制器,用于与存储器装置通信并且运行固件以控制存储器装置。
当固件被设置为目标固件时,存储器控制器可以生成多个测试命令以测试目标固件。
存储器控制器可以通过处理多个测试命令来测试目标固件。
在这种情况下,存储器控制器可以基于与多个测试命令中的每一个测试命令相对应的种子值,随机地生成与多个测试命令中的每一个测试命令相对应的逻辑块地址值。
存储器控制器可以基于目标时钟,随机地生成与多个测试命令之中的第一生成测试命令相对应的逻辑块地址值。
作为示例,存储器控制器可以基于目标时钟,随机地生成与多个测试命令之中作为第N测试命令(N是2或更大的自然数)生成的测试命令相对应的逻辑块地址值。
作为另一示例,存储器控制器可以基于多个测试命令之中的第(N-1)测试命令生成的时间处的看门狗定时器的值,随机地生成与多个测试命令之中作为第N测试命令(N是2或更大的自然数)生成的测试命令相对应的逻辑块地址值。
存储器控制器可以基于与目标固件相对应的优先级策略来确定处理多个测试命令的优先级。
另一方面,本公开的实施例可以提供一种操作存储器系统的方法,该存储器系统包括具有多个存储块的存储器装置。
操作存储器系统的方法可以包括:当将用于控制存储器装置的固件设置为目标固件时,生成多个测试命令以测试目标固件。
操作存储器系统的方法可以包括:通过处理多个测试命令来测试目标固件。
在这种情况下,可以基于与多个测试命令中的每一个相对应的种子值,随机地生成与多个测试命令中的每一个相对应的逻辑块地址值。
可以基于目标时钟,随机地生成与多个测试命令之中的第一生成测试命令相对应的逻辑块地址值。
在示例中,基于目标时钟,可以随机地生成与多个测试命令之中作为第N测试命令(N是2或更大的自然数)生成的测试命令相对应的逻辑块地址值。
在另一示例中,基于多个测试命令之中的第(N-1)测试命令生成的时间处的看门狗定时器的值,可以随机地生成与多个测试命令之中作为第N测试命令(N是2或更大的自然数)生成的测试命令相对应的逻辑块地址值。
可以基于与目标固件相对应的优先级策略来确定处理多个测试命令的优先级。
根据本公开的实施例,可以快速地检测固件中是否存在错误并通知用户。
进一步地,根据本公开的实施例,可以减少测试固件所需的成本。
附图说明
图1是示出根据本公开的实施例的存储器系统的配置的示意图。
图2是示出根据本公开的实施例的存储器装置的框图。
图3是示出根据本公开的实施例的存储器装置的字线和位线的结构的示图。
图4是示出根据本公开的实施例的存储器系统测试目标固件的时序的示图。
图5是示出根据本公开的实施例的存储器系统测试目标固件的操作的示图。
图6是示出根据本公开的实施例的存储器系统确定与测试命令中的每一个相对应的逻辑块地址的操作的示例的示图。
图7是示出存储器系统生成与图6的测试命令之中的第一生成测试命令相对应的逻辑块地址值的操作的示例的示图。
图8是示出存储器系统生成图7中描述的第一种子值的方法的示例的示图。
图9是示出存储器系统生成与图6的测试命令之中除了第一生成测试命令之外的测试命令相对应的逻辑块地址值的操作的示例的示图。
图10是示出存储器系统生成与图6的测试命令之中除了第一生成测试命令之外的命令相对应的逻辑块地址值的操作的另一示例的示图。
图11是示出根据本公开的实施例的存储器系统确定处理多个测试命令的优先级的操作的示例的示图。
图12是示出根据本公开的实施例的存储器系统将多个测试命令输入到命令队列的操作的示图。
图13是示出根据本公开的实施例的操作存储器系统的方法的示图。
图14是示出根据本公开的实施例的计算系统的配置的示图。
具体实施方式
在下文中,参照附图详细描述本公开的实施例。在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的(多个)实施例。当在本文中使用术语“实施例”时,术语“实施例”不一定指所有实施例。
图1是示出根据本公开的实施例的存储器系统100的示意性配置的示图。
参照图1,存储器系统100可以包括被配置为存储数据的存储器装置110以及被配置为控制存储器装置110的存储器控制器120。
存储器装置110可以包括多个存储块。存储器装置110可以被配置为响应于从存储器控制器120接收到的控制信号而操作。存储器装置110的操作可以包括例如读取操作、编程操作(也被称为“写入操作”)、擦除操作等。
存储器装置110可以包括存储器单元阵列,该存储器单元阵列包括被配置为存储数据的多个存储器单元(也被称为“单元”)。存储器单元阵列可以存在于存储块内部。
例如,存储器装置110可以被实施为诸如以下的各种类型的存储器中的任意一种:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)和/或自旋转移力矩随机存取存储器(STT-RAM)。
存储器装置110可以以三维阵列结构来实施。本公开的实施例不仅可应用于具有被配置为导电浮栅的电荷存储层的闪速存储器装置,而且还可应用于具有电荷撷取闪存(CTF)的闪速存储器装置,该电荷撷取闪存(CTF)具有被配置为绝缘膜的电荷存储层。
存储器装置110可以被配置为从存储器控制器120接收命令和地址,并且访问存储器单元阵列的、使用该地址所选择的区域。也就是说,存储器装置110可以在存储器装置的、具有与从存储器控制器接收到的地址相对应的物理地址的存储器区域中,执行与接收到的命令相对应的操作。
例如,存储器装置110可以执行编程操作、读取操作、擦除操作等。在编程操作期间,存储器装置110可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置110可以从由该地址选择的区域读取数据。在擦除操作期间,存储器装置110可以擦除存储在由该地址选择的区域中的数据。
存储器控制器120可以控制关于存储器装置110的写入操作(或编程操作)、读取操作、擦除操作和/或后台操作。后台操作可以是例如垃圾收集(GC)操作、损耗均衡(WL)操作和/或坏块管理(BBM)操作。
存储器控制器120可以在主机的请求下控制存储器装置110的操作。可选地,存储器控制器120可以在没有主机的相应请求的情况下,例如当存储器控制器120执行存储器装置的一个或多个后台操作时,控制存储器装置110的操作。
存储器控制器120和主机可以是单独的装置。在另一实施例中,存储器控制器120和主机可以被集成并实施为单个装置。在以下描述中,存储器控制器120和主机是单独的装置。
存储器控制器120可以包括主机接口(I/F)121、存储器接口122和控制电路123。
主机接口121可以被配置为提供用于与主机通信的接口。
当从主机(HOST)接收命令时,控制电路123可以通过主机接口121接收该命令,并且可以执行处理接收到的命令的操作。
存储器接口122可以连接到存储器装置110以提供用于与存储器装置110通信的接口。也就是说,存储器接口122可以被配置为响应于控制电路123的控制,向存储器装置110和存储器控制器120提供接口。
控制电路123可以被配置为通过执行对存储器控制器120的全部控制的操作来控制存储器装置110的操作。为了执行操作,控制电路123可以包括处理器124和工作存储器125。控制电路123可以进一步包括错误检测和校正(检测/校正)电路(例如,ECC电路)126。
处理器124可以控制存储器控制器120的全部操作。处理器124可以执行逻辑运算。处理器124可以通过主机接口121与主机通信。处理器124可以通过存储器接口122与存储器装置110通信。
处理器124可以执行闪存转换层(FTL)的功能。处理器124可以通过FTL将由主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA,并且通过使用映射表将LBA转换为PBA。
根据映射单元,存在FTL可以采用的各种地址映射方法。典型的地址映射方法包括页面映射方法、块映射方法和/或混合映射方法。
处理器124可以被配置为使从主机接收到的数据随机化。例如,处理器124可以通过使用随机化种子来使从主机接收到的数据随机化。经随机化的数据作为待存储的数据被提供到存储器装置110,并且被编程在存储器单元阵列。
在读取操作期间,处理器124可以被配置为使从存储器装置110接收到的数据去随机化。例如,处理器124可以通过使用去随机化种子来使从存储器装置110接收到的数据去随机化。经去随机化的数据可以被输出到主机。
处理器124可以运行固件(FW)以控制存储器控制器120的操作。换句话说,处理器124可以控制存储器控制器120的全部操作,并且为了执行逻辑运算,可以在启动期间运行(或驱动)加载到工作存储器125中的固件。
固件是指在存储器系统100内部运行的程序,并且可以包括各种功能层。
例如,固件可以包括闪存转换层(FTL)、主机接口层(HIL)和/或闪存接口层(FIL)。闪存转换层被配置为在主机请求存储器系统100提供的逻辑地址和存储器装置110的物理地址之间转换。主机接口层被配置为解释主机向存储器系统100(或存储装置)发出的命令并将该命令传递到FTL。闪存接口层被配置为将由FTL发出的命令传递到存储器装置110。
例如,固件可以存储在存储器装置110中,然后被加载到工作存储器125中。
工作存储器125可以存储驱动存储器控制器120的固件、程序代码、命令或数据条。工作存储器125可以包括作为易失性存储器的例如静态RAM(SRAM)、动态RAM(DRAM)和/或同步RAM(SDRAM)。
错误检测/校正电路126可以被配置为通过使用错误校正码来检测目标数据的(多个)错误位,并且校正检测到的(多个)错误位。例如,目标数据可以是存储在工作存储器125中的数据、从存储器装置110检索的数据等。
错误检测/校正电路126可以被实施为通过使用错误校正码来对数据进行解码。错误检测/校正电路126可以通过使用各种代码解码器来实施。例如,可以使用执行非系统代码解码的解码器或执行系统代码解码的解码器。
例如,错误检测/校正电路126可以针对每条读取数据逐个扇区地检测(多个)错误位。也就是说,每条读取数据可以包括多个扇区。如本文所使用的,扇区可以指小于闪速存储器的读取单位(例如,页面)的数据单位。构成每条读取数据的扇区可以经由地址彼此对应。
错误检测/校正电路126可以计算位错误率(BER),并且可以确定是否可以逐个扇区地进行校正。例如,如果BER高于参考值,则错误检测/校正电路126可以确定相应的扇区是不可校正的或“失败”。如果BER等于或低于参考值,则错误检测/校正电路126可以确定相应的扇区是可校正的或“通过”。
错误检测/校正电路126可以针对所有条读取数据顺序地执行错误检测和校正操作。当读取数据中的扇区是可校正的时,错误检测/校正电路126可以针对下一条读取数据省略与相应的扇区相关的错误检测和校正操作。在以这种方式完成针对所有条读取数据的错误检测和校正操作之后,错误检测/校正电路126可以检测到最后被认为是不可校正的扇区。可能存在一个或多个被认为是不可校正的扇区。错误检测/校正电路126可以将关于被认为是不可校正的扇区的信息(例如,地址信息)传递到处理器124。
总线127可以被配置为提供存储器控制器120的组成元件(即,主机接口121、存储器接口122、处理器124、工作存储器125和/或错误检测/校正电路126)之间的通道。例如,总线127可以包括用于传递各种类型的控制信号和命令的控制总线以及用于传递各种类型的数据的数据总线。
存储器控制器120的上述组成元件仅作为示例提供。可以省略存储器控制器120的上述组成元件中的一个或多个,并且/或者可以将上述组成元件中的一个或多个集成到单个元件中。另外,在一些情况下,除了存储器控制器120的上述组成元件之外,还可以添加一个或多个其它组成元件。
在下文中,参照图2更详细地描述存储器装置110。
图2是示出根据本公开的实施例的存储器装置110的框图。
参照图2,存储器装置110可以包括存储器单元阵列210、地址解码器220、读取和写入(读取/写入)电路230、控制逻辑240和电压生成电路250。
存储器单元阵列210可以包括多个存储块BLK1至BLKz,其中z是大于或等于2的自然数。
在多个存储块BLK1至BLKz中,可以设置多个字线WL和多个位线BL,并且可以布置多个存储器单元MC。
多个存储块BLK1至BLKz可以通过多个字线WL连接到地址解码器220。多个存储块BLK1至BLKz可以通过多个位线BL连接到读取/写入电路230。
多个存储块BLK1至BLKz中的每一个可以包括多个存储器单元。例如,多个存储器单元是非易失性存储器单元,并且可以包括具有垂直沟道结构的非易失性存储器单元。
存储器单元阵列210可以被配置为具有二维结构的存储器单元阵列,并且在一些情况下,可以被配置为具有三维结构的存储器单元阵列。
存储器单元阵列210中的多个存储器单元中的每一个可以存储至少一位数据。例如,存储器单元阵列210中的多个存储器单元中的每一个可以是被配置为存储一位数据的单层单元(SLC)、被配置为存储两位数据的多层单元(MLC)、被配置为存储三位数据的三层单元(TLC)或被配置为存储四位数据的四层单元(QLC)。作为另一示例,存储器单元阵列210可以包括多个存储器单元,该多个存储器单元中的每一个可以被配置为存储五位或更多位数据。
地址解码器220、读取/写入电路230、控制逻辑240和电压生成电路250可以作为被配置为驱动存储器单元阵列210的外围电路而操作。
地址解码器220可以通过多个字线WL连接到存储器单元阵列210。
地址解码器220可以被配置为响应于控制逻辑240的控制而操作。
地址解码器220可以通过存储器装置110内部的输入/输出缓冲器(未示出)来接收地址。地址解码器220可以被配置为对接收到的地址之中的块地址进行解码。地址解码器220可以根据经解码的块地址选择至少一个存储块。
地址解码器220可以从电压生成电路250接收读取电压Vread和通过电压Vpass。
在读取操作期间,地址解码器250可以将读取电压Vread施加到所选择存储块内部的所选择字线WL,并且可以将通过电压Vpass施加到剩余的未选择字线WL。
在编程验证操作期间,地址解码器220可以将由电压生成电路250生成的验证电压施加到所选择存储块内部的所选择字线WL,并且可以将通过电压Vpass施加到剩余的未选择字线WL。
地址解码器220可以被配置为对接收到的地址之中的列地址进行解码。地址解码器220可以将经解码的列地址传输到读取/写入电路230。
存储器装置110可以逐个页面地执行读取操作和编程操作。在请求读取操作和编程操作时接收到的地址可以包括块地址、行地址和/或列地址中的至少一个。
地址解码器220可以根据块地址和行地址选择一个存储块和一个字线。列地址可以由地址解码器220解码,并且可以被提供到读取/写入电路230。
地址解码器220可以包括块解码器、行解码器、列解码器和/或地址缓冲器。
读取/写入电路230可以包括多个页面缓冲器PB。当存储器单元阵列210执行读取操作时,读取/写入电路230可以作为“读取电路”进行操作,并且当存储器单元阵列210执行写入操作时,读取/写入电路230可以作为“写入电路”进行操作。
上述的读取/写入电路230也被称为包括多个页面缓冲器PB的页面缓冲器电路,或者数据寄存器电路。读取/写入电路230可以包括用于数据处理功能的数据缓冲器,并且在一些情况下,可以进一步包括用于高速缓存功能的高速缓存缓冲器。
多个页面缓冲器PB可以通过多个位线BL连接到存储器单元阵列210。为了在读取操作和编程验证操作期间感测存储器单元的阈值电压Vth,多个页面缓冲器PB可以连续地向连接到存储器单元的位线BL供应感测电流,可以通过感测节点感测根据相应存储器单元的编程状态而流过的电流量的变化,并且可以将所感测的变化锁存为感测数据。
读取/写入电路230可以响应于从控制逻辑240输出的页面缓冲器控制信号而操作。
在读取操作期间,读取/写入电路230感测存储器单元中的数据,临时存储检索到的数据,并且将数据DATA输出到存储器装置110的输入/输出缓冲器。在实施例中,除了页面缓冲器PB或页面寄存器之外,读取/写入电路230还可以包括列选择电路。
控制逻辑240可以连接到地址解码器220、读取/写入电路230和电压生成电路250。控制逻辑240可以通过存储器装置110的输入/输出缓冲器接收命令CMD和控制信号CTRL。
控制逻辑240可以被配置为响应于控制信号CTRL而控制存储器装置110的全部操作。控制逻辑240可以输出用于调整多个页面缓冲器PB的感测节点的预充电电位电平的控制信号。
控制逻辑240可以控制读取/写入电路230以在存储器单元阵列210中执行读取操作。电压生成电路250可以响应于从控制逻辑240输出的电压生成电路控制信号,生成在读取操作期间使用的读取电压Vread和通过电压Vpass。
存储器装置110中的存储块BLK可以包括多个页面PG和多个串。多个页面PG对应于多个字线WL,并且多个串STR对应于多个位线BL。
在存储块BLK中,多个字线WL和多个位线BL可以被布置为彼此相交。例如,多个字线WL中的每一个可以沿行方向布置,并且多个位线BL中的每一个可以沿列方向布置。又例如,多个字线WL中的每一个可以沿列方向布置,并且多个位线BL中的每一个可以沿行方向布置。
多个字线WL和多个位线BL可以彼此相交,从而限定多个存储器单元MC。每个存储器单元MC可以具有布置在其中的晶体管TR。
例如,布置在每个存储器单元MC中的晶体管TR可以包括漏极、源极和栅极。晶体管TR的漏极(或源极)可以直接地或经由另一晶体管TR连接到相应的位线BL。晶体管TR的源极(或漏极)可以直接地或经由另一晶体管TR连接到源极线(可以是接地)。晶体管TR的栅极可以包括浮栅(FG)和控制栅极(CG),其中浮栅(FG)由绝缘体围绕,从字线WL向控制栅极(CG)施加栅极电压。
在多个存储块BLK1至BLKz的每一个中,第一选择线(也被称为源极选择线或漏极选择线)可以额外地布置在两个最外字线之中更靠近读取/写入电路230的第一最外字线的外部,并且第二选择线(也被称为漏极选择线或源极选择线)可以额外地布置在另一第二最外字线的外部。
在一些情况下,可以在第一最外字线和第一选择线之间额外地布置至少一个虚设字线。另外,可以在第二最外字线和第二选择线之间额外地布置至少一个虚设字线。
可以逐个页面地执行存储块的读取操作和编程操作(例如,写入操作),并且可以逐个存储块地执行擦除操作。
图3是示出根据本公开的实施例的存储器装置110的字线WL和位线BL的结构的示图。
参照图3,存储器装置110具有存储器单元MC集中于此的内核区域以及对应于其余非内核区域的辅助区域。辅助区域支持存储器单元阵列210的操作。
内核区域可以包括页面PG和串STR。在内核区域中,多个字线WL1至WL9和多个位线BL被布置为相交。
字线WL1至WL9可以连接到行解码器310。位线BL可以连接到列解码器320。对应于图2的读取/写入电路230的数据寄存器330可以存在于多个位线BL和列解码器320之间。
多个字线WL1至WL9可以对应于多个页面PG。
例如,如图3所示,多个字线WL1至WL9中的每一个可以对应于单个页面PG。当多个字线WL1至WL9中的每一个的大小较大时,多个字线WL1至WL9中的每一个可以对应于至少两个(例如,两个或四个)页面PG。每个页面PG是与进行编程操作和读取操作有关的最小单位,并且当进行编程操作和读取操作时,相同页面PG内的所有存储器单元MC可以同时执行操作。
多个位线BL可以连接到列解码器320,同时在奇数编号的位线BL和偶数编号的位线BL之间进行区分。
为了访问存储器单元MC,可以首先通过输入/输出端,然后通过行解码器310和列解码器320将地址输入到内核区域,从而可以指定相应的目标存储器单元。如本文所使用的,指定目标存储器单元是指访问在连接到行解码器310的字线WL1至WL9与连接到列解码器320的位线BL之间的交点处的存储器单元MC中的一个存储器单元,以将数据编程到该一个存储器单元或从该一个存储器单元读取经编程的数据。
第一方向(例如,如图3所示的水平方向)上的页面PG由被称为字线WL的通用线限定,第二方向(例如,如图3所示的垂直方向)上的串STR由被称为位线BL的公共线限定(例如,连接)。如本文所使用的,共同限定是指通过相同的材料在结构上连接并且在施加电压期间同时接收相同的电压。由于在串联连接的存储器单元MC之中在前(多个)存储器单元MC上的电压降,施加到存储器单元MC之中串联连接线下游的存储器单元MC的电压可能与施加到串联连接线上游的存储器单元MC的电压略微不同。
因为存储器装置110进行的所有数据处理,包括编程操作和读取操作,都经由数据寄存器330发生,所以数据寄存器330起着重要的作用。如果数据寄存器330进行的数据处理被延迟,则所有其它区域都需要等待,直到数据寄存器330完成数据处理。另外,数据寄存器330的性能劣化可能会使存储器装置110的整体性能劣化。
在图3所示的示例中,在一个串STR中,多个晶体管TR1至TR9可以分别连接到多个字线WL1至WL9。多个晶体管TR1至TR9对应于存储器单元MC。在该示例中,多个晶体管TR1至TR9中的每一个包括控制栅极CG和浮栅FG。
多个字线WL1至WL9包括两个最外字线WL1和WL9。第一选择线DSL可以额外地布置在两个最外字线WL1和WL9之中就信号路径而言更靠近数据寄存器330的第一最外字线WL1的外部。第二选择线SSL可以额外地布置在另一第二最外字线WL9的外部。
由第一选择线DSL控制导通/关断的第一选择晶体管D-TR具有连接到第一选择线DSL的栅电极,但是不包括浮栅FG。由第二选择线SSL控制导通/关断的第二选择晶体管S-TR具有连接到第二选择线SSL的栅电极,但是不包括浮栅FG。
第一选择晶体管D-TR起到接通或断开相应的串STR和数据寄存器330之间的连接的开关的作用。第二选择晶体管S-TR起到接通或断开相应的串STR和源极线SL之间的连接的开关的作用。也就是说,第一选择晶体管D-TR和第二选择晶体管S-TR起到位于相应的串STR的相对端以传递或阻挡信号的网守(gatekeepers)的作用。
在编程操作期间,存储器系统100利用电子填充待被编程的位线BL的目标存储器单元MC。因此,存储器系统100将导通电压Vcc施加到第一选择晶体管D-TR的栅电极,从而导通第一选择晶体管D-TR,并且将关断电压(例如,0V)施加到第二选择晶体管S-TR的栅电极,从而关断第二选择晶体管S-TR。
在读取操作或验证操作期间,存储器系统100导通第一选择晶体管D-TR和第二选择晶体管S-TR两者。因此,在读取操作或验证操作期间,电流可以流经相应的串STR和漏极并流出到对应于接地的源极线SL,使得可以测量位线BL的电压电平。然而,在读取操作期间,第一选择晶体管D-TR和第二选择晶体管S-TR之间的通/断时间可能存在时间差。
在擦除操作期间,存储器系统100可以通过源极线SL向衬底供应电压(例如,+20V)。在擦除操作期间,存储器系统100使第一选择晶体管D-TR和第二选择晶体管S-TR两者都浮置,从而产生无穷大电阻。因此,第一选择晶体管D-TR的作用和第二选择晶体管S-TR的作用可以被消除,并且由于电位差,电子仅可以在浮栅FG和衬底之间操作或移动。
图4是示出根据本公开的实施例的存储器系统100测试目标固件TGT_FW的时序(timing)的示图。
参照图4,当将固件设置为目标固件TGT_FW时,存储器系统100的存储器控制器120可以测试目标固件TGT_FW。在将固件设置为目标固件TGT_FW之后,为了预先检查目标固件TGT_FW操作时可能发生的问题,存储器控制器120可以在目标固件TGT_FW操作之前测试目标固件TGT_FW。
在这种情况下,目标固件TGT_FW操作时可能发生的问题可能是,例如目标固件TGT_FW中的缺陷或现有错误。
作为另一示例,运行目标固件TGT_FW时可能发生的问题可能是用于在存储器控制器120和存储器装置110之间传输和接收数据的电路(例如,存储器接口122)的缺陷。如果电路中存在硬件缺陷,则在测试目标固件TGT_FW时,在存储器控制器120与存储器装置110之间传输和接收数据的过程中可能发生错误。因此,存储器控制器120可以通过检查测试目标固件TGT_FW期间是否发生这种错误来检查电路中是否存在硬件缺陷。
以下描述了将固件设置为目标固件TGT_FW时的实例的示例。
例如,当目标固件TGT_FW最初被加载到存储器控制器120中时,存储器控制器120可以测试所加载的目标固件TGT_FW。
作为另一示例,当发生固件更新时,即,当固件从先前设置的旧固件OLD_FW更新到目标固件TGT_FW时,存储器控制器120可以测试更新后的目标固件TGT_FW。
特别地,在制造存储器系统100的过程中,可以加载目标固件TGT_FW,或者可以将先前安装的固件更新为目标固件TGT_FW。在这种情况下,因为在存储器系统100的制造过程中可以立即测试目标固件TGT_FW,所以可以减少存储器系统100的周转时间(TAT)。此外,可以预先并且在用户使用存储器系统100之前检测存储器系统100中存在的缺陷。
在下文中,将详细描述存储器系统100测试目标固件TGT_FW的操作。
图5是示出根据本公开的实施例的存储器系统100测试目标固件TFT_FW的操作的示图。
参照图5,存储器系统100的存储器控制器120可以生成多个测试命令CMD以测试目标固件TGT_FW。也就是说,存储器控制器120可以通过生成多个测试命令CMD来测试目标固件TGT_FW,而不是使用由主机或外部装置生成的命令来测试目标固件TGT_FW。因此,存储器系统100可以减少因使用主机或外部装置测试目标固件TGT_FW而可能产生的成本。
特别地,尽管用于测试目标固件TGT_FW的外部装置可以测试数据、功能以及存储器系统100内部的存储器装置110,但是该外部装置相对昂贵。因此,如果存储器系统100在不使用这种外部装置的情况下对目标固件TGT_FW执行测试,则可以进一步增加或增强成本降低。
存储器控制器120可以在生成多个测试命令CMD之后通过处理所生成的测试命令CMD来测试目标固件TGT_FW。存储器控制器120可以一个接一个地依次处理多个测试命令CMD,或者可以并行处理多个测试命令CMD中的一个或多个。
同时,在处理多个测试命令CMD的过程中,存储器控制器120可以不同步所有测试命令CMD的运行顺序。也就是说,存储器控制器120可以一个接一个地处理多个测试命令CMD,而不是在特定测试命令的处理完成之后处理下一个测试命令,存储器控制器120可以异步地处理多个测试命令CMD中的一个或多个。
存储器控制器120可以基于目标固件TGT_FW运行多个测试命令CMD中的一个。存储器控制器120可以根据在所运行的测试命令中定义的操作将请求传输到存储器装置110,并且从存储器装置110接收对该请求的响应。存储器控制器120可以基于来自存储器装置110的响应,确定对相应测试命令的测试是成功还是失败。例如,如果存储器装置110对相应测试命令的响应指示成功,则存储器控制器120可以确定对相应测试命令的测试已经成功,并且如果存储器装置110的响应指示失败,则存储器控制器120可以确定对相应测试命令的测试已经失败。
存储器控制器120可以基于目标固件TGT_FW运行多个测试命令CMD中的每一个,然后可以基于多个测试命令CMD中的每一个的运行结果来确定对目标固件TGT_FW的测试是否已经成功(S510)。
作为示例,当对多个测试命令CMD之中等于或大于特定阈值(例如,50)的测试命令的测试成功时,存储器控制器120可以确定对目标固件TGT_FW的测试已经成功。另一方面,当对多个测试命令CMD之中小于特定阈值的测试命令的测试成功时,存储器控制器120可以确定对目标固件TGT_FW的测试已经失败。
在确定对目标固件TGT_FW的测试已经成功(S510-是)的情况下,存储器控制器120可以运行或驱动目标固件TGT_FW(S520)。
同时,如果存储器控制器120确定对目标固件TGT_FW的测试已经失败(S510-否),则存储器系统100可以将指示在测试目标固件TGT_FW时已经失败的警报输出或传输到存储器系统100的外部,并且可以停止运行目标固件TGT_FW(S530)。因此,存储器控制器120可以预先防止因运行目标固件TGT_FW而引起的问题。
例如,警报可以以特定信号或消息的形式传输或传递到主机。另外,存储器控制器120可以在停止运行目标固件TGT_FW之后进入卡滞状态,或者可以操作其它固件(例如,先前版本的固件或预设的默认固件)代替目标固件TGT_FW。
如本文所述,当存储器控制器120测试目标固件TGT_FW时,存储器控制器120可以生成多个测试命令CMD,从而可以在类似于用户环境的环境中执行测试,以便在测试期间尽可能准确地模拟用户环境。
在下文中,将描述生成多个命令CMD从而存储器控制器120可以在类似于用户环境的环境中执行测试的详细操作。
图6是示出根据本公开的实施例的存储器系统100确定与测试命令CMD中的每一个相对应的逻辑块地址的操作的示例的示图。
参照图6,存储器系统100的存储器控制器120可以基于与多个测试命令CMD中的每一个相对应的种子值,随机地生成与每个测试命令相对应的逻辑块地址的值。在实际用户环境中,从主机传输到存储器系统100的命令可以具有随机模式。因此,为了将多个测试命令CMD的特性设置为与实际用户环境尽可能相似,存储器控制器120还可以随机地生成每个测试命令的逻辑块地址值。
如图6所示,存储器控制器120可以生成M个测试命令CMD(其中M是大于或等于2的自然数)。
在这种情况下,存储器控制器120可以基于第一种子SEED_1,随机地生成第一逻辑地址LBA_1,其中第一种子SEED_1是与M个测试命令CMD之中的第一生成测试命令相对应的种子,第一逻辑地址LBA_1是与相应命令相对应的逻辑地址。
此外,存储器控制器120可以基于第二种子SEED_2,随机地生成第二逻辑地址LBA_2,其中第二种子SEED_2是与M个测试命令CMD之中的第二生成测试命令相对应的种子,第二逻辑地址LBA_2是与相应命令相对应的逻辑地址。
以与上述类似的方式,存储器控制器120可以基于第(M-1)种子SEED_M-1,随机地生成第(M-1)逻辑地址LBA_M-1,其中第(M-1)种子SEED_M-1是与M个测试命令CMD之中第(M-1)生成测试命令相对应的种子,第(M-1)逻辑地址LBA_M-1是与相应命令相对应的逻辑地址。另外,存储器控制器120可以基于第M种子SEED_M,随机地生成第M逻辑地址LBA_M,其中第M种子SEED_M是与M个测试命令CMD之中第M生成测试命令相对应的种子,第M逻辑地址LBA_M是与相应命令相对应的逻辑地址。
在下文中,将描述存储器系统100随机生成与多个测试命令CMD中的每一个相对应的逻辑块地址的详细方法。
图7是示出存储器系统100生成与图6的测试命令CMD之中的第一生成测试命令相对应的逻辑块地址值的操作的示例的示图。
参照图7,存储器系统100的存储器控制器120可以基于设定的目标时钟TGT_CLK,随机地生成与图6中描述的多个测试命令CMD之中的第一生成测试命令相对应的逻辑块地址值。
也就是说,存储器控制器120可以根据时间t将第一种子SEED_1设置为目标时钟(TGT_CLK)的值,该第一种子SEED_1是用于生成与多个测试命令CMD之中的第一生成测试命令相对应的逻辑块地址值的种子值。
目标时钟TGT_CLK可以是例如用于存储器控制器120的操作的系统时钟,或者用于与存储器装置110的数据传输/接收过程中的同步的时钟。然而,目标时钟TGT_CLK不限于此,并且可以从存储器系统100内部或存储器系统100外部使用的各种时钟之中选择。
如本文所述,因为目标时钟值并不总是恒定的,并且随时间而略有变化,所以目标时钟可以用于随机生成逻辑块地址值。
例如,假设目标时钟TGT_CLK的参考值被设置为100MHz,则目标时钟TGT_CLK的值可能并不总是100MHz,而是可以根据特定时间而改变,例如像100.001MHz->99.998MHz->100.003MHz->99.999MHz->…。在特定时间,因为目标时钟TGT_CLK的变化量相比于参考值可以是随机的,所以可以通过使用目标时钟TGT_CLK来随机地生成逻辑块地址值。
图8是示出存储器系统100生成图7中描述的第一种子值SEED_1的方法的示例的示图。
参照图8,假设目标时钟TGT_CLK的参考值为A,并且在时间t处测量的目标时钟TGT_CLK的值为B。在这种情况下,可以将图7中描述的第一种子值SEED_1的值确定为两个值之间的差,即,根据B-A确定的函数值。
在图8中,可以仅考虑在时间t处目标时钟TGT_CLK的值相比于目标时钟TGT_CLK的参考值的变化量,但是在多次测量相比于目标时钟TGT_CLK的参考值的变化量之后,还可以基于所测量的目标时钟TGT_CLK的值的总变化量(例如,总变化量的平均值)来确定第一种子值SEED_1值。
因此,已经描述了存储器系统100生成与多个测试命令CMD之中的第一生成测试命令相对应的逻辑块地址值的操作。
在下文中,将描述存储器系统100生成与多个测试命令CMD之中除了第一生成测试命令之外的其余测试命令相对应的逻辑块地址值的操作。
图9是示出存储器系统100生成与图6的测试命令CMD之中除了第一生成测试命令之外的测试命令相对应的逻辑块地址值的操作的示例的示图。
参照图9,类似于在多个测试命令CMD之中最初生成的测试命令,存储器系统100的存储器控制器120可以基于目标时钟TGT_CLK随机地生成与其余测试命令相对应的逻辑块地址。
如图9所示,存储器控制器120可以基于第一种子SEED_1,随机地生成第一逻辑地址LBA_1,其中第一种子SEED_1是基于多个测试命令CMD之中的第一生成测试命令生成的时间t1处的目标时钟TGT_CLK的值所确定的种子,第一逻辑地址LBA_1是与相应命令相对应的逻辑地址。
另外,存储器控制器120可以基于第二种子SEED_2,随机地生成第二逻辑地址LBA_2,其中第二种子SEED_2是基于多个测试命令CMD之中的第二生成测试命令生成的时间t2处的目标时钟TGT_CLK的值所确定的种子,第二逻辑地址LBA_2是与相应命令相对应的逻辑地址。
以类似的方式,存储器控制器120可以基于第(M-1)种子SEED_M-1,随机地生成第(M-1)逻辑地址LBA_M-1,其中第(M-1)种子SEED_M-1是基于多个测试命令CMD之中的第(M-1)测试命令生成的时间tM-1处的目标时钟TGT_CLK的值所确定的种子,第(M-1)逻辑地址LBA_M-1是与相应命令相对应的逻辑地址。另外,存储器控制器120可以基于第M种子SEED_M,随机地生成第M逻辑地址LBA_M,其中第M种子SEED_M是基于多个测试命令CMD之中的第M测试命令生成的时间tM处的目标时钟TGT_CLK的值所确定的种子,第M逻辑地址LBA_M是与相应命令相对应的逻辑地址。
图10是示出存储器系统100生成与图6的测试命令CMD之中除了第一生成测试命令之外的命令相对应的逻辑块地址值的操作的另一示例的示图。
参照图10,存储器控制器120可以基于第一种子SEED_1,随机地生成第一逻辑地址LBA_1,其中第一种子SEED_1是基于多个测试命令CMD之中的第一生成测试命令生成的时间t1处的目标时钟TGT_CLK的值所确定的种子,第一逻辑地址LBA_1是与相应命令相对应的逻辑地址。
此后,存储器控制器120可以基于第二种子SEED_2,随机地生成第二逻辑地址LBA_2,其中第二种子SEED_2是基于多个测试命令CMD之中的第一生成测试命令生成的时间t1处的看门狗定时器的值所确定的种子,第二逻辑地址LBA_2是与多个测试命令CMD之中的第二生成测试命令相对应的逻辑地址。
看门狗定时器可以在每个特定时间间隔(例如,10秒)或针对每个特定时间间隔(例如,10秒)进行初始化,并且看门狗定时器的值可以从初始化时间开始随时间而减小,直到它再次被初始化。因此,存储器控制器120可以在时间t1处基于从看门狗定时器被初始化的时间开始已经减小的值(例如,887654321ns)来确定第二种子SEED_2,并且可以基于第二种子SEED_2生成第二逻辑块地址LBA_2。
以类似的方式,存储器控制器120可以基于第(M-1)种子SEED_M-1,随机地生成第(M-1)逻辑地址LBA_M-1,其中第(M-1)种子SEED_M-1是基于多个测试命令CMD之中的第(M-2)命令生成的时间tM-2处的看门狗定时器的值所确定的种子,第(M-1)逻辑地址LBA_M-1是与多个测试命令CMD之中的第(M-1)测试命令相对应的逻辑地址。另外,存储器控制器120可以基于第M种子SEED_M,随机地生成第M逻辑地址LBA_M,其中第M种子SEED_M是基于多个测试命令CMD之中的第(M-1)命令生成的时间tM-1处的看门狗定时器的值所确定的种子,第M逻辑地址LBA_M是与多个测试命令CMD之中的第M测试命令相对应的逻辑地址。
因此,通常,存储器控制器120可以基于多个测试命令CMD之中的第(N-1)测试命令(紧接在相应命令之前生成的命令)生成的时间处的看门狗定时器的值,确定与多个测试命令CMD之中第N(其中N是2或更大的自然数)生成的命令相对应的逻辑块地址值。
因此,已经描述了存储器系统100随机地生成与多个测试命令CMD中的每一个相对应的逻辑块地址的方法。
在下文中,将描述存储器系统100确定处理多个测试命令CMD的优先级的操作。
在一些情况下,存储器系统100的存储器控制器120可以根据测试命令的生成顺序来处理多个测试命令CMD。然而,在其它情况下,存储器系统100的存储器控制器120可以基于与目标固件TGT_FW相对应或相关联的优先级策略来处理多个测试命令。
例如,可以将与目标固件TGT_FW相对应的优先级策略存储在目标固件TGT_FW中。当测试目标固件TGT_FW时,存储器控制器120可以基于目标固件TGT_FW的指定区域中存储的信息来检查与目标固件TGT_FW相对应的优先级策略。
可选地,存储器控制器120可以基于目标固件TGT_FW的唯一信息(例如,版本信息)来检查与目标固件TGT_FW相对应的优先级策略。例如,存储器控制器120可以根据目标固件TGT_FW的版本是否等于或大于特定值来确定应用不同的优先级策略。
存储器控制器120可以根据与目标固件TGT_FW相对应的优先级策略来确定处理多个测试命令CMD的优先级。在这种情况下,即使具有高优先级的测试命令的生成时间晚于其它测试命令,也可以首先处理具有高优先级的测试命令。
在这种情况下,当测试目标固件TGT_FW时,存储器控制器不仅可以考虑多个测试命令CMD中的每一个是否正常运行,而且可以考虑是否根据优先级策略处理多个测试命令CMD。例如,当具有低优先级的测试命令在具有高优先级的测试命令之前处理时,即使每个测试命令正常运行,存储器控制器120也可以确定对目标固件TGT_FW的测试已经失败。
图11是示出根据本公开的实施例的存储器系统100确定处理多个测试命令CMD的优先级的操作的示例的示图。
参照图11,存储器系统100的存储器控制器120可以在多个测试命令CMD之中,以高于写入命令的优先级来处理读取命令,并且可以以高于擦除命令的优先级来处理写入命令。
也就是说,存储器控制器120可以首先处理多个测试命令CMD之中的读取命令,然后处理写入命令,最后处理擦除命令。
在这种情况下,存储器控制器120可以随机地确定多个测试命令CMD中的每一个将是读取命令/写入命令/擦除命令中的至少一个。
例如,存储器控制器120可以为多个测试命令CMD中的每一个生成随机值,然后可以基于对该值执行取模运算的结果来确定相应的命令将是读取命令/写入命令/擦除命令中的一个。
例如,存储器控制器120可以为多个测试命令CMD中的每一个生成随机值,然后运行取模运算,该取模运算通过将值除以3来计算余数。如果运算的结果为0,则存储器控制器120可以将相应的测试命令确定为读取命令,如果运算的结果为1,则存储器控制器120可以将相应的测试命令确定为写入命令,并且如果运算的结果为2,则存储器控制器120可以将相应的测试命令确定为擦除命令。
图12是示出根据本公开的实施例的存储器系统100将多个测试命令CMD输入到命令队列CMD_Q的操作的示图。
参照图12,存储器系统100的存储器控制器120可以将多个测试命令CMD排队到命令队列CMD_Q,将测试命令从命令队列CMD_Q中出队以执行出队的测试命令,并且通过处理出队的测试命令来测试目标固件TGT_FW。当在命令队列CMD_Q中排队的测试命令之中的通过测试命令的数量大于或等于设定的阈值数量或值时,存储器控制器120可以确定对目标固件TGT_FW的测试已经成功。
在这种情况下,存储器控制器120可以随机地设置多个测试命令CMD排队到命令队列CMD_Q的顺序,从而可以在尽可能类似于实际用户环境的环境中测试目标固件TGT_FW。
另一方面,在不同于图12的其它情况下,存储器控制器120可以生成特定数量(例如,10000)的测试命令,而不是使用队列,并且可以通过检查所生成的测试命令的处理顺序以及每个测试命令的处理结果(成功/失败)来执行对目标固件TGT_FW的测试。
图13是示出根据本公开的实施例的操作存储器系统100的方法的示图。
参照图13,存储器系统100的操作方法可以包括步骤S1310:当将用于控制存储器装置110的固件设置为目标固件TGT_FW时,生成多个测试命令CMD以测试目标固件TGT_FW。
另外,存储器系统100的操作方法可以包括步骤S1320:通过处理在步骤S1310中生成的多个测试命令CMD来测试目标固件TGT_FW。
在这种情况下,可以基于与多个测试命令CMD中的每一个相对应的种子值,随机地生成与多个测试命令中的每一个相对应的逻辑块地址的值。
在多个测试命令CMD之中,可以基于目标时钟TGT_CLK随机地生成与第一生成测试命令相对应的逻辑块地址值。在这种情况下,目标时钟TGT_CLK可以是例如系统时钟,或者用于与存储器装置的数据传输/接收过程中的同步的时钟。
在多个测试命令CMD之中,可以如下确定与除第一生成测试命令之外的其余测试命令相对应的逻辑块地址值。
作为示例,可以基于目标时钟随机地生成与多个测试命令CMD之中第N(其中N是2或更大的自然数)生成的测试命令相对应的逻辑块地址值。
作为另一示例,可以基于多个测试命令CMD之中的第(N-1)测试命令生成的时间处的看门狗定时器的值,生成与多个测试命令CMD之中第N(其中N是2或更大的自然数)生成的测试命令相对应的逻辑块地址值。
可以根据与目标固件相对应的优先级策略来确定处理多个测试命令CMD的优先级。
同时,在步骤S1320中,当在将多个测试命令CMD排队到命令队列CMD_Q之后测试目标固件TGT_FW时,可以通过处理排队在CMD_Q中的多个测试命令来测试目标固件TGT_FW。
进一步地,本文所述的存储器控制器120的操作可以由控制电路123控制,并且处理器124可以运行或驱动固件,该固件中编程了存储器控制器120的所有操作。
图14是示出根据本公开的实施例的计算系统1400的配置的示图。
参照图14,根据本公开的实施例的计算系统1400可以包括:存储器系统100,电连接到系统总线1460;CPU 1410,被配置为控制计算系统1400的全部操作;RAM 1420,被配置为存储与计算系统1400的操作有关的数据和信息;用户接口/用户体验(UI/UX)模块1430,被配置为向用户提供用户环境;通信模块1440,被配置为以有线和/或无线类型与外部装置通信;以及电源管理模块1450,被配置为管理计算系统1400使用的电力。
计算系统1400可以是个人计算机(PC),或者可以包括诸如智能电话、平板电脑或各种电子装置的移动终端。
计算系统1400可以进一步包括用于供应操作电压的电池,并且可以进一步包括应用芯片组、图形相关模块、相机图像处理器和DRAM。其它元件对于本领域技术人员而言将是显而易见的。
存储器系统100不仅可以包括被配置为将数据存储在磁盘中的、诸如硬盘驱动器(HDD))的装置,还可以包括被配置为将数据存储在非易失性存储器中的诸如固态驱动器(SSD)、通用闪存装置或嵌入式MMC(eMMC)装置的装置。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。另外,存储器系统100可以被实施为各种类型的存储装置并安装在各种电子装置内部。
根据本文所述的本公开的实施例,可以最小化或减少存储器系统的操作延迟时间。另外,根据本公开的实施例,可以最小化或减少在调用特定功能的过程中产生的开销。尽管已经出于说明的目的描述了本公开的各个实施例,但是本领域技术人员将理解的是,在不脱离如所附权利要求书中公开的本公开的范围和精神的情况下,可以进行各种修改、添加和替换。因此,为了简洁和清楚起见,已经描述了本公开的实施例。本公开的范围应以所附权利要求书为基础进行解释,使得与权利要求书等同的范围内包括的所有技术思想都属于本公开。
Claims (16)
1.一种存储器系统,包括:
存储器装置;以及
存储器控制器,与所述存储器装置通信并且运行固件以控制所述存储器装置,
其中所述存储器控制器:
当所述固件被设置为目标固件时,生成多个测试命令以测试所述目标固件,
通过处理所述多个测试命令来测试所述目标固件,并且
基于与所述多个测试命令中的每个测试命令相对应的种子值,随机地生成与所述多个测试命令中的每个测试命令相对应的逻辑块地址值。
2.根据权利要求1所述的存储器系统,其中所述存储器控制器基于目标时钟,随机地生成与所述多个测试命令之中的第一生成测试命令相对应的逻辑块地址值。
3.根据权利要求2所述的存储器系统,其中所述目标时钟是系统时钟或者是用于与所述存储器装置的数据传输/接收过程中的同步的时钟。
4.根据权利要求2所述的存储器系统,其中所述存储器控制器基于所述目标时钟,随机地生成与所述多个测试命令之中作为第N测试命令生成的测试命令相对应的逻辑块地址值,其中N是2或更大的自然数。
5.根据权利要求2所述的存储器系统,其中所述存储器控制器基于所述多个测试命令之中的第(N-1)测试命令生成的时间处的看门狗定时器的值,随机地生成与所述多个测试命令之中作为第N测试命令生成的测试命令相对应的逻辑块地址值,其中N是2或更大的自然数。
6.根据权利要求1所述的存储器系统,其中所述存储器控制器基于与所述目标固件相对应的优先级策略来确定处理所述多个测试命令的优先级。
7.根据权利要求6所述的存储器系统,其中所述存储器控制器在所述多个测试命令之中,以高于写入命令的优先级来处理读取命令,并且以高于擦除命令的优先级来处理所述写入命令。
8.根据权利要求1所述的存储器系统,其中所述存储器控制器:
将所述多个测试命令排队到命令队列;并且
处理排队到所述命令队列的所述多个测试命令,以测试所述目标固件。
9.一种操作存储器系统的方法,所述存储器系统包括存储器装置,所述方法包括:
当将控制所述存储器装置的固件设置为目标固件时,生成多个测试命令以测试所述目标固件;并且
通过处理所述多个测试命令来测试所述目标固件,
其中基于与所述多个测试命令中的每个测试命令相对应的种子值,随机地生成与所述多个测试命令中的每个测试命令相对应的逻辑块地址值。
10.根据权利要求9所述的方法,其中基于所述存储器装置的目标时钟,随机地生成与所述多个测试命令之中的第一生成测试命令相对应的逻辑块地址值。
11.根据权利要求10所述的方法,其中所述目标时钟是系统时钟或者是用于与所述存储器装置的数据传输/接收过程中的同步的时钟。
12.根据权利要求10所述的方法,其中基于所述目标时钟,随机地生成与所述多个测试命令之中作为第N测试命令生成的测试命令相对应的逻辑块地址值,其中N是2或更大的自然数。
13.根据权利要求10所述的方法,其中通过使用所述多个测试命令之中的第(N-1)测试命令生成的时间处的看门狗定时器的值,随机地生成与所述多个测试命令之中作为第N测试命令生成的测试命令相对应的逻辑块地址值,其中N是2或更大的自然数。
14.根据权利要求9所述的方法,其中基于与所述目标固件相对应的优先级策略来确定处理所述多个测试命令的优先级。
15.根据权利要求14所述的方法,其中在所述多个测试命令之中,读取命令的处理优先级高于写入命令的处理优先级,并且所述写入命令的处理优先级高于擦除命令的处理优先级。
16.根据权利要求9所述的方法,其中所述目标固件的测试包括:
将所述多个测试命令排队到命令队列;并且
处理排队到所述命令队列的所述多个测试命令,以测试所述目标固件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200113846A KR20220032268A (ko) | 2020-09-07 | 2020-09-07 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR10-2020-0113846 | 2020-09-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114242152A true CN114242152A (zh) | 2022-03-25 |
Family
ID=80469798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110294749.1A Withdrawn CN114242152A (zh) | 2020-09-07 | 2021-03-19 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11500563B2 (zh) |
KR (1) | KR20220032268A (zh) |
CN (1) | CN114242152A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11663338B2 (en) * | 2019-05-14 | 2023-05-30 | University Of Florida Research Foundation, Incorporated | Automated security analysis of baseband firmware |
CN116719675B (zh) * | 2023-05-06 | 2024-05-07 | 深圳市晶存科技有限公司 | 硬盘磨损测试方法、装置及介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6463552B1 (en) * | 1998-12-07 | 2002-10-08 | Lsi Logic Corporation | Scripting method and apparatus for testing devices |
US8140837B2 (en) | 2008-11-05 | 2012-03-20 | International Business Machines Corporation | Automatically making selective changes to firmware or configuration settings |
KR20130134610A (ko) * | 2012-05-31 | 2013-12-10 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그것의 테스트 방법 |
US8898654B2 (en) | 2012-08-29 | 2014-11-25 | Microsoft Corporation | Secure firmware updates |
JP6255282B2 (ja) * | 2014-02-28 | 2017-12-27 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US20170262179A1 (en) * | 2016-03-09 | 2017-09-14 | Kabushiki Kaisha Toshiba | Memory system and memory system controlling method |
US10198203B2 (en) | 2016-11-15 | 2019-02-05 | Samsung Electronics Co., Ltd. | Method of operating memory device using pseudo-random functions, memory device using the same and memory system including the device |
US9747158B1 (en) * | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US10635400B2 (en) * | 2017-12-12 | 2020-04-28 | Western Digital Technologies, Inc. | Seed generation |
US10725696B2 (en) * | 2018-04-12 | 2020-07-28 | Micron Technology, Inc. | Command selection policy with read priority |
US11741253B2 (en) * | 2019-01-31 | 2023-08-29 | Hewlett Packard Enterprise Development Lp | Operating system service sanitization of data associated with sensitive information |
US11016755B2 (en) * | 2019-07-31 | 2021-05-25 | Dell Products L.P. | System and method to secure embedded controller flashing process |
US11182312B2 (en) * | 2020-04-02 | 2021-11-23 | Micron Technology, Inc. | Memory sub-system manufacturing mode |
-
2020
- 2020-09-07 KR KR1020200113846A patent/KR20220032268A/ko unknown
-
2021
- 2021-01-18 US US17/151,551 patent/US11500563B2/en active Active
- 2021-03-19 CN CN202110294749.1A patent/CN114242152A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20220075543A1 (en) | 2022-03-10 |
US11500563B2 (en) | 2022-11-15 |
KR20220032268A (ko) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11532360B2 (en) | Memory system, memory device, and method for operating memory device | |
US20230333932A1 (en) | Memory system and operating method thereof | |
CN113204312A (zh) | 存储器系统、存储器控制器及存储器系统的操作方法 | |
US11500563B2 (en) | Memory system and operating method for testing target firmware by processing a plurality of test commands | |
US11561725B2 (en) | System and operating method thereof | |
US11409470B2 (en) | Memory system, memory controller, and method of operating memory system | |
CN114253465A (zh) | 存储器系统及其操作方法 | |
US11972127B2 (en) | Memory system executing background operation using external device and operation method thereof | |
US20210382655A1 (en) | Memory device, memory system, and operation method of memory device | |
US11372766B2 (en) | Memory system, memory controller, and method of operating memory system | |
CN115963981A (zh) | 存储器系统及存储器系统的操作方法 | |
US20220083255A1 (en) | Memory system and operating method thereof | |
CN115206393A (zh) | 存储器装置及存储器装置的操作方法 | |
CN112925476A (zh) | 存储器系统、存储器控制器及其操作方法 | |
US11500771B2 (en) | Memory system, memory controller, and method of operating memory system | |
US11507323B2 (en) | Memory device and operating method thereof | |
CN112083874B (zh) | 存储器系统、存储器控制器和操作存储器控制器的方法 | |
US11307794B2 (en) | Memory system, memory controller, and operation method of memory system | |
US20230376211A1 (en) | Controller for controlling one-time programmable memory, system, and operation method thereof | |
US11544003B2 (en) | Memory system, memory controller, and method of operating memory system | |
US20230376246A1 (en) | Memory system, memory controller and operating method of the memory system operating as read boost mode | |
US11636007B2 (en) | Memory system and operating method thereof for flushing data in data cache with parity | |
US20220223217A1 (en) | Memory system and operating method thereof | |
US20220300187A1 (en) | Memory system and operating method thereof | |
US20210373797A1 (en) | Memory system, memory controller, and operation method of memory system |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220325 |