首页 / 专利库 / 软件 / 白盒测试 / 可重新配置的模拟系统和测试存储装置的固件的方法

可重新配置的模拟系统和测试存储装置的固件的方法

阅读:132发布:2020-05-08

专利汇可以提供可重新配置的模拟系统和测试存储装置的固件的方法专利检索,专利查询,专利分析的服务。并且本 发明 提供一种可重新配置的模拟系统和测试存储装置的 固件 的方法以及提供一种用于 存储器 系统的模拟系统。该模拟系统包括:测试装置,适用于生成测试命令;虚拟装置,适用于配置多个子系统中的至少一个和存储装置,每个子系统包括针对固件开发阶段配置的固件,以及使用测试命令、利用存储装置对每个所配置的子系统中的相应固件执行测试。,下面是可重新配置的模拟系统和测试存储装置的固件的方法专利的具体信息内容。

1.一种模拟系统,包括:
测试装置,生成测试命令;以及
虚拟装置,配置多个子系统中的至少一个和存储装置,每个子系统包括针对固件开发阶段配置的固件,并且使用所述测试命令、利用所述存储装置对每个所配置的子系统中的相应固件执行测试。
2.根据权利要求1所述的模拟系统,其中所述存储装置包括闪存阵列,其中所述多个子系统包括主机子系统、闪存子系统和NAND子系统,并且其中所述主机子系统包括主机接口层即HIL,所述闪存子系统包括闪存转换层即FTL,所述NAND子系统包括闪存接口层即FIL。
3.根据权利要求2所述的模拟系统,其中所述虚拟装置进一步包括联接在所述NAND子系统和所述存储装置之间的总线组件。
4.根据权利要求2所述的模拟系统,其中所述固件开发阶段包括第一阶段、在所述第一阶段之后的第二阶段和在所述第二阶段之后的第三阶段。
5.根据权利要求4所述的模拟系统,其中在所述第一阶段中,所述虚拟装置配置所述闪存子系统。
6.根据权利要求4所述的模拟系统,其中在所述第二阶段中,所述虚拟装置配置所述主机子系统和所述闪存子系统或者配置所述闪存子系统和所述NAND子系统。
7.根据权利要求4所述的模拟系统,其中在所述第三阶段中,所述虚拟装置配置所述主机子系统、所述闪存子系统和所述NAND子系统。
8.根据权利要求2所述的模拟系统,其中所述虚拟装置执行与包括多个特征之中的所选择特征的模拟特征集对应的测试。
9.根据权利要求8所述的模拟系统,其中所述多个特征包括故障注入、存储处理、预处理、白盒测试、寿命终止测试即EOL测试和快速模拟。
10.根据权利要求2所述的模拟系统,其中所述虚拟装置基于下列协议与所述测试装置通信:高速非易失性存储器协议即NVMe协议、串行高级技术附件协议即SATA协议或通用闪存协议即UFS协议。
11.根据权利要求2所述的模拟系统,进一步包括适用于监控所述测试的验证器。
12.一种模拟存储器系统的方法,包括:
配置多个子系统中的至少一个和存储装置,每个子系统包括针对固件开发阶段配置的固件;以及
使用测试命令、利用所述存储装置对每个所配置的子系统中的相应固件执行测试。
13.根据权利要求12所述的方法,其中所述存储装置包括闪存阵列,
其中所述多个子系统包括主机子系统、闪存子系统和NAND子系统,并且其中所述主机子系统包括主机接口层即HIL,所述闪存子系统包括闪存转换层即FTL,所述NAND子系统包括闪存接口层即FIL。
14.根据权利要求13所述的方法,其中所述虚拟装置进一步包括联接在所述NAND子系统和所述存储装置之间的总线组件。
15.根据权利要求13所述的方法,其中所述固件开发阶段包括第一阶段、在所述第一阶段之后的第二阶段和在所述第二阶段之后的第三阶段。
16.根据权利要求15所述的方法,其中配置所述多个子系统中的至少一个包括在所述第一阶段中,配置所述闪存子系统。
17.根据权利要求15所述的方法,其中配置所述多个子系统中的至少一个包括在所述第二阶段中,配置所述主机子系统和所述闪存子系统或者配置所述闪存子系统和所述NAND子系统。
18.根据权利要求15所述的方法,其中配置所述多个子系统中的至少一个包括在所述第三阶段中,配置所述主机子系统、所述闪存子系统和所述NAND子系统。
19.根据权利要求13所述的方法,其中执行所述测试包括执行与包括多个特征之中的所选择特征的模拟特征集对应的测试,
其中所述多个特征包括故障注入、存储处理、预处理、白盒测试、寿命终止测试即EOL测试和快速模拟。
20.根据权利要求13所述的方法,进一步包括基于下列协议接收所述测试命令:高速非易失性存储器协议即NVMe协议、串行高级技术附件协议即SATA协议或通用闪存协议即UFS协议。

