CN115910181A - 基于预处理条件生成测试多核ssd固件的系统和方法 - Google Patents

基于预处理条件生成测试多核ssd固件的系统和方法 Download PDF

Info

Publication number
CN115910181A
CN115910181A CN202210194355.3A CN202210194355A CN115910181A CN 115910181 A CN115910181 A CN 115910181A CN 202210194355 A CN202210194355 A CN 202210194355A CN 115910181 A CN115910181 A CN 115910181A
Authority
CN
China
Prior art keywords
test
ftl
processing conditions
memory
cores
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.)
Pending
Application number
CN202210194355.3A
Other languages
English (en)
Inventor
亚霍尔·扎特沙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN115910181A publication Critical patent/CN115910181A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/46Test trigger logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开的实施例提供了一种用于测试存储器系统中的多核固件(FW)的系统及其方法。一种测试系统包括:测试装置;以及存储装置,包括多个闪存转换层(FTL)内核,每个FTL内核与多个存储块相关联。测试装置生成多个FTL内核的多个测试预处理条件,并将多个测试预处理条件提供给多个FTL内核,多个测试预处理条件彼此不同。多个FTL内核中的每一个基于多个测试预处理条件中的相应测试预处理条件来执行一个或多个测试操作。

Description

基于预处理条件生成测试多核SSD固件的系统和方法
技术领域
本公开的实施例涉及一种测试系统。
背景技术
计算机环境范例已经转变成可以随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置(即,数据存储装置)的存储器系统。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
因为存储器装置不具有移动部件,所以使用存储器装置的存储器系统提供优良的稳定性、耐久性、高信息访问速度和低功耗。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器装置、诸如通用闪存(UFS)的具有各种接口的存储卡以及固态驱动器(SSD)。可以使用各种测试工具来测试存储器系统。
发明内容
本发明的方面包括一种用于测试存储器系统中的多核固件(FW)的系统及其方法。
在本发明的一个方面,一种测试系统包括:测试装置;以及存储装置,包括多个闪存转换层(FTL)内核,每个FTL内核与多个存储块相关联。测试装置被配置成:生成用于多个FTL内核的多个测试预处理条件(precondition),并将多个测试预处理条件提供给多个FTL内核,多个测试预处理条件彼此不同。多个FTL内核中的每一个基于多个测试预处理条件中的相应测试预处理条件来执行一个或多个测试操作。
在本发明的另一方面,一种用于测试包括多个闪存转换层(FTL)内核的存储装置的方法,每个FTL内核与多个存储块相关联,该方法包括:通过测试装置来生成用于多个FTL内核的多个测试预处理条件;通过测试装置来将多个测试预处理条件提供给多个FTL内核,多个测试预处理条件彼此不同;以及通过多个FTL内核中的每一个,基于多个测试预处理条件中的相应测试预处理条件来执行一个或多个测试操作。
通过下面的描述,本发明的附加方面将变得明显。
附图说明
图1是示出根据本发明的实施例的数据处理系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器装置的存储块的电路图。
图4是示出根据本发明的实施例的存储器装置的不同类型的单元的状态分布的示图。
图5是示出根据本发明的实施例的数据处理系统的示图。
图6是示出根据本发明的实施例的测试系统的示图。
图7A和图7B是示出根据传统预处理(preconditioning)方案的操作的示图。
图8是示出根据本发明的实施例的多核存储装置的测试操作的示图。
图9和图10是示出根据本发明的实施例的测试系统的不同预处理条件生成操作的示图。
图11是示出根据本发明的实施例的多核存储装置的示图。
具体实施方式
下面参照附图更详细地描述本发明的各个实施例。然而,本发明可以以不同的形式实现,并且因此不应当被解释为限于本文阐述的实施例。相反,提供这些实施例以使本公开彻底和完整,并且将本发明的范围充分传达给本领域技术人员。此外,本文中对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这种短语的不同引用不一定针对相同的实施例。本文使用的术语“实施例”不一定指所有实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中指代相同的部件。
本发明可以以包括诸如以下的许多种方式来实施:进程;设备;系统;在计算机可读存储介质上实现的计算机程序产品;和/或处理器,诸如适用于运行存储在联接到处理器的存储器上的指令和/或由联接到处理器的存储器提供的指令的处理器。在本说明书中,这些实施方案或本发明可以采用的任意其它形式可以被称为技术。通常,可以在本发明的范围内改变所公开的过程的操作顺序。除非另有说明,否则被描述为适用于执行任务的、诸如处理器或存储器的组件可以被实施为临时被配置成在给定时间执行该任务的通用组件或被制造为执行该任务的特定组件。如本文所使用的,术语“处理器”等是指适用于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
本文描述的方法、过程和/或操作可以由待由计算机、处理器、控制器或其它信号处理装置运行的代码或指令来执行。计算机、处理器、控制器或其它信号处理装置可以是本文描述的那些或者除了本文描述的元件之外的那些。因为详细描述了形成该方法(或计算机、处理器、控制器或其它信号处理装置的操作)的基础的算法,所以用于实施方法实施例的操作的代码或指令可以将计算机、处理器、控制器或其它信号处理装置转变为用于执行本文的方法的专用处理器。
当至少部分地以软件实施时,控制器、处理器、装置、模块、单元、多工器、生成器、逻辑、接口、解码器、驱动器、发生器和其它信号生成和信号处理功能可以包括例如用于存储待由例如计算机、处理器、微处理器、控制器或其它信号处理装置运行的代码或指令的存储器或其它存储装置。
下面提供对本发明的实施例的详细描述以及示出本发明的方面的附图。结合这些实施例来描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定。本发明涵盖在权利要求书的范围内的许多替代方案、修改方案和等效方案。在下面的描述中阐述了许多具体细节,以便提供对本发明的详尽理解。提供这些细节是为了示例的目的;可以在没有一些或全部这些具体细节的情况下根据权利要求书来实践本发明。为了清楚起见,没有详细描述与本发明相关的技术领域中已知的技术材料,以免不必要地模糊本发明。
图1是示出根据本发明的实施例的数据处理系统2的框图。
参照图1,数据处理系统2可以包括主机装置5和存储器系统10。存储器系统10可以从主机装置5接收请求,并且响应于接收到的请求而操作。例如,存储器系统10可以存储待由主机装置5访问的数据。
主机装置5可以利用各种类型的电子装置中的任意一种来实施。在各个实施例中,主机装置5可以包括诸如以下的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在各个实施例中,主机装置5可以包括诸如以下的便携式电子装置:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
存储器系统10可以利用诸如固态驱动器(SSD)和存储卡的各种类型的存储装置中的任意一种来实施。在各个实施例中,存储器系统10可以被设置为诸如以下的电子装置中的各种组件中的一种:计算机、超移动个人计算机(PC)(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和发送信息的装置、射频识别(RFID)装置,以及家庭网络的各种电子装置中的一种、计算机网络的各种电子装置中的一种、远程信息处理网络的电子装置中的一种或计算系统的各种组件中的一种。
存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器控制器100可以控制半导体存储器装置200的全部操作。
半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可以通过电源线接收电力PWR,并且通过控制线接收控制信号CTRL。根据存储器系统10的设计和配置,控制信号CTRL可以包括命令锁存使能信号、地址锁存使能信号、芯片使能信号、写入使能信号、读取使能信号以及其它操作信号。
存储器控制器100和半导体存储器装置200可以被集成在诸如固态驱动器(SSD)的单个半导体装置中。SSD可以包括用于将数据存储在其中的存储装置。当半导体存储器系统10用于SSD中时,联接到存储器系统10的主机装置(例如,图1的主机装置5)的操作速度可以显著提高。
存储器控制器100和半导体存储器装置200可以被集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以被集成以配置个人计算机存储卡国际协会(PCMCIA)的个人计算机(PC)卡、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、尺寸减小的多媒体卡(RS-MMC)、微型尺寸版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、高容量安全数字(SDHC)和/或通用闪存(UFS)。
图2是示出根据本发明的实施例的存储器系统的框图。例如,图2的存储器系统可以描绘图1所示的存储器系统10。
参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置(例如,图1的主机装置5)的请求而操作,并且特别地,存储待由主机装置访问的数据。
存储器装置200可以存储待由主机装置访问的数据。
存储器装置200可以利用诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置或者诸如只读存储器(ROM)、掩膜ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和/或电阻式RAM(RRAM)的非易失性存储器装置来实施。
控制器100可以控制数据在存储器装置200中的存储。例如,控制器100可以响应于来自主机装置的请求而控制存储器装置200。控制器100可以将从存储器装置200读取的数据提供到主机装置,并且可以将从主机装置提供的数据存储到存储器装置200中。
控制器100可以包括通过总线160联接的存储装置110、控制组件120、错误校正码(ECC)组件130、主机接口(I/F)140和存储器接口(I/F)150,控制组件120可以被实施为诸如中央处理单元(CPU)的处理器。
存储装置110可以用作存储器系统10和控制器100的工作存储器,并且可以存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可以存储由控制器100和存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。
存储装置110可以利用诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器来实施。如上所述,存储装置110可以将主机装置所使用的数据存储在存储器装置200中以用于读取操作和写入操作。为了存储数据,存储装置110可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制组件120可以控制存储器系统10的一般操作,并且响应于来自主机装置的写入请求或读取请求而控制对存储器装置200的写入操作或读取操作。控制组件120可以驱动被称为闪存转换层(FTL)的固件,以控制存储器系统10的一般操作。例如,FTL可以执行诸如逻辑到物理(L2P)映射、损耗均衡、垃圾收集和/或坏块处理的操作。L2P映射被称为逻辑块寻址(LBA)。
在读取操作期间,ECC组件130可以检测并校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件130可能不会校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
在各个实施例中,ECC组件130可以基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。然而,错误校正不限于这些技术。因此,ECC组件130可以包括适用于错误校正操作的任意和所有电路、系统或装置。
主机接口140可以通过诸如以下的各种通信标准或接口中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
存储器接口150可以提供控制器100和存储器装置200之间的接口,以允许控制器100响应于来自主机装置的请求而控制存储器装置200。存储器接口150可以在控制组件120的控制下生成用于存储器装置200的控制信号并且处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在控制组件120的控制下生成用于存储器的控制信号并且处理数据。
存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可以具有页面缓冲器的阵列的形式的页面缓冲器250、列解码器260以及输入和输出(输入/输出)电路270。存储器单元阵列210可以包括可以存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器阵列250、列解码器260以及输入/输出电路270可以形成用于存储器单元阵列210的外围电路。外围电路可以对存储器单元阵列210执行编程操作、读取操作或擦除操作。控制电路220可以控制外围电路。
电压生成电路230可以生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成的各种电平的操作电压,诸如擦除电压和通过电压。
行解码器240可以与电压生成电路230和多个存储块211电通信。行解码器240可以响应于由控制电路220生成的行地址而在多个存储块211之中选择至少一个存储块,并且将从电压生成电路230供应的操作电压传输到所选择的存储块。
页面缓冲器250可以通过位线BL(图3中所示)与存储器单元阵列210联接。页面缓冲器250可以响应于由控制电路220生成的页面缓冲器控制信号,利用正电压对位线BL进行预充电,在编程操作和读取操作中将数据传输到所选择的存储块以及从所选择的存储块接收数据,或临时存储所传输的数据。
列解码器260可以将数据传输到页面缓冲器250以及从页面缓冲器250接收数据,或将数据传输到输入/输出电路270以及从输入/输出电路270接收数据。
输入/输出电路270可以将从外部装置(例如,图1的存储器控制器100)接收的命令和地址传输到控制电路220,将来自外部装置的数据传输到列解码器260,或者通过输入/输出电路270将来自列解码器260的数据输出到外部装置。
控制电路220可以响应于命令和地址而控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2所示的存储器单元阵列210的存储块211中的任意一个。
参照图3,存储块211可以包括联接到行解码器240的多条字线WL0至WLn-1、漏极选择线DSL和源极选择线SSL。这些线可以与DSL和SSL之间的多条字线并联布置。
存储块211可以进一步包括分别联接到位线BL0至BLm-1的多个单元串221。每列的单元串可以包括一个或多个漏极选择晶体管DST以及一个或多个源极选择晶体管SST。在所示的实施例中,每个单元串具有一个DST和一个SST。在单元串中,多个存储器单元或存储器单元晶体管MC0至MCn-1可以串联地联接在选择晶体管DST和SST之间。存储器单元中的每一个可以形成为多层单元。例如,存储器单元中的每一个可以形成为存储1位数据的单层单元(SLC)。存储器单元中的每一个可以形成为存储2位数据的多层单元(MLC)。存储器单元中的每一个可以形成为存储3位数据的三层单元(TLC)。存储器单元中的每一个可以形成为存储4位数据的四层单元(QLC)。
每个单元串中的SST的源极可以联接到公共源极线CSL,并且每个DST的漏极可以联接到相应的位线。单元串中的SST的栅极可以联接到SSL,并且单元串中的DST的栅极可以联接到DSL。跨单元串的存储器单元的栅极可以联接到相应的字线。也就是说,存储器单元MC0的栅极联接到相应的字线WL0,存储器单元MC1的栅极联接到相应的字线WL1,等等。联接到特定字线的存储器单元的组可以被称为物理页面。因此,存储块211中的物理页面的数量可以对应于字线的数量。
页面缓冲器阵列250可以包括联接到位线BL0至BLm-1的多个页面缓冲器251。页面缓冲器251可以响应于页面缓冲器控制信号而操作。例如,在读取操作或验证操作期间,页面缓冲器251可以临时存储通过位线BL0至BLm-1接收的数据或感测位线的电压或电流。
在一些实施例中,存储块211可以包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括NOR型闪速存储器单元。存储器单元阵列210可以被实施为组合有两种或更多种类型的存储器单元的混合闪速存储器,或者控制器嵌入在存储器芯片内部的one-NAND闪速存储器。
图4是示出根据本发明的实施例的存储器装置的不同类型单元的状态分布或编程电压(PV)电平分布的示图。
参照图4,存储器单元中的每个可以利用特定类型的单元来实施,例如,存储1位数据的单层单元(SLC)、存储2位数据的多层单元(MLC)、存储3位数据的三层单元(TLC)或存储4位数据的四层单元(QLC)。通常,特定存储器装置中的所有存储器单元都具有相同类型,但这不是必需的。
SLC可以包括两种状态P0和P1。P0可以表示擦除状态,P1可以表示编程状态。因为SLC可以设置为两种不同状态中的一种,所以每个SLC可以根据设定的编码方法来编程或存储1个位。MLC可以包括四种状态P0、P1、P2和P3。在这些状态之中,P0可以表示擦除状态,P1至P3可以表示编程状态。因为MLC可以设置为四种不同状态中的一种,所以每个MLC可以根据设定的编码方法来编程或存储两个位。TLC可以包括八种状态P0至P7。在这些状态之中,P0可以表示擦除状态,P1至P7可以表示编程状态。因为TLC可以设置为八种不同状态中的一种,所以每个TLC可以根据设定的编码方法来编程或存储三个位。QLC可以包括16种状态P0至P15。在这些状态之中,P0可以表示擦除状态,P1至P15可以表示编程状态。因为QLC可以设置为十六种不同状态中的一种,所以每个QLC可以根据设定的编码方法来编程或存储四个位。
返回参照图2和图3,存储器装置200可以包括多个存储器单元(例如,NAND闪速存储器单元)。存储器单元按如图3所示的行和列的阵列布置。每行中的单元连接到字线(例如,WL0),而每列中的单元联接到位线(例如,BL0)。这些字线和位线用于读取操作和写入操作。在写入操作期间,当字线被生效(asserted)时,将待写入的数据(“1”或“0”)在位线处提供。在读取操作期间,字线再次被生效,然后可以从位线获取每个单元的阈值电压。多个页面可以共享属于(即,联接到)相同字线的存储器单元。当存储器单元利用MLC来实施时,多个页面包括最高有效位(MSB)页面和最低有效位(LSB)页面。当存储器单元利用TLC来实施时,多个页面包括MSB页面、中间有效位(CSB)页面和LSB页面。当存储器单元利用QLC来实施时,多个页面包括MSB页面、中间最高有效位(CMSB)页面、中间最低有效位(CLSB)页面和LSB页面。可以使用编码方案(例如,格雷编码)来对存储器单元进行编程,以便增大诸如SSD的存储器系统10的容量。
图5是示出根据本发明的实施例的数据处理系统2的示图。
参照图5,数据处理系统2可以包括主机5和存储器系统(即,存储装置)10。存储装置10可以包括控制器100和存储器装置200。存储器装置200可以包括多个存储器单元(例如,NAND闪速存储器单元)。存储器单元按如图3所示的行和列的阵列布置。特定行中的单元连接到字线(例如,WL0),而特定列中的单元联接到位线(例如,BL0)。这些字线和位线用于读取操作和写入操作。在写入操作期间,当字线被生效(asserted)时,将待写入的数据(“1”或“0”)在位线处提供。在读取操作期间,字线再次被生效,然后可以从位线获取每个单元的阈值电压。多个页面可以共享属于(即,联接到)相同字线的存储器单元。
控制器100可以包括固件(FW),该固件是用于控制存储器装置200的各个操作(例如,读取、写入和擦除操作)的特定类别的软件。在一些实施例中,在图2中,固件可以驻留在存储装置110中并且可以由控制组件120运行。
固件可以包括:主机接口层(HIL),控制与主机5的通信;闪存转换层(FTL),控制主机5和存储器装置200之间的通信;以及闪存接口层(FIL),控制与存储器装置200的通信。FTL是固件中最复杂的部件。
可以通过各种测试方法(例如,黑盒、白盒和单元测试)来测试诸如固态驱动器(SSD)的存储装置10的固件。利用黑盒和白盒测试来测试SSD(例如,固件)包括向SSD发送一些命令并检查预期结果。用于测试的SSD可以是真实SSD或SSD模拟器。进一步地,SSD应进行预处理以进行测试。为测试进行预处理意指将SSD(例如,NAND闪速存储器、存储装置(例如,RAM)或固件)转换为某些特定的预定义状态。测试将基于这种初始测试条件(即,测试预处理条件)来运行。此处,FTL的测试是一项困难而重要的任务。因此,实施例提供了一种用于有效地测试多核存储装置的固件的测试方案。特别地,一些实施例提供了一种用于基于各个预处理条件生成来测试多核SSD的FTL的测试系统及其方法。
图6是示出根据本发明的实施例的测试系统600的示图。
参照图6,测试系统600可以包括测试装置610和存储装置620。在一些实施例中,测试装置610可以是真实主机装置(例如,图5的主机5)或联接到存储装置620的虚拟主机装置(即,主机模拟器)。可选地,测试装置610可以被包括在存储装置620内。
存储装置620可以包括控制器100和存储器装置200。在一些实施例中,存储装置620可以是多核固态驱动器(SSD)。对于多核SSD,控制器100可以包括多个中央处理单元(CPU)内核,例如k个内核660-0至660-(k-1),并且存储器装置200可以包括具有多个存储块(BLK)的NAND闪速存储器。多个内核660-0至660-(k-1)可以分别包括闪存转换层FTL0至FTL(k-1)。
随着现代SSD容量的快速增长,因为其需要大量时间,所以不可能以“真实”方式,例如通过发送输入和输出(IO)命令来创建测试预处理条件。相反,可以使用预处理条件生成技术来进行对真实硬件(HW)平台和仿真平台几乎是即时的预处理。
多个CPU内核正在做相同或相似的事情,例如运行多个闪存转换层(FTL)实例。从测试的角度来看,因为相同测试可能仅对那些多个内核并行重复,所以这种双重工作是无用的。FTL实例可以在不同的物理CPU内核上运行,或可以共享同一CPU内核。
由于大多数其它FW组件(HIL、FIL)都通过单元测试和黑盒测试进行有效测试,因此测试系统600可以专注于FTL验证。每个FTL可能由具有大量互连的许多子组件组成,这使其验证成为一项困难的任务。测试系统600可以在考虑以下时基于各个预处理条件生成来测试多核SSD的FTL:
FTL可以通过诸如黑盒、白盒和单元测试的各种测试来进行测试。黑盒和白盒测试运行真实装置或虚拟装置(模拟器)中的全部FTL代码。
测试预处理条件可以是存储装置的一些特定状态。
测试可以使用也可以不使用预处理条件。然而,通常,FTL中的长期进程(例如,垃圾收集(GC)、损耗均衡(WL))可能更便于验证存储装置是否已经处于这种状态或离这种状态不远。否则,测试将执行相同的常规步骤来实现目标进程。
图7A和图7B是示出根据已提出的传统预处理方案的操作的示图。
参照图7A和图7B,对所有FTL生成相同的预处理条件,并因此基于所有FTL的相同状态对所有FTL执行相同的测试。在图7B的所示示例中,与所有FTL内核Core0至Core3相关联的NAND存储块可以处于相同的损耗均衡(WL)状态(即,设定的介质擦除计数器(EC)值)。在这种情况下,到达不同FTL的命令序列(例如,主机流量)可能与图7A中所示的相同。因此,因为使用相同的预处理条件并且提供给不同FTL的命令序列(例如,主机流量)相同,所以在所有FTL上运行的测试相同。即使提供给不同FTL的命令序列可能略有不同,但因为使用相同的预处理条件,所以在所有FTL上运行的测试几乎相同。也就是说,可以对不同的FTL(或内核)执行相同测试。
因此,当使用已提出的传统预处理方案时,所有的FTL都获得相同的初始预处理条件。如图7B所示,所有FTL可以在几乎相同的时间内具有相似强度的WL。因此,长时间存在WL的实例或者不存在WL的实例可能不被测试涵盖。
为了涵盖各种测试实例,图6中的测试系统600提供了基于各种预处理条件生成的、对存储装置620(例如,多核SSD)的测试FTL。测试系统600可以为不同FTL提供不同测试。
图8是示出根据本发明的实施例的FTL的测试操作的示图。
参照图8,可以对不同FTL执行不同测试。在图8所示示例中,可以在FTL0上运行测试Test0,可以在FTL1上运行测试Test1,可以在FTL2上运行测试Test2并且可以在FTL3上运行测试Test3。对于该测试方案,可以为不同的FTL生成不同的预处理条件。
该测试方案可以允许将所需的真实SSD或模拟实例的数量减少N倍以达到相同的结果,其中N为内核的数量。如果资源量保持不变,那么在同一时间内可能运行超过N倍的测试。事实上,如果在测试用例在FTL内核上不重复的情况下执行过多测试并生成不同的预处理条件,则总测试时间可能减少。
该测试方案可能对有效的A/B测试(也被称为水桶(bucket)测试或分离(split-run)测试)实施方案有用。不是进行2次测试运行以检查选项A和B,将实验A和B扩展到不同的FTL实例以仅进行1次测试运行就足够了。
对于图8的测试方案,实施例可以提供如图9和图10所示的两种预处理条件生成方式。
图9是示出根据本发明的实施例的用于不同内核的具有不同参数的相同类型的预处理条件的示图。
参照图9,可以生成相同类型但具有不同参数的预处理条件,诸如损耗均衡(WL)、读取干扰(RD)等。
在图9所示示例中,可以生成相同类型但具有不同参数(即,与WL相关联的擦除计数器值)的预处理条件。与FTL内核Core0相关联的NAND存储块可以获得(具有)相同的WL状态,即,初始擦除计数器(EC)值“1”。
与FTL内核Core1相关联的一半NAND存储块(即,4个上部NAND存储块)可以获得相同的WL状态,即,初始EC值“1”。与FTL内核Core1相关联的另一半NAND存储块(即,4个下部NAND存储块)可以获得相同的低WL状态,即,EC值“50”。
与FTL内核Core2相关联的四分之一NAND存储块(即,2个上部NAND存储块)可以获得相同的WL状态,即,初始EC值“1”。与FTL内核Core2相关联的四分之三NAND存储块(即,6个下部NAND存储块)可以获得相同的中等WL状态,即,EC值“100”。
与FTL内核Core3相关联的一半NAND存储块(即,4个NAND存储块)可以获得相同的WL状态,即,初始EC值“1”。与FTL内核Core3相关联的另一半NAND存储块(即,4个NAND存储块)可以获得相同的高WL状态,即,EC值“1000”。
在实施例中,当EC值大于设定的EC阈值80时,WL可以开始。在该实施例中,在FTL内核Core0和Core1上WL可以不发生,在FTL内核Core2上WL可以在较短时间内开始,并且在FTL内核Core3上WL可以在较长时间内保持运行。
图10是示出根据本发明的实施例的不同内核的不同类型预处理条件的示图。
参照图10,可以为不同内核生成不同类型的预处理条件,诸如损耗均衡(WL)、读取干扰(RD)等。在图10所示示例中,可以生成不同类型的预处理条件(即,与WL相关联的擦除计数器(EC)值和与RD相关联的读取计数器(RC)值)。与FTL内核Core0相关联的NAND存储块可以获得低EC和低RC状态,即,EC值“1”和RC值“0”。
与FTL内核Core1相关联的一半NAND存储块(即,4个上部NAND存储块)可以获得低EC和低RC状态,即,EC值“1”和RC值“0”。与FTL内核Core1相关联的另一半NAND存储块(即,4个下部NAND存储块)可以获得中等EC和低RC状态,即,EC值“50”和RC值“0”。
与FTL内核Core2相关联的一些NAND存储块(即,3个NAND存储块)可以获得低EC和低RC状态,即,EC值“1”和RC值“0”。与FTL内核Core2相关联的其它NAND存储块(即,5个NAND存储块)可以获得低EC和中等RC状态,即,EC值“1”和RC值“1000000”。
与FTL内核Core3相关联的两个NAND存储块可以获得低EC和低RC状态,即,EC值“1”和RC值“0”。与FTL内核Core3相关联的一个NAND存储块可以获得高EC和低RC状态,即,EC值“1000”和RC值“0”。与FTL内核Core3相关联的三个NAND存储块可以获得低EC和高RC状态,即,EC值“1”和RC值“5000000”。与FTL内核Core3相关联的两个NAND存储块可以获得高EC和高RC状态,即,EC值“1000”和RC值“5000000”。
在实施例中,WL可以在EC值大于设定的EC阈值80时开始,并且RD可以在RC值大于设定的RC阈值500000时开始。在该实施例中,在FTL内核Core0和Core1上可以不发生WL和RD,在FTL内核Core2上可以发生RD,并且在FTL内核Core3上可以发生WL和RD。
尽管未示出和描述,但是可以以任何方式来组合不同类型的预处理条件。在实施例中,一个内核可以缺少备用块(这将触发GC)开始,另一内核可能具有擦除计数器的不平衡(这将导致WL),另一内核可能受到高读取计数器的影响(这将导致读取刷新或RD)。
如上所述,图6中的测试系统600可以基于如图9至图10所示的各个预处理条件生成方式来测试存储装置620(例如,多核SSD)的FTL。通过两种预处理条件生成方式,如图8所示,测试系统600可以为不同FTL提供不同测试。
图11是示出根据本发明的实施例的多核存储装置620的示图。
参照图11,可以通过各种预处理条件生成方式来测试多核存储装置(例如,SSD)620。也就是说,可以为多核存储装置620提供针对不同FTL的不同测试。对于该测试方案,所有FTL内核可以彼此独立,并且所有FTL内核的状态可以被共享。一个或多个公共块670A至670B可以在所有FTL内核之间共享状态。当公共块670A至670B可选时,可以禁用它们以确保对不同FTL内核上的测试独立运行。
在一些实施例中,图11的结构可以用于全局损耗均衡(GWL)以及所保留的NAND块的共享池。
如上所述,实施例提供了一种用于基于各种预处理条件生成方式来测试存储装置(例如,多核SSD)的FTL的方案。该方案可以减少SSD FW验证所需的资源量。
虽然出于清楚和理解的目的已经较为详细地示出并描述了前述实施例,但是本发明并不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的,存在许多实施本发明的替代方式。因此,所公开的实施例是说明性的,而不是限制性的。本发明旨在涵盖落入权利要求范围内的所有修改方案和可选方案。此外,可以组合实施例以形成附加的实施例。

Claims (18)

1.一种测试系统,包括:
存储装置,包括多个闪存转换层内核即多个FTL内核,每个FTL内核与多个存储块相关联;以及
测试装置,生成所述多个FTL内核的测试预处理条件,并将所述测试预处理条件提供给所述多个FTL内核,所述测试预处理条件彼此不同,
其中所述多个FTL内核中的每一个基于所述测试预处理条件中的相应测试预处理条件来执行一个或多个测试操作。
2.根据权利要求1所述的测试系统,其中所述测试预处理条件中的每一个指示所述多个存储块的状态。
3.根据权利要求2所述的测试系统,其中所述测试预处理条件为相同类型但具有不同参数值的测试预处理条件。
4.根据权利要求2所述的测试系统,其中所述测试预处理条件为不同类型的测试预处理条件。
5.根据权利要求2所述的测试系统,其中所述测试预处理条件包括所述多个存储块中的每一个的擦除计数器和读取计数器的一个或多个参数值。
6.根据权利要求2所述的测试系统,其中每个FTL内核基于读取计数器值和擦除计数器值选择性地对所述多个存储块执行包括损耗均衡操作和读取干扰操作的测试操作。
7.根据权利要求6所述的测试系统,其中当擦除计数器值大于擦除阈值时,每个FTL内核对所述多个存储块执行所述损耗均衡操作。
8.根据权利要求6所述的测试系统,其中当所述读取计数器值大于读取阈值时,每个FTL内核对所述多个存储块执行读取刷新操作。
9.根据权利要求1所述的测试系统,其中所述测试装置包括在真实或虚拟主机装置中,所述真实或虚拟主机装置与所述存储装置联接或者包括在所述存储装置中。
10.一种测试存储装置的方法,所述存储装置包括多个闪存转换层内核即多个FTL内核,每个FTL内核与多个存储块相关联,所述方法包括:
由测试装置生成所述多个FTL内核的测试预处理条件;
由所述测试装置将所述测试预处理条件提供给所述多个FTL内核,所述测试预处理条件彼此不同;并且
由所述多个FTL内核中的每一个,基于所述测试预处理条件中的相应测试预处理条件来执行一个或多个测试操作。
11.根据权利要求10所述的方法,其中所述测试预处理条件中的每一个指示所述多个存储块的状态。
12.根据权利要求11所述的方法,其中所述测试预处理条件为相同类型但具有不同参数值的测试预处理条件。
13.根据权利要求11所述的方法,其中所述测试预处理条件为不同类型的测试预处理条件。
14.根据权利要求11所述的方法,其中所述测试预处理条件包括所述多个存储块中的每一个的擦除计数器和读取计数器的一个或多个参数值。
15.根据权利要求11所述的方法,其中每个FTL内核基于读取计数器值和擦除计数器值选择性地对所述多个存储块执行包括损耗均衡操作和读取干扰操作的测试操作。
16.根据权利要求15所述的方法,其中当擦除计数器值大于擦除阈值时,每个FTL内核对所述多个存储块执行所述损耗均衡操作。
17.根据权利要求15所述的方法,其中当读取计数器值大于读取阈值时,每个FTL内核对所述多个存储块执行读取刷新操作。
18.根据权利要求10所述的方法,其中所述测试装置包括在真实或虚拟主机装置中,所述真实或虚拟主机装置与所述存储装置联接或者包括在所述存储装置中。
CN202210194355.3A 2021-08-06 2022-03-01 基于预处理条件生成测试多核ssd固件的系统和方法 Pending CN115910181A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/396,185 2021-08-06
US17/396,185 US11967391B2 (en) 2021-08-06 2021-08-06 System and method for testing multicore SSD firmware based on preconditions generation

Publications (1)

Publication Number Publication Date
CN115910181A true CN115910181A (zh) 2023-04-04

Family

ID=85152365

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210194355.3A Pending CN115910181A (zh) 2021-08-06 2022-03-01 基于预处理条件生成测试多核ssd固件的系统和方法

Country Status (2)

Country Link
US (1) US11967391B2 (zh)
CN (1) CN115910181A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115993937A (zh) * 2023-03-21 2023-04-21 苏州浪潮智能科技有限公司 一种多进程固态硬盘仿真环境实现方法和装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381715B1 (en) * 1998-12-31 2002-04-30 Unisys Corporation System and method for performing parallel initialization and testing of multiple memory banks and interfaces in a shared memory module
US7640424B2 (en) * 2005-10-13 2009-12-29 Sandisk Corporation Initialization of flash storage via an embedded controller
KR101517185B1 (ko) * 2008-04-15 2015-05-04 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
US8239618B2 (en) 2010-05-27 2012-08-07 Dell Products L.P. System and method for emulating preconditioning of solid-state device
US8468408B2 (en) * 2010-09-16 2013-06-18 Advanced Micro Devices, Inc. Memory built-in self test (MBIST) circuitry configured to facilitate production of pre-stressed integrated circuits and methods
US8838883B2 (en) * 2012-04-13 2014-09-16 Sandisk Technologies Inc. System and method of adjusting a programming step size for a block of a memory
KR101240633B1 (ko) * 2012-08-13 2013-03-11 주식회사 유니테스트 솔리드 스테이트 드라이브 테스트장치
US9619381B2 (en) * 2013-12-24 2017-04-11 International Business Machines Corporation Collaborative health management in a storage system
US20160350023A1 (en) * 2014-01-28 2016-12-01 Hewlett Packard Enterprise Development Lp Re-initializing memory arrays
US9965198B2 (en) 2016-07-21 2018-05-08 Western Digital Technologies, Inc. Internally preconditioning solid state drives for various workloads
US10824554B2 (en) * 2016-12-14 2020-11-03 Via Technologies, Inc. Method and apparatus for efficiently sorting iteration with small sorting set
US10628049B2 (en) * 2017-07-12 2020-04-21 Sandisk Technologies Llc Systems and methods for on-die control of memory command, timing, and/or control signals
US10504605B2 (en) * 2017-11-02 2019-12-10 National Tsing Hua University Method and system for testing firmware of solid-state storage device, and electronic apparatus
KR102469098B1 (ko) * 2018-03-21 2022-11-23 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 이를 포함하는 데이터 저장 장치
US11403216B2 (en) * 2020-08-27 2022-08-02 Micron Technology, Inc. Scaling factors for media management operations at a memory device

Also Published As

Publication number Publication date
US11967391B2 (en) 2024-04-23
US20230038605A1 (en) 2023-02-09

Similar Documents

Publication Publication Date Title
CN110444246B (zh) 用于存储器系统的相邻辅助校正错误恢复及其方法
CN109428606B (zh) 具有ldpc解码器的存储器系统及其操作方法
CN110827906A (zh) 存储器系统及其操作方法
US20220261182A1 (en) Superblock linkage systems and method for asymmetric die packages
KR20210129928A (ko) 메모리 장치 및 메모리 장치의 동작방법
CN111540393B (zh) 用于基于字线分组的读取操作的存储器系统和方法
CN110931075B (zh) 可重新配置的模拟系统和测试存储装置的固件的方法
US10938419B2 (en) Encoding method and system for memory device including QLC cells
US11854629B2 (en) System and method for non-parametric optimal read threshold estimation using deep neural network
US11907571B2 (en) Read threshold optimization systems and methods using domain transformation
CN114496044A (zh) 使用无模型回归的读取阈值优化系统和方法
US11036579B2 (en) Decoder for memory system and method thereof
US10991409B2 (en) Encoder for memory system and method thereof
US11967391B2 (en) System and method for testing multicore SSD firmware based on preconditions generation
US11842779B2 (en) Memory device and operating method for performing verify operation
US11217319B2 (en) Read threshold optimization systems and methods by multi-dimensional search
US11210008B2 (en) Memory system for multi-clustering read thresholds and method thereof
US20210303715A1 (en) Data scrambler for memory systems and method thereof
CN112216328A (zh) 具有低复杂度解码的存储器系统及其操作方法
US11520507B1 (en) System and method for test precondition generation based on factory-formatted state of memory device
CN112241333B (zh) 用于存储器系统的编码器及其方法
US11502703B2 (en) Descrambler for memory systems and method thereof
US20210103494A1 (en) Decoder for memory system and method thereof
CN112416298A (zh) 闪速存储器的基于原始读取的物理不可克隆功能
CN115934406A (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