说明书全文

可重新配置的模拟系统和测试存储装置的固件的方法

[0001] 相关申请的交叉引用
[0002] 本申请要求于2018年9月19日提交的申请号为62/733,420的美国临时申请的权益,该美国临时申请的全部内容通过引用并入本文。

技术领域

[0003] 本公开的实施例涉及一种测试存储装置的固件的模拟系统。

背景技术

[0004] 计算机环境范例已经转变成可被随时随地使用的普适计算系统。因此,诸如移动电话数码相机和笔记本计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
[0005] 由于使用存储器装置的存储器系统不具有移动部件,因此它们提供优异的稳定性、耐用性、高信息访问速度和低功耗。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、诸如通用闪存(UFS)的、具有各种接口的存储卡以及固态硬盘(SSD)。
[0006] 诸如基于NAND闪存的SSD的存储器系统包括各种硬件和固件组件。硬件和固件组件是以串联的形式(in tandem)开发的。固件确定存储器系统(例如,SSD控制器)的主要特征。为了获得最佳性能和功耗,需要在良好优化的硬件上对固件进行微调。在固件开发期间可以使用模拟器发明内容
[0007] 本发明的各方面涉及一种在存储器系统的固件开发期间测试固件的可重新配置的模拟方案。
[0008] 在一方面,一种用于存储器系统的模拟系统包括:测试装置,适用于生成测试命令;虚拟装置,适用于配置多个子系统中的至少一个和存储装置,每个子系统包括针对固件开发阶段配置的固件,以及使用测试命令、利用存储装置对每个所配置的子系统中的相应固件执行测试。
[0009] 在另一方面,一种模拟存储器系统的方法包括:配置多个子系统中的至少一个和存储装置,每个子系统包括针对固件开发阶段配置的固件,以及使用测试命令、利用存储装置对每个所配置的子系统的相应固件执行测试。
[0010] 从以下描述,本发明的其它方面将变得显而易见。附图说明
[0011] 图1是示出根据本发明的实施例的数据处理系统的框图
[0012] 图2是示出根据本发明的实施例的存储器系统的框图。
[0013] 图3是示出根据本发明的实施例的存储器装置的存储电路图。
[0014] 图4是示出根据本发明的实施例的模拟系统的示图。
[0015] 图5是示出根据本发明的实施例的虚拟装置的示图。
[0016] 图6是示出根据本发明的实施例的固件的配置操作的示图。
[0017] 图7是示出根据本发明的实施例的用于修改模拟特征集的操作的示图。
[0018] 图8是示出根据本发明的实施例的模拟特征集的示图。
[0019] 图9是示出根据本发明的实施例的整个固件测试操作的示图。
[0020] 图10是示出根据本发明的实施例的测试写入序列的示图。
[0021] 图11是示出根据本发明的实施例的测试读取序列的示图。
[0022] 图12至图14是示出根据本发明的实施例的部分固件测试操作的示图。

具体实施方式

[0023] 下面参照附图更详细地描述各个实施例。然而,本发明可以不同的形式实施并且因此不应被解释为限于本文阐述的实施例。相反,提供这些实施例使得本公开彻底且完整,并且向本领域技术人员充分传达本发明的范围。此外,本文对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任意这种短语的不同参考不一定针对相同的实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
[0024] 本发明可以包括如下列的多种方式来实施:进程;设备;系统;在计算机可读存储介质上实现的计算机程序产品;和/或处理器,诸如适于执行存储在与处理器联接的存储器上和/或由与处理器联接的存储器提供的指令的处理器。在本说明书中,这些实施例或本发明可以采用的任意其它形式可以被称为技术方案。通常,可以在本发明的范围内可改变所公开的进程的步骤的顺序。除非另有说明,否则被描述为适于执行任务的、诸如处理器或存储器的组件可以被实施为临时配置为在给定时间执行该任务的通用组件或者被制造为执行该任务的专用组件。如本文所使用的,术语“处理器”等是指适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核
[0025] 以下与示出本发明的方面的附图一起提供本发明的实施例的详细描述。结合这些实施例来描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限定。本发明涵盖在权利要求范围内的许多替换方案、修改方案和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是为了示例的目的;本发明可以在没有一些或全部这些具体细节的情况下根据权利要求来实践。为清楚起见,没有详细描述与本发明相关的技术领域中公知的技术材料,以免不必要地模糊本发明。
[0026] 图1是示出根据本发明的实施例的数据处理系统2的框图。
[0027] 参照图1,数据处理系统2可以包括主机装置5和存储器系统10。存储器系统10可以从主机装置5接收请求并且响应于所接收的请求而操作。例如,存储器装置10可以存储待由主机装置5访问的数据。
[0028] 主机装置5可以利用各种电子装置中的任意一种来实施。在各个实施例中,主机装置5可以包括诸如下列的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在各个实施例中,主机装置5可以包括诸如下列的便携式电子装置:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机
[0029] 存储器系统10可以利用诸如固态硬盘(SSD)和存储卡的各种存储装置中的任意一种来实施。在各个实施例中,存储器系统10可以被设置为诸如下列的电子装置中的各种组件中的一种:计算机、超移动个人计算机(PC)(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和传送信息的装置、射频识别(RFID)装置、以及家庭网络的各种电子装置中的一种、计算机网络的各种电子装置中的一种、远程信息处理网络的电子装置中的一种或计算系统的各种组件中的一种。
[0030] 存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器控制器100可以控制半导体存储器装置200的全部操作。为简单起见,存储器控制器100和半导体存储器装置200以下有时可以分别称为控制器100和存储器装置200。
[0031] 半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可以通过电线接收电力PWR,并且通过控制线接收控制信号CTRL。根据存储器系统10的设计和配置,控制信号CTRL可以包括命令存使能信号、地址锁存使能信号、芯片使能信号、写入使能信号、读取使能信号以及其它操作信号。
[0032] 存储器控制器100和半导体存储器装置200可以被集成在诸如固态硬盘(SSD)的单个半导体装置中。SSD可以包括用于在其中存储数据的存储装置。当存储器系统10用于SSD中时,联接至存储器系统10的主机装置(例如图1的主机装置5)的操作速度可以显著提高。
[0033] 存储器控制器100和半导体存储器装置200可以被集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以被如此集成以配置:个人计算机(PC)存储卡国际协会(PCMCIA)的PC卡、紧凑式闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、尺寸减小的多媒体卡(RS-MMC)、微型版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、安全数字高容量(SDHC)和/或通用闪存(UFS)。
[0034] 图2是示出根据本发明的实施例的存储器系统的框图。例如,图2的存储器系统可以描述图1中所示的存储器系统10。
[0035] 参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置(例如图1的主机装置5)的请求而操作,并且特别地,存储待由主机装置访问的数据。
[0036] 存储器装置200可以存储待由主机装置访问的数据。
[0037] 存储器装置200可以利用诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置或者诸如下列的非易失性存储器装置来实施:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和/或电阻式RAM(RRAM)。
[0038] 控制器100可以控制数据在存储器装置200中的存储。例如,控制器100可以响应于来自主机装置的请求来控制存储器装置200。控制器100可以将从存储器装置200读取的数据提供至主机装置,并且可以将从主机装置提供的数据存储至存储器装置200中。
[0039] 控制器100可以包括通过总线160而联接的存储装置110、控制组件120、错误校正码(ECC)组件130、主机接口(I/F)140和存储器接口(I/F)150,控制组件120可被实施为诸如中央处理单元(CPU)的处理器。
[0040] 存储装置110可以用作存储器系统10和控制器100的工作存储器,并且存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可以存储控制器100和存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。
[0041] 存储装置110可以利用诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器来实施。如上所述,存储装置110可以将主机装置使用的数据存储在存储器装置200中以用于读取操作和写入操作。为了存储数据,存储装置110可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
[0042] 控制组件120可以控制存储器系统10的一般操作,并且响应于来自主机装置的写入请求或读取请求,控制对存储器装置200的写入操作或读取操作。控制组件120可以驱动被称为闪存转换层(FTL)的固件,以控制存储器系统10的一般操作。例如,FTL可以执行诸如逻辑至物理(L2P)映射、损耗均衡、垃圾收集和/或坏块处理的操作。L2P映射被称为逻辑块寻址(LBA)。
[0043] 在读取操作期间,ECC组件130可以检测并校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件130可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
[0044] 在各个实施例中,ECC组件130可以基于诸如下列的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、trubo码、trubo乘积码(TPC)、里德-所罗(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。然而,错误校正不限于这些技术。同样地,ECC组件130可以包括用于合适的错误校正操作的任意和所有电路、系统或装置。
[0045] 主机接口140可以通过诸如下列的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、高速非易失性存储器(NVMe)和通用闪存(UFS)。
[0046] 存储器接口150可以提供控制器100和存储器装置200之间的接口,以允许控制器100响应于来自主机装置的请求来控制存储器装置200。存储器接口150可以在控制组件120的控制下生成用于存储器装置200的控制信号并且处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在控制组件120的控制下生成用于存储器装置的控制信号并且处理数据。
[0047] 存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可以是页面缓冲器阵列形式的页面缓冲器250、列解码器260以及输入和输出(输入/输出)电路270。存储器单元阵列210可以包括可存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器250、列解码器260和输入/输出电路270可以形成存储器单元阵列210的外围电路。外围电路可以对存储器单元阵列210执行编程操作、读取操作或者擦除操作。控制电路220可以控制外围电路。
[0048] 电压生成电路230可以生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成诸如擦除电压和通过电压的各种电平的操作电压。
[0049] 行解码器240可以与电压生成电路230和多个存储块211电通信。行解码器240可以响应于由控制电路220生成的行地址来在多个存储块211之中选择至少一个存储块,并且将从电压生成电路230供应的操作电压传送至所选择的存储块。
[0050] 页面缓冲器250可以通过位线BL(图3中示出)与存储器单元阵列210联接。页面缓冲器250可以响应于由控制电路220生成的页面缓冲器控制信号,利用正电压对位线BL预充电、在编程操作中将数据传送至所选择的存储块并且在读取操作中从所选择的存储块接收数据或者临时存储传送的数据。
[0051] 列解码器260可以将数据传送至页面缓冲器250并且从页面缓冲器250接收数据,或将数据传送至输入/输出电路270并且从输入/输出电路270接收数据。
[0052] 输入/输出电路270可以将从外部装置(例如图1的存储器控制器100)接收的命令和地址传送至控制电路220,数据可通过输入/输出电路270从外部装置传送至列解码器260,或者数据可通过输入/输出电路270从列解码器260输出至外部装置。
[0053] 控制电路220可以响应于命令和地址来控制外围电路。
[0054] 图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2中所示的存储器单元阵列210的存储块211中的任意一个。
[0055] 参照图3,示例性存储块211可以包括联接至行解码器240的多个字线WL0至WLn-1、漏极选择线DSL和源极选择线SSL。这些线并行布置,并且多个字线在DSL和SSL之间。
[0056] 示例性存储块211可以进一步包括分别联接至位线BL0至BLm-1的多个单元串221。每列的单元串可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。
在所示的实施例中,每个单元串具有一个DST和一个SST。在单元串中,多个存储器单元或存储器单元晶体管MC0至MCn-1可以串联联接在选择晶体管DST和SST之间。存储器单元中的每一个可以形成为多层单元(MLC)。例如,存储器单元中的每一个可以形成为存储1位数据的单层单元(SLC)。存储器单元中的每一个可以形成为存储2位数据的多层单元(MLC)。存储器单元中的每一个可以形成为存储3位数据的三层单元(TLC)。存储器单元中的每一个可以形成为存储4位数据的四层单元(QLC)。
[0057] 每个单元串中的SST的源极可以联接至公共源极线CSL,并且每个DST的漏极可以联接至相应位线。单元串中的SST的栅极可以联接至SSL,并且单元串中的DST的栅极可以联接至DSL。横跨单元串的存储器单元的栅极可以联接至各自的字线。也就是说,存储器单元MC0的栅极联接至相应字线WL0,存储器单元MC1的栅极联接至相应字线WL1等等。联接至具体字线的一组存储器单元可以被称为物理页面。因此,存储块211中的物理页面的数量可以对应于字线的数量。
[0058] 页面缓冲器250可以包括联接至位线BL0至BLm-1的多个页面缓冲器251。页面缓冲器251可以响应于页面缓冲器控制信号而操作。例如,在读取或验证操作期间,页面缓冲器251可以临时存储通过位线BL0至BLm-1接收的数据或者感测位线的电压或电流
[0059] 在一些实施例中,存储块211可以包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括NOR型闪速存储器单元。存储器单元阵列210可以被实施为组合两种或更多种类型的存储器单元的混合闪速存储器,或者控制器嵌入在存储器芯片内的1-NAND闪速存储器。
[0060] 诸如闪速存储器(例如,NAND闪速存储器)的存储器装置可以包括多个存储块(例如,数百到数千个存储块)。每个块通常可以包括多个字线(例如,数百个字线)。联接至每个字线的每个单元可以包括多个逻辑页面。存储器装置可以包括多个存储器单元并且通过编程操作将单元调制成不同状态或编程电压(PV)电平而使每单元存储多个位。
[0061] 图4是示出根据本发明的实施例的模拟系统400的示图。
[0062] 参照图4,模拟系统400可以包括测试装置410、虚拟装置420和验证器430。虚拟装置420可以包括单独地或与其它组件组合实施某个模拟特征的模拟组件。模拟系统400可以用于诸如基于NAND闪存的SSD的存储器系统。
[0063] 测试装置410可以生成用于虚拟装置420的测试命令。虚拟装置420可以是用于测试的模拟目标。在一些实施例中,虚拟装置420可以是图2的存储器系统10。虚拟装置420可以包括多个子系统和存储装置。多个子系统可以以存储器控制器(诸如图2中所示的存储器控制器)来实现或通过存储器控制器(诸如图2中所示的存储器控制器)来实施。虚拟装置420的存储装置可以对应于图2的存储装置110。多个子系统中的每一个可以包括固件。可以基于固件开发阶段来配置多个子系统中的一个或多个。虚拟装置420可以从测试装置410接收测试命令,并且使用测试命令对所配置的子系统中的相应固件执行测试。
[0064] 验证器430可以监控由虚拟装置420执行的测试。验证器430可以是监控虚拟装置420的行为并且将该行为与参考行为进行比较的模拟组件。
[0065] 在一些实施例中,虚拟装置420可以使用例如下列的各种协议中的任意一个与测试装置410通信:高速非易失性存储器(NVMe)协议、串行高级技术附件(SATA)协议和/或通用闪存(UFS)协议。
[0066] 图5是示出根据本发明的实施例的虚拟装置420的示图。
[0067] 参照图5,虚拟装置420可以包括作为被测单元(UUT)的多个子系统421至423和存储装置426。多个子系统421至423中的每一个可以是硬件和相应固件的组合。换言之,第一子系统421可以包括第一固件(FW1),第二子系统422可以包括第二固件(FW2),并且第k子系统423可以包括第k固件(FWk)。例如,第k子系统423可以是包括第三固件(FW3)的第三子系统。多个子系统421至423中的每一个可以单独地或与其它组件组合地实施模拟特征集之中的某个模拟特征。模拟特征集可以是某个开发阶段所需的多个特征。
[0068] 在一些实施例中,第一子系统421可以是主机子系统并且包括主机接口层(HIL)。第二子系统422可以是闪存子系统并且包括闪存转换层(FTL)。第三子系统423可以是NAND子系统并且包括闪存接口层(FIL)。
[0069] 存储装置426可以是模拟诸如NAND闪存阵列的单元阵列的行为的模拟组件。
[0070] 图6是示出根据本发明的实施例的固件的配置操作的示图。
[0071] 参照图6,配置操作可以基于目标固件开发阶段来配置多个子系统421至423的多项固件FW1至FW3之中的至少一项固件。在一些实施例中,存在多个目标固件开发阶段,该多个目标固件开发阶段包括第一开发阶段、第一开发阶段之后的第二开发阶段和第二开发阶段之后的第三开发阶段。
[0072] 在各种实施例中,可以通过重新配置作为模拟组件的多个子系统421至423和测试装置410来修改模拟特征集。
[0073] 在第一开发阶段中,配置操作可以配置第二子系统422的固件FW2。在第一开发阶段期间,可以将给定的模拟特征集修改成排除所有可用特征之中的一个或多个特征。例如,如图6所示,可以将模拟特征集FS1修改为仅包括特征F1和F2。
[0074] 在第二开发阶段中,配置操作可以配置第一子系统421的固件FW1和第二子系统422的固件FW2。因此,可以将模拟特征集FS2-1修改成包括特征F1、F2和F3。可选地,配置操作可以配置第二子系统422的固件FW2和第三子系统423的固件FW3。在这种情况下,可以将模拟特征集FS2-2修改成包括特征F1、F2和F4。
[0075] 在第三开发阶段中,配置操作可以配置第一子系统421的固件FW1、第二子系统422的固件FW2以及第三子系统423的固件FW3。因此,可以将模拟特征集FS3修改成包括特征F1、F2、F3和F4。
[0076] 图7是示出根据本发明的实施例的用于修改模拟特征集的操作的示图。
[0077] 参照图7,可以基于固件开发阶段来修改模拟特征集。可能存在多个固件开发阶段,该多个固件开发阶段包括无硬件(No HW)阶段、No HW阶段之后的现场可编程门阵列(FPGA)阶段、FPGA阶段之后的系统级芯片(SoC)阶段以及SoC阶段之后的新NAND阶段。
[0078] 针对SSD NVMe的模拟特征集可以包括FS 1.1、FS 1.2、FS 1.3和FS 1.4。针对SSD SATA的模拟特征集可以包括FS 2.1、FS 2.2、FS 2.3和FS 2.4。针对移动UFS的模拟特征集可以包括FS 3.1、FS 3.2、FS 3.3和FS 3.4。如图8所示,每个模拟特征集可以包括多个模拟特征。
[0079] 图8是示出根据本发明的实施例的模拟特征集的示图。图8示出针对SSD NVMe的模拟特征集。
[0080] 参照图8,模拟特征集可以包括模拟特征集FS 1.1、FS 1.2、FS 1.3和FS 1.4。模拟特征集中的每一个可以包括多个模拟特征中的至少一个特征。
[0081] 在一些实施例中,多个模拟特征可以包括如下的故障注入、存储、预处理、白盒测试、寿命终止(EOL)测试和快速模拟:
[0082] ·故障注入提供指定闪存子系统不当行为的条件的可能性。故障注入允许以可重现和受控的方式来开发和测试固件错误处理功能。
[0083] ·存储处理(Storage)提供存储闪存阵列状态的可能性,闪存阵列状态由块和页面以及它们的故障(如果已被注入)组成。存储处理允许将固件系统数据和主机数据紧凑地存储在物理DRAM、HDD或SSD装置中。
[0084] ·EOL测试提供使闪存阵列快速老化成寿命终止状态的可能性。EOL测试允许测试特定的固件算法,例如损耗均衡。
[0085] ·预处理能够生成或保存/加载闪存阵列状态。预处理允许将固件快速地切换到目标状态,例如稳定状态。
[0086] ·快速模拟提供了利用以下的测试替代品来使用单元测试方法的可能性:看起来以及行为类似于它们的发布预期对应物,但实际上代表减少复杂性并且便于测试的简化版本的对象或程序。测试替代品逐渐被HW模型替换,以实现模拟精度的增长。HW模型的示例:主机控制器、DRAM(仅限NVMe和SATA)、SRAM、存储器管理、HW加速器、CPU、定时器、安全性、闪存控制器。
[0087] ·白盒测试功能允许向测试装置发送关于内部固件行为的信息。这允许开发具有固件实施知识的测试场景以用于更高效的测试。
[0088] FS 1.1可以包括存储处理和快速模拟。FS 1.2可以包括故障注入、存储处理、EOL测试和快速模拟。FS 1.3可以包括故障注入、存储处理、预处理、白盒测试和EOL测试。FS 1.4可以包括故障注入、存储处理、预处理和白盒测试。
[0089] 返回参照图7,对于SSD NVMe,在无硬件(No HW)阶段,可以将模拟特征集配置为FS 1.1。在FPGA阶段,可以将模拟特征集配置为FS 1.2。在SoC阶段,可以将模拟特征集配置为FS 1.3。在新NAND阶段,可以将模拟特征集配置为FS 1.4。
[0090] 每个特征集(SSD NVMe、SSD SATA、移动UFS)具有其自己的故障注入、存储处理、预处理、白盒测试和EOL测试的版本和配置。这些功能专用于SSD NVMe、SSD SATA、移动UFS固件策略和算法。此外,每个特征集都有自己的专用于SoC(例如,SSD NVMe、SSD SATA、移动UFS)的、利用测试替代品和/或HW模型的快速模拟的版本和配置。对于SSD SATA,在无硬件(No HW)阶段,可以将模拟特征集配置为FS 2.1。在FPGA阶段,可以将模拟特征集配置为FS2.2。在SoC阶段,可以将模拟特征集配置为FS 2.3。在新NAND阶段,可以将模拟特征集配置为FS 2.4。
[0091] 对于移动UFS,在无硬件(No HW)阶段,可以将模拟特征集配置为FS 3.1。在FPGA阶段,可以将模拟特征集配置为FS 3.2。在SoC阶段,可以将模拟特征集配置为FS 3.3。在新NAND阶段,可以将模拟特征集配置为FS 3.4。
[0092] 每个组件即SSD NVMe在每个阶段所需的特征集可能主要由组件自身中的固件和硬件的准备状态和可用性来限定。
[0093] 在早期阶段,硬件可能不可用;因此,即使是基本和有限的模拟也是有价值的。同时,固件通常没有准备好处理复杂的极端情况,诸如NAND编程故障处理、读取错误处理、性能和延迟优化。因此,在例如No HW的早期阶段,不需要故障注入特征。也就是说,在无硬件阶段,基本特征集可能就足够了。
[0094] 随着开发的继续,因为可以使用硬件来完成基本测试和开发,所以可能需要更多的吞吐量模拟。在FPGA可用的阶段,基本特征集变得不足够。例如,可以将故障注入和EOL测试添加到模拟环境中。
[0095] 在SoC出现的阶段,模拟器必须提供适合于该阶段的测试和开发需求的特征集,诸如白盒测试,并且将快速模拟切换到更准确的模拟。
[0096] 在进一步的开发中,可能需要完全集成测试。在此阶段,例如新NAND阶段,由于模拟复杂性,需要模拟性能。然而,因为硬件在之后的阶段是可用的,所以对硬件的测试可用于更高的性能。为了加速测试,可以使用模拟之外的固件算法来准备装置的图像,以在每次测试中避免长时间运行的预处理。
[0097] 如上所述,模拟系统400可以用于诸如基于NAND闪存的SSD的存储器系统的固件测试。模拟系统400可以包括虚拟装置(VD)420。虚拟装置420可以包括三个逻辑部分或子系统421至423。子系统421至423中的每一个可以是硬件和特定固件层的组合。
[0098] 在一些实施例中,如图9和12至14所示,第一子系统421可以实施为主机子系统(H-Sub)421A,第二子系统422可以实施为闪存子系统(F-Sub)422A,第三子系统423可以实施为NAND子系统(N-Sub)423A。
[0099] 参照图9,虚拟装置420可以包括主机子系统421A、闪存子系统422A和NAND子系统423A,它们共同表示被测单元(UUT)。虚拟装置420可以进一步包括存储装置426和NAND总线组件428。
[0100] 存储装置426可以是模拟诸如NAND闪存阵列的单元阵列的行为的模拟组件。NAND总线组件428可以是模拟诸如命令执行、就绪/忙信号变化的开放NAND闪存接口(ONFI)总线活动的模拟组件。
[0101] 主机子系统421A可以由主机接口层(HIL)控制。主机子系统421A可以基于协议处理特定活动。主机子系统421A可以从测试装置410接收用于读取操作和写入操作的命令(或请求)。此外,主机子系统421A可以将命令转发至闪存子系统422A。在一些实施例中,命令可以对应于图8中的特征集中的特征。
[0102] 闪存子系统422A可以由闪存转换层(FTL)控制。闪存子系统422A可以将主机逻辑地址转换为NAND闪存物理地址。此外,闪存子系统422A可以将逻辑读取请求和逻辑写入请求转换为NAND闪存操作请求,并且将NAND闪存操作请求转发至NAND子系统423A。
[0103] NAND子系统423A可以由闪存接口层(FIL)控制。NAND子系统423A可以处理并执行针对包括闪存单元阵列的存储装置426的NAND闪存操作。在一些实施例中,NAND闪存操作可以包括感测、编程、擦除、不可校正的错误校正码(UECC)校正和页面缓冲器高速缓存。
[0104] 在一些实施例中,针对NAND闪存固件的可重新配置模拟方法可以允许根据需要来模拟虚拟装置的所需子系统。基于可重新配置模拟方法的模拟系统(或模拟器)可以允许针对特定目标固件开发阶段来重新配置所需组件,而不是在所有开发阶段使用相同配置。
[0105] 模拟系统可以实现用于测试子系统的所有固件(参照图9)的模拟或用于测试子系统的一些固件,例如一个或多个但少于所有固件的模拟(参照图12至14)。可以通过重新配置给定模拟特征集中包括特征来修改模拟特征集。进而,这导致相关子系统的重新配置。子系统可以以不同方式配置。通过示例的方式,参照图9至图14描述可能的配置。应注意的是,本发明的范围不限于此。
[0106] 图9是示出根据本发明的实施例的整个固件测试操作的示图。
[0107] 参照图9,所有子系统可用于固件测试操作。换言之,虚拟装置420可以被配置成包括主机子系统421A、闪存子系统422A、NAND子系统423A、NAND总线组件428和存储装置426。该配置可以用于诸如图7的、对应于图8的特征集1.3或1.4的SoC阶段或新NAND阶段的目标固件开发阶段。
[0108] 在整体固件测试操作中,可以根据如图10所示的序列来执行测试写入操作。此外,可以根据如图11所示的序列来执行测试读取操作。
[0109] 参照图10,测试装置(Test)可以将用于写入操作的命令(Write)发送至主机子系统(H-Sub)421A。主机子系统(H-Sub)421A可以将命令(Post)转发至闪存子系统(F-Sub)422A。闪存子系统(F-Sub)422A可以将命令(Flash OP)转发至NAND子系统(N-Sub)423A。
NAND子系统(N-Sub)423A可以通过NAND总线组件428将数据(Din)和地址(Addr)提供至存储装置426。因此,可以对存储装置426执行写入操作。
[0110] 参照图11,测试装置(Test)可以将用于读取操作的命令(Read)发送至主机子系统(H-Sub)421A。主机子系统(H-Sub)421A可以将命令(Post)转发至闪存子系统(F-Sub)422A。闪存子系统(F-Sub)422A可以将命令(Flash OP)转发至NAND子系统(N-Sub)423A。NAND子系统(N-Sub)423A可以通过NAND总线组件428将地址(Addr)提供至存储装置426。因此,可以对存储装置426执行读取操作。
[0111] 图12至图14是示出根据本发明的实施例的部分固件测试操作的示图。
[0112] 参照图12,只有一个子系统可以用于部分固件测试操作。换言之,闪存子系统422A可以配置成与存储装置426联接。因为测试装置可以利用不同的协议工作,所以可以重复使用测试装置。测试装置可以通过通用协议直接与闪存子系统(F-Sub)422A通信,而不是将命令通信至主机子系统(H-Sub)421A。该配置可以用于诸如图7的、与图8的基本特征集1.1相对应的No-HW阶段的目标固件开发阶段。
[0113] 参照图13,两个子系统的组合可以用于部分固件测试操作。换言之,主机子系统(H-Sub)421A和闪存子系统422A可以配置成与存储装置426联接。该配置可以用于诸如图7的、与图8的特征集1.2相对应的FPGA阶段的目标固件开发阶段。在目标固件开发阶段,因为NAND子系统(N-Sub)423A模拟速度慢且难以开发,并且NAND子系统(N-Sub)423A可能没有做好准备,所以省略NAND子系统(N-Sub)423A。闪存子系统(F-Sub)422A可以直接与存储装置426通信而无需NAND总线组件428。
[0114] 参照图14,两个子系统的组合可以用于部分固件测试操作。换言之,闪存子系统422A和NAND子系统(N-Sub)423A可以配置成通过NAND总线组件428与存储装置426联接。该配置可以用于诸如图7的、与图8的特征集1.3对应的SoC阶段的目标固件开发阶段。在目标固件开发阶段,NAND子系统(N-Sub)423A可以通过NAND总线组件428与存储装置426通信。
[0115] 如上所述,代替针对每个子系统和/或在每个开发阶段使用相同的配置,本发明的实施例提供了针对不同的子系统、在存储器系统的不同的固件开发阶段使用不同配置来测试固件的灵活性。
[0116] 虽然出于清楚和理解的目的,已经在一些细节上说明并描述了前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的是,存在许多实施本发明的替代方式。因此,所公开的实施例是说明性的而非限制性的。本发明旨在涵盖落入权利要求范围内的所有修改和替换。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