CN115408212A - 对分区命名空间固态驱动器的并行自动测试的***和方法 - Google Patents

对分区命名空间固态驱动器的并行自动测试的***和方法 Download PDF

Info

Publication number
CN115408212A
CN115408212A CN202210544596.6A CN202210544596A CN115408212A CN 115408212 A CN115408212 A CN 115408212A CN 202210544596 A CN202210544596 A CN 202210544596A CN 115408212 A CN115408212 A CN 115408212A
Authority
CN
China
Prior art keywords
zns
ssds
test
ssd
zone
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
CN202210544596.6A
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.)
Advantest Corp
Original Assignee
Advantest Corp
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 Advantest Corp filed Critical Advantest Corp
Publication of CN115408212A publication Critical patent/CN115408212A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31908Tester set-up, e.g. configuring the tester to the device under test [DUT], down loading test patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/318357Simulation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318516Test of programmable logic devices [PLDs]
    • G01R31/318519Test of field programmable gate arrays [FPGA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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 for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Testing Of Individual Semiconductor Devices (AREA)

Abstract

本申请提供了对分区命名空间固态驱动器的并行自动测试的***和方法。本发明的实施例提供了用于根据与包括ZNS SSD的地址空间的各个区域相关联的配置和限制并行地自动执行大量ZNS SSD上的DUT测试的***和方法。计算机进程检测ZNS器件及其特性(例如,区域参数)并使用新方法执行能测试ZNS器件的独特特征的读写测试。例如,一些实施例执行高效和有效的测试控制,这些控制能够应对不同器件型号之间ZNS特性和几何形状的许多差异。实施例可以跟踪大量区域的状态并基于预定的测试规范处理每个区域。

Description

对分区命名空间固态驱动器的并行自动测试的***和方法
技术领域
本发明的实施例总体涉及器件测试领域。更具体地,本发明的实施例涉及用于测试分区命名空间固态驱动器的方法和***。
背景技术
被测器件或设备(例如,DUT)通常在器件出售之前进行测试以确定器件的性能和一致性。可以使用多种测试用例对器件进行测试,并将测试用例的结果与预期的输出结果进行比较。当测试用例的结果与预期的输出值不匹配时,执行调试以尝试识别和纠正由器件导致的任何缺陷和/或基于性能对器件进行分类。
DUT通常通过自动的或自动化测试设备(ATE)进行测试,ATE可用于使用软件和自动化进行复杂测试以提高测试效率。DUT可以是旨在集成到最终产品(例如计算机或其他电子设备)中的存储器设备或组件。
固态驱动器(SSD)已普遍用于大型数据中心和企业软件应用。SSD是一种固态存储设备,它使用闪存持久地存储数据。最近,引入了一种新型SSD,通过将地址空间划分为不同的区域来提高SSD的性能和耐用性。这些驱动器可以使用高级非易失性内存快速(NVMe)命令集而***纵,在商业上称为分区命名空间(ZNS)SSD。传统SSD将整个驱动器呈现为扇区,***可以随时写入驱动器上的任何位置和从驱动器上的任何位置读取。相比之下,ZNS SSD的区域是使用不同的操作参数配置的,这些参数限制了区域如何能写入(例如,有限数量的顺序写入)或以其他方式访问(例如,清除)。ZNS命名空间通常被划分为大量大小相等的区域。在一个示例中,可以将1TB ZNS SSD分割成多个2GB区域等。
ZNS SSD密切反映了底层闪存存储的物理布局,从而显著简化了ZNS SSD中的闪存转换层FTL。这种改进可以大大减少ZNS SSD所需的DRAM的量,并显著降低ZNS SSD的成本。不幸的是,现有的NVMe测试方法不能用于测试ZNS器件。这些现有方法无法考虑ZNS SSD的特定操作参数,也无法测试这些器件。
发明内容
因此,本发明的实施例提供了用于根据与包括ZNS SSD的地址空间的各个区域相关联的配置和限制并行地自动执行大量ZNS SSD上的DUT测试的***和方法。在***内,计算机进程检测ZNS器件及其特性(例如,器件/区域参数),并使用新方法执行能测试ZNS器件的独特特征的读写性能测试。例如,本发明的实施例可以跟踪大量区域的状态并且基于预定的测试规范来处理每个区域。
根据一个实施例,公开了一种测试分区命名空间固态驱动器的方法。该方法包括访问多个ZNS SSD的区域参数,根据区域参数运行测试多个ZNS SSD的测试程序,并报告测试程序的测试结果。
根据一些实施例,运行测试程序由运行Linux操作***的处理器(例如,CPU)执行,并且该方法进一步包括:向耦合到ZNS SSD的现场可编程门阵列(FPGA)发送API指令,以例如根据测试程序使用区域参数测试多个ZNS SSD。
根据一些实施例,运行测试程序包括并行地测试ZNS SSD。
根据一些实施例,区域参数包括以下项中的至少一项:ZNS SSD中的区域的数量、ZNS SSD的区域大小、ZNS SSD的开放区域的最大数量、ZNS SSD的最大区域容量、以及ZNSSSD的最小区域容量。
根据一些实施例,该方法包括:从ZNS DUT控制器接收ZNS SSD中的区域的数量、ZNS SSD的区域大小和开放区域的最大数量。
根据一些实施例,该方法包括:扫描ZNS SSD的所有区域以确定ZNS SSD的区域容量,以及基于ZNS的区域容量来计算ZNS SSD的最大区域容量和最小区域容量。
根据一些实施例,ZNS SSD可以包括具有相同容量的区域。
根据一些实施例,执行测试程序包括:使用基于区域的测试模式来执行写入性能测试。
根据一些实施例,执行测试程序包括:使用基于区域的操作模式和基于逻辑块地址(LBA)的操作模式来执行读取性能测试。
根据不同的实施例,公开了一种用于模拟被测器件(DUT)的***。该***包括:处理器,该处理器运行基于Linux的操作***,以及存储器,该存储器与处理器通信,用于存储数据和指令,其中处理器执行测试分区命名空间(ZNS)固态驱动器(SSD)的方法。该方法包括:访问多个ZNS SSD的区域参数,根据区域参数运行测试多个ZNS SSD的测试程序,并报告测试程序的测试结果。
根据另一个实施例,公开了一种测试分区命名空间(ZNS)固态驱动器(SSD)的方法。该方法包括:运行多个测试程序以向第一FPGA和第二FPGA发送API指令,第一FPGA根据API指令对第一多个ZNS SSD执行测试操作,以及第二FPGA根据API指令对第二多个ZNS SSD执行执行测试操作。
根据一些实施例,该方法包括:访问ZNS SSD的器件信息,其中第一FPGA和第二FPGA根据各自的ZNS SSD的器件信息来执行测试操作。
根据一些实施例,第一FPGA使用基于区域的测试模式来对第一多个ZSN SSD执行写入性能测试。
附图说明
并入并构成本说明书一部分的附图示出了本发明的实施例,并与描述一起用于解释本发明的原理:
图1是根据本发明实施例的划分为区域的示例性ZNS SSD器件逻辑块寻址范围的框图。
图2是描绘根据本发明实施例的用于并行测试大量ZNS SSD的示例性测试器FPGA的框图。
图3描绘了根据本发明实施例的用于使用多个FPGA并行测试大量ZNS SSD的示例性测试***。
图4描绘了根据本发明实施例的用于测试ZNS SSD的示例性测试流程。
图5描绘了根据本发明的实施例的用于将数据写入ZNS SSD的区域的示例性LBA,这些区域使用区域写入指针前面的有限大小区,该有限大小区允许对ZNS器件进行有限的非顺序写入。
图6是描绘根据本发明实施例的用于自动测试ZNS SSD的计算机控制过程的示例性计算机实施步骤序列的流程图。
图7是根据本发明实施例的用于自动测试ZNS SSD的框图和数据流程图。
图8描绘了可以在其上实施本发明的实施例的示例性计算机平台。
具体实施方式
现在将详细参考几个实施例。尽管将结合备选实施例来描述主题,但应理解它们并非旨在将要求保护的主题限制于这些实施例。相反,要求保护的主题旨在涵盖替代、修改和等效物,它们可以包括在所附权利要求限定的要求保护的主题的精神和范围内。
此外,在以下详细描述中,阐述了许多具体细节以提供对要求保护的主题的透彻理解。然而,本领域技术人员将认识到,实施例可以在没有这些具体细节或其等同物的情况下实施。在其他情况下,没有详细描述众所周知的方法、过程、组件和电路,以免不必要地混淆主题的方面和特征。
以下详细描述的部分根据方法来呈现和讨论。尽管在描述该方法的操作的图中(例如,图6)中公开了步骤及其顺序,但是这样的步骤和顺序是示例性的。实施例非常适合于执行各种其他步骤或本文附图的流程图中列举的步骤的变体,并且以不同于本文描绘和描述的顺序执行。
详细描述的一些部分是根据可以在计算机存储器上执行的数据位上的操作的过程、步骤、逻辑块、处理和其他符号表示来呈现的。这些描述和表示是数据处理领域的技术人员用来最有效地将他们的工作内容传达给本领域的其他技术人员的手段。过程、计算机运行的步骤、逻辑块、过程等在这里并且通常被认为是导致期望结果的步骤或指令的自洽序列。这些步骤是需要对物理量进行物理操作的步骤。通常,尽管不是必须的,这些量采用能够在计算机***中存储、传输、组合、比较和以其他方式操作的电或磁信号的形式。有时,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、术语、数字等已被证明是方便的。
然而,应该记住,所有这些和类似的术语都将与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非从以下讨论中清楚地另有明确说明,否则应理解,自始至终,使用诸如“访问”、“写入”、“包括”、“存储”、“传输”、“关联”、“识别”、“编码”等术语的讨论是指计算机***或类似电子计算设备的动作和过程,计算机***或类似电子计算设备操作表示为计算机***寄存器和存储器内的物理(电子)量的数据,并将其转换为类似地表示为计算机***存储器或寄存器或其他此类信息存储、传输或显示设备内的物理量的其他数据。
分区命名空间固态驱动器的并行和自动测试
本发明的实施例提供了用于根据与包括ZNS SSD的地址空间的各个区域相关联的配置和限制并行地自动执行大量ZNS SSD的DUT测试的***和方法。在***内,计算机进程检测ZNS器件及其特性(例如,区域参数),并使用新方法执行能测试ZNS器件的独特特征的读写测试。例如,一些实施例执行高效和有效的测试控制,这些控制能够应对不同器件型号之间ZNS特性和几何形状的许多差异。实施例可以跟踪大量区域的状态并基于预定的测试规范处理每个区域。
每个ZNS器件的区域的总数可以是数十万,每个测试器可以有数百万个区域。测试设备的高吞吐量有利地减少了测试所需的总体时间和成本,并且还使测试设备能够更接近实际情况(例如,大型数据中心)。
关于图1,根据本发明的实施例描绘了被划分为区域的示例性ZNS SSD器件逻辑块寻址范围100。如图1所示,示例性ZNS SSD器件逻辑块寻址范围可以包括任意X个区域(例如,区域105、110、115、120、125)。一些ZNS SSD器件可以配置为将逻辑块寻址范围100划分为多达数十万个单独的区域,并且在一个实现方式中,可以随时写入超过4000个区域。测试具有超大量区域的器件需要协调和适应ZNS器件的约束和参数。
在图1的示例中,地址空间的区域具有相同的大小(“区域大小”),并且每个区域具有小于区域大小的容量(“区域容量”)。每个区域一般从区域起始逻辑块地址(LBA)开始被顺序写入(直到区域容量),不支持随机写入区域。然而,根据一些实施例,可以允许对区域的有限区内的随机写入。
ZNS SSD中可被同时写入的区域的数量(“最大开放资源”)通常被限制为特定数量。最大开放资源值(或“阈值”)在驱动器的命名空间标识数据结构中通告。在大多数情况下,对区域的写入只能按顺序执行到写入指针130跟踪的写入位置。可以执行区域重置操作135来倒回区域位置指针,并且可以使用写入操作140来写入数据并前进区域写入位置。
一些ZNS器件在每个区域的写入指针前面具有有限大小的区,并且可以使用排队的多个命令来顺序或随机地对该区进行写入。该区被称为ZRWA(区域随机写入区)。ZRWA的典型大小可以是数MB。
从ZNS SSD的区域进行读取受到的限制要小得多,因为可以顺序或随机地对区域进行读取。读取IO可以源自任何地址和任何区域,只要读取IO位于区域的开始(“区域开始”)和区域容量之间。可以同时读取的区域数量不受限制。重要的是,区域容量和下一个区域开始之间的间隙无法通过读取或写入操作访问。
图2描绘了根据本发明实施例的用于并行测试大量ZNS SSD的示例性测试器现场可编程门阵列(FPGA)205。在图2的示例中,测试器FPGA205包括PCIe交换机210,该PCIe交换机210耦合到多个ZNS SSD。PCIe交换机是源自CPU(图3中的325)并针对ZNS SSD 215、220和225的ZNS NVMe命令和API的通道。ZNS SSD 215、220和225托管NVMe子***,以用于存储和访问来自ZNS区域的数据。
在CPU 325(参见图3)上运行的测试器软件检测耦合的ZNS SSD215、220和225以及相应的器件特性(例如,区域参数),并执行行使耦合器件的独特特征的写入和读取测试。运行在CPU 325上的测试器软件跟踪大量ZNS区域的状态,并基于测试规范处理每个区域。这可以包括查询每个ZNS SSD以获得器件参数,包括区域参数。在某些情况下,每个ZNS SSD的区域的数量是数十万个,而运行在CPU 325上的测试器软件总共可以测试数百万个区域。
图3描绘了根据本发明实施例的用于使用多个FPGA并行测试大量ZNS SSD的示例性测试***300。在图3的示例中,站点模块305包括执行Linux操作***的处理器325。例如,处理器325可以是64位x86CPU。设备电源(DPS)板340包括若干DPS,用于提供操作和测试DUT所需的电压。站点模块305还包括通过网络交换机320与***控制器315通信的网络接口(NIC)345,例如千兆以太网NIC。例如,***控制器315可以是执行测试***控制用户接口(UI)的计算机***。站点模块305的测试结果可以报告给***控制器315并显示在图形用户界面(GUI)355上。例如,性能测试的结果可以包括被处理的区域的总数、区域被访问的次数、区域访问的分布(例如,在空间/时间上)、以及区域访问的顺序。
负载板310包括用于测试的多个ZNS SSD 350。负载板310从测试程序360接收命令并且从DPS板340接收电压。这些命令包括NVMe命令和被配置用于测试ZNS存储器件的API的命令。负载板310可以有利地在ZNS SSD 350的大量区域上以高速并行运行性能测试,这实现了更快和更高效的测试。
测试程序(“TP”)360由Linux操作***使用处理器325运行以向FPGA 330和335发送指令以控制DUT(ZNS SSD)。软件控制层处理特定于正在测试的特定ZNS SSD的约束和几何形状。测试程序与DUT交互以执行测试,例如,可以包括读取操作、写入操作、区域清除操作或管理操作。测试程序可以使用多个性能线程来执行所需的读写组合。
可以发出API调用(例如,aai_nvme_dut_param_get)以查询ZNS特定的DUT参数,包括ZNS SSD中的区域的数量、LBA的区域大小、开放区域的最大数量以及LBA的最大和最小区域容量。ZNS SSD中的区域的数量、LBA的区域大小以及开放区域的最大(“阈值”)数量由ZNS DUT控制器主动通告。最大和最小区域容量由***控制器在扫描所有区域的容量后计算。如果所有区域的容量相同(这是目前最常见的情况),则最小和最大容量相等。
在读取DUT参数后,测试程序可以使用以下示例性API命令:
·aai_nvme_zone_display()-显示所有区域或仅显示满足特定条件的区域。
·aai_nvme_zone_info_update()-发出区域管理命令接收动作“报告区域”并更新有关区域的***进程信息。
·aai_nvme_zone_mgmt_recv()-发出区域管理命令接收和获取带有区域描述符列表的报告。
·aai_nvme_zone_mgmt_send()-在一个区域或所有区域上发出区域管理命令,即开启/关闭/完成/重置。
根据本发明的实施例,支持不同的ZNS性能测试操作模式。根据一些实施例,总是使用基于区域的测试模式来执行写性能测试,并且可以使用基于区域或基于LBA的操作模式来执行读取性能测试。
在基于LBA的ZNS性能测试中,IO以与传统命名空间中相同的方式而被发送。作为进一步的限制,只能访问ZNS的区域的有效区(例如,区域开始和区域容量之间的区)。
基于区域的ZNS性能测试将IO同时发送到多个区域。ZNS区域是操作单元,只有在当前处理的区域之一完成时才会选择下一个区域。下一个区域按顺序(例如,如果随机寻址为0)或随机(例如,如果随机寻址为100%)地选择。可以通过指定开始和结束LBA或通过指定特定的区域列表来选择区域。
对于写入操作,每个区域被限制为一次有一个正进行的写入操作(每个区域的队列大小=1)。但是,性能测试的队列大小会导致同时将写入IO提交到多个区域(多达控制器通告的限值)。
每个区域有一个正进行的写入的限制不适用于支持ZRWA并且在启用ZRWA选项的情况下开放的区域。出于验证目的,基于区域的读取以相同的方式和类似的约束执行。默认情况下,对于区域写入,测试程序可以在区域写入开始时发出区域重置命令,并且可以在区域写入结束时发出区域完成命令。
图4描绘了根据本发明实施例的用于测试ZNS SSD的示例性测试流程400。
在步骤405,DUT(ZNS SSD)被通电或以其他方式初始化以与测试***通信。步骤405包括扫描和识别所有命名空间并访问DUT区域描述符列表。每个区域描述符包括区域起始LBA、区域容量、区域属性、区域状态和区域写入指针。测试程序对命名空间的数量和每个命名空间的区域数量没有限制。
在步骤410,执行ZNS管理操作以在由控制***运行的GUI上显示所有区域、区域状态、区域属性、开放区域和重置区域的列表。
在步骤415,对DUT执行多个ZNS性能测试,其中预计DUT会通过这些ZNS性能测试。这些性能测试的结果可被报告给控制***并显示在GUI上。这些性能测试的结果可以包括被处理的区域的总数、区域被访问的次数、区域访问的分布(例如,在空间/时间上)以及区域被访问的顺序。
在步骤420,所有完整区域的列表被显示在控制***的GUI上的画面上。
在步骤425,对DUT执行多个ZNS性能测试,其中预计不会通过这些ZNS性能测试。
在步骤430,DUT被关闭。
在两个测试段(步骤415和425)中,测试方法使用三个线程同时运行例如三个性能测试:
·线程0在常规命名空间1上运行读取/写入性能测试。
·线程1在ZNS命名空间2上运行100%写入性能测试。
·线程2在分区ZNS命名空间2上运行100%读取性能测试。
图5描绘了根据本发明实施例的用于将数据写入ZNS SSD的区域的示例性LBA,这些区域使用区域写入指针(WP)515前面的有限大小区(“ZRWA”),该有限大小区允许对ZNS器件进行有限的非顺序写入。ZRWA 505在区域开放时被分配给该区域。每个器件的ZRWA 505的数量在控制器标识结构中被通告为MRWZ(最大随机写入区域)。
写入ZRWA 505(在WP和WP+ZRWAS之间)的IO不会立即提交到驱动闪存。此外,这些IO不会立即触发WP更改。IO可以通过两种不同的方式提交到驱动,并且可以移动WP:
1.显式提交命令使用带有“提交区域”动作的区域管理发送命令。
2.每当在隐式提交区域(ICR)510中提交写入时都会发生隐式提交。ICR 510可被定义为区域(WP+ZRWAS,WP+2*ZRWAS)。ZRWAS是ZRWA大小。在隐式提交区中写入将会移动WP515,以便隐式提交区中最近写入与新WP 520之间的距离等于ZRWA。
下面的表I列出了根据本发明实施例的用于ZNS SSD的ZNS性能测试的一组示例性API和值。API指令可以由CPU运行,然后发送到FPGA(FPGA耦合到包括大量ZNS SSD的负载板),以自动并行测试ZNS SSD。
VastCtrl enum values for ZNS perf tests:
/*每循环处理的区域的数量*/
eVAST_CTRL_NUM_ZONES_REQUESTED=29,
/*ZNS-特定选项*/
eVAST_CTRL_ZONE_OPTIONS=30,
/*区域列表指针*/
eVAST_CTRL_ZONE_LIST_PTR=31,
/*区域列表长度*/
eVAST_CTRL_ZONE_LIST_LEN=32,
/*在基于区域的访问模式中要同时读/写的区域的数量*/
eVAST_CTRL_NUM_CONCURRENT_ZONES=34,
/*在区域中要读或写的最大LBA*/
//预留35,
/*每ZRWA的IO的数量*/
eVAST_CTRL_ZRWA_NUM_IO=36,
/*在ZRWA中的随机IO的百分比*/
eVAST_CTRL_ZRWA_RANDOM_PERCENT=37,
/*用于ZRWA中的随机IO的种子*/
eVAST_CTRL_ZRWA_RANDOM_SEED=38,
/*区域覆写和覆读限值,以占区域容量的百分比来计*/
/*有效值:0(非限值)和1-99(限值)*/
eVAST_CTRL_ZONE_OVERWRITE_PERCENT_LIMIT=39,
enum VastCtrlZnsOption:
typedef enum
{
VczoResetZoneBeforeWritting=(1<<0),
VczoFinishFullyWrittenZone=(1<<1),
VczoLbaBasedAccess=(1<<4),
VczoUseZrwa=(1<<5),
VczoDefault=(VczoResetZoneBeforeWritting|
VczoFinishFullyWrittenZone),
//对于后向兼容性
VczoZoneRandomWriteAreaEn=VczoUseZrwa,
}VastCtrlZnsOption;
eVastPerfResults enum values for ZNS perftest results:
NVMe ZNS SW PDD
//ZNS处理
eVAST_PERF_READ_TOTAL_ZONES,
eVAST_PERF_WRITE_TOTAL_ZONES,
eVAST_PERF_TOTAL_ZONES,
}eVastPerfResults;
APIs for NVMe ZNS handling:
enum AaiNvmeDp
{
AaiNvmeDpNumZones=100,
AaiNvmeDpZoneSizeLbas=101,
AaiNvmeDpMaxZoneCapacityLbas=102,
AaiNvmeDpMinZoneCapacityLbas=103,
AaiNvmeDpMaxOpenZones=104,
AaiNvmeDpZrwaSize=105,//ZRWA大小
AaiNvmeDpEnforcedWdgaLbas=106,//强制的写数据粒度和对准,以LBA为单位
AaiNvmeDpZoneDescExtSizeBytes=107,//报告区域描述符扩展大小,以字节为单位
};
/**
//对于后向兼容性AaiNvmeDpRandomWriteAreaSize=AaiNvmeDpZrwaSize,
@param nsid命名空间ID.
@param param DUT参数,其中之一为AaiNvmeDp enums.
@对于指定DUT参数的返回值,(0或正整数)-成功,-1失败.
*/
int64_t aai_nvme_dut_param_get(uint32_t nsid,enum AaiNvmeDp param);
enum AaiNvmeZoneMgmtSendOpt
{
AaiNzmsDefault=0,
AaiNzmsSelectAll=1<<8,AaiNzmsZrwaAllocation=1<<9,//ZRWA分配
//对于后向兼容性AaiNvmeZoneMgmtDefault=AaiNzmsDefault,AaiNvmeZoneMgmtSelectAll=AaiNzmsSelectAll,
AaiNvmeZoneMgmtZrwaAllocation=AaiNzmsZrwaAllocation,AaiNzmsZRWAA=AaiNzmsZrwaAllocation,
VastStatus aai_nvme_zone_mgmt_send(uint8_t send_action,
uint64_t start_lba,
uint32_t zone_send_options,
void*descriptor_buf,
uint32_t descriptor_buf_size);
VastStatus aai_nvme_zone_mgmt_recv(enum nvme_zone_recv_actionrecv_action,
uint64_t start_lba,
enum nvme_zone_report_type recv_action_specific_field,uint8_tpartial_report,
void*buf,
uint32_t buf_size);
int32_t aai_nvme_zone_display(uint64_t start_lba,uint32_t max_zones,uint8_t zone_state,bool update_info);
VastStatus aai_nvme_zone_info_update(void);
enum NVMeZonePerfResultType
{
NVMeZoneFreqencyCount=1,//每个区域一个条目,条目[0]表示区域0被访问多少次
//如果DUT具有N个区域,则前N个是有效的
//目前,频率为针对前80000个区域被存储
//在性能测试开始时重置到默认条目
NVMeZoneAccessSequence=2,//条目[0]是被测试的第一区域,条目[1]是第二区域,目前直到前80000个条目被存储
/在性能测试开始时重置到默认值-1
};
int aai_nvme_zone_perf_result_get(int threadIndex,enumNVMeZonePerfResultType type,uint32_t*entries,uint32_t entry_count);
int aai_nvme_identify(uint32_t nsid,uint32_t cdw10,uint32_t cdw11,uint32_t cdw14,uint32_t timeout_ms,void*data,size_t data_len);
表I
关于图6,描绘了根据本发明的实施例的用于自动测试ZNS SSD的过程600的示例性计算机实施步骤序列。根据本发明的实施例,计算机实施步骤600可以使用基于Linux的操作***来执行,该操作***执行向多个ZNS SSD发出命令以执行测试操作的测试程序。当然,任何数量的市售计算机***都可以用作过程600的平台。测试操作可以根据本文所述的NVMe ZNS命令和自定义API命令来执行。对大量ZNS SSD并行执行多个测试程序提高了测试环境的速度和稳健性。
在步骤605,多个ZNS SSD被通电并初始化以与测试***通信。
在步骤610,测试***访问ZNS SSD以获得ZNS区域参数。步骤605可以包括发布向器件查询ZNS区域参数的API指令。一些ZNS区域参数可以由ZNS SSD通告。根据一些实施例,步骤610包括发布API指令以控制写入指针的位置或分配ZRWA以使用写入队列修改先前写入的数据。可以使用显式和/或隐式提交命令写入来自写入队列的数据。
在步骤615,测试***运行一个或多个测试程序以测试ZNS SSD。测试程序由站点模块的处理器(例如,CPU)运行。CPU通常是托管Linux OS的64位CPU。测试程序被配置为根据ZNS SSD的参数和几何形状测试ZNS SSD。通过并行测试大量ZNS SSD,提高了测试速度和质量,因为可以在给定时间测试更多设备,并且测试条件更接近类似于真实世界用例(例如,数据中心)。测试程序可以包括被设计为DUT会通过的性能测试以及被设计为DUT不会通过的性能测试。
在步骤620,测试***报告测试结果。例如,可以将测试结果报告给控制***并显示在由控制***呈现的图形用户界面上。
关于图7,根据本发明的实施例描绘了用于自动测试ZNS SSD的框图和数据流程图700。***控制器705是执行用于显示报告的测试结果的图形用户界面和手动控制测试程序参数的计算机***。***控制器705通过诸如千兆以太网的计算机网络与站点模块730的CPU 710通信。
处理器(例如CPU)710运行基于Linux的操作***,该操作***通过FPGA 715向器件发送API指令。指令可以包括专门为ZNS SSD设计的NVMe命令和API指令(参见表I)。
FPGA 715在ZNS SSD 720上执行由在CPU 710上执行的Linux OS上运行的测试程序定义的测试操作。测试结果由CPU 710访问并用于生成测试报告。测试报告可被发送到***控制器705用于存储和/或在图形用户界面上的画面上显示。
示例性测试***
本发明的实施例涉及用于对ZNS SSD执行DUT测试的电子***。可以使用自定义API同时测试大量ZNS SSD。以下讨论描述了一种这样的示例性电子***或计算机***,其可以用作实现本发明实施例的平台。
在图8的示例中,示例性计算机***812(例如,代理***或监督***)包括用于运行软件应用和操作***(例如,Linux或基于Linux的操作***)的中央处理单元(CPU)801。CPU通过一个或多个FPGA 811向多个DUT发送API指令和NVMe命令。FPGA 811耦合到多个ZNSSSD,用于使用ZNS SSD操作(例如,读、写和管理操作)进行测试。随机存取存储器802和只读存储器803存储供CPU 801使用的应用和数据。数据存储设备804为应用和数据提供非易失性存储并且可以包括HD或SSD。
通信或网络接口808允许计算机***812通过电子通信网络与其他计算机***、设备、网络或设备通信。可选的显示设备810可以是能够响应于来自计算机***812的信号而显示视觉信息的任何设备,并且例如可以包括平板触敏显示器。计算机***812的组件(包括CPU 801、存储器802/803、数据存储804、用户输入设备806和图形子***805)可以通过一个或多个数据总线800耦合。
在图8的实施例中,可选的图形子***805可以与数据总线和计算机***812的组件耦合。图形子***805将显示数据输出到可选的显示设备810。显示设备810可以使用HDMI、DVI、DisplayPort、VGA等通信地耦合到图形子***805。图形子***805可以在显示设备810上显示测试报告。
可以在由一台或多台计算机或其他设备运行的计算机可执行指令(例如程序模块)的一般上下文中描述一些实施例。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可以在各种实施例中根据需要进行组合或分布。
因此描述了本发明的实施例。尽管本发明已经在特定实施例中进行了描述,但应当理解,本发明不应被解释为受这些实施例的限制,而是根据所附权利要求来解释。

Claims (20)

1.一种测试分区命名空间(ZNS)固态驱动器(SSD)的方法,所述方法包括:
访问多个被测ZNS SSD的区域参数;
根据所述区域参数运行测试所述多个ZNS SSD的测试程序;以及
报告所述测试程序的测试结果。
2.如权利要求1所述的方法,其中,运行所述测试程序由运行Linux操作***的处理器来执行,并且所述方法还包括:所述处理器通过FPGA向所述多个ZNS SSD发送API指令,以根据所述测试程序使用所述区域参数来测试所述多个ZNS SSD。
3.如权利要求1所述的方法,其中,运行所述测试程序包括:并行地测试所述多个ZNSSSD。
4.如权利要求1所述的方法,其中,所述区域参数包括以下项中的至少一项:所述多个ZNS SSD中的区域的数量;所述ZNS SSD的区域大小;所述ZNS SSD的开放区域的最大数量;所述ZNS SSD的最大区域容量;以及所述ZNS SSD的最小区域容量。
5.如权利要求1所述的方法,还包括:从DUT控制器接收以下项中的至少一项:所述多个ZNS SSD中的区域的数量;所述多个ZNS SSD的区域大小;以及开放区域的最大数量。
6.如权利要求1所述的方法,还包括:
扫描所述多个ZNS SSD的所有区域以确定所述ZNS SSD的区域容量;以及
基于所述多个ZNS SSD的区域容量来计算所述ZNS SSD的最大区域容量和最小区域容量。
7.如权利要求1所述的方法,其中,所述ZNS SSD的区域包括相等的区域容量。
8.如权利要求1所述的方法,其中,运行所述测试程序包括:使用基于区域的测试模式来执行写入性能测试。
9.如权利要求1所述的方法,其中,运行所述测试程序包括:
使用基于区域的操作模式来执行读取性能测试;以及
使用逻辑块地址(LBA)操作模式来执行读取性能测试。
10.一种用于模拟被测器件的***,所述***包括:
处理器,所述处理器运行基于Linux的操作***;和
存储器,所述存储器与所述处理器通信,用于存储数据和指令,其中所述处理器运行指令以执行测试分区命名空间(ZNS)固态驱动器(SSD)的方法,所述方法包括:
访问多个被测ZNS SSD的区域参数;
根据所述区域参数运行测试所述多个ZNS SSD的测试程序;和
报告所述测试程序的测试结果。
11.如权利要求10所述的***,还包括:FPGA,所述FPGA与所述处理器和所述多个ZNSSSD通信,并且其中,所述方法还包括:向所述FPGA发送API指令,以根据所述测试程序使用所述区域参数来测试所述多个ZNS SSD。
12.如权利要求10所述的***,其中,运行所述测试程序包括:并行地测试所述多个ZNSSSD。
13.如权利要求10所述的***,其中,所述区域参数包括以下项中的至少一项:所述多个ZNS SSD中的区域的数量;所述多个ZNS SSD的区域大小;所述多个ZNS SSD的开放区域的最大数量;所述多个ZNS SSD的最大区域容量;以及所述多个ZNS SSD的最小区域容量。
14.如权利要求10所述的***,还包括:从ZNSDUT控制器接收以下项中的至少一项:所述多个ZNS SSD中的区域的数量;所述多个ZNS SSD的区域大小;以及开放区域的最大数量。
15.如权利要求10所述的***,其中,所述方法还包括:
扫描所述多个ZNS SSD的区域以确定所述ZNS SSD的区域容量;和
基于所述多个ZNS SSD的区域容量来计算所述多个ZNS SSD的最大区域容量和最小区域容量。
16.如权利要求10所述的***,其中,运行所述测试程序包括:
使用基于区域的操作模式来执行读取性能测试;以及
使用基于逻辑块地址(LBA)的操作模式来执行读取性能测试。
17.如权利要求10所述的***,其中,运行所述测试程序包括:
运行第一组测试,所述第一组测试被配置为会被所述多个ZNS SSD通过;和
运行第二组测试,所述第二组测试被配置为不会被所述多个ZNS SSD通过。
18.一种测试分区命名空间(ZNS)固态驱动器(SSD)的方法,所述方法包括:
根据ZNS SSD的区域参数运行测试程序以对所述ZNS SSD执行基于区域的测试,其中所述ZNS SSD包括多个区域;以及
收集所述测试程序的结果,其中,所述结果包括:
所述测试程序访问所述ZNS SSD的所述多个区域的顺序;和
所述测试程序访问所述多个区域的次数。
19.如权利要求18所述的方法,其中,所述测试程序的结果被存储在表中。
20.如权利要求18所述的方法,其中,运行所述测试程序包括:
运行第一组测试,所述第一组测试被配置为会被所述ZNS SSD通过;和
运行第二组测试,所述第二组测试被配置为不会被所述ZNS SSD通过。
CN202210544596.6A 2021-05-28 2022-05-19 对分区命名空间固态驱动器的并行自动测试的***和方法 Pending CN115408212A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/333,729 2021-05-28
US17/333,729 US20220382668A1 (en) 2021-05-28 2021-05-28 Systems and methods for concurrent and automated testing of zoned namespace solid state drives

Publications (1)

Publication Number Publication Date
CN115408212A true CN115408212A (zh) 2022-11-29

Family

ID=84158450

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210544596.6A Pending CN115408212A (zh) 2021-05-28 2022-05-19 对分区命名空间固态驱动器的并行自动测试的***和方法

Country Status (4)

Country Link
US (1) US20220382668A1 (zh)
KR (1) KR20220161200A (zh)
CN (1) CN115408212A (zh)
TW (1) TW202303403A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115543224A (zh) * 2022-11-30 2022-12-30 苏州浪潮智能科技有限公司 基于zns ssd的文件***控制方法、装置及设备
CN116448393A (zh) * 2023-06-08 2023-07-18 深圳市星汉激光科技股份有限公司 激光器自动测试的控制方法、设备、电子设备及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7036062B2 (en) * 2002-10-02 2006-04-25 Teseda Corporation Single board DFT integrated circuit tester
US20100023294A1 (en) * 2008-07-28 2010-01-28 Credence Systems Corporation Automated test system and method
US8718967B2 (en) * 2010-05-28 2014-05-06 Advantest Corporation Flexible storage interface tester with variable parallelism and firmware upgradeability
US9952276B2 (en) * 2013-02-21 2018-04-24 Advantest Corporation Tester with mixed protocol engine in a FPGA block
US20140236527A1 (en) * 2013-02-21 2014-08-21 Advantest Corporation Cloud based infrastructure for supporting protocol reconfigurations in protocol independent device testing systems
US10162007B2 (en) * 2013-02-21 2018-12-25 Advantest Corporation Test architecture having multiple FPGA based hardware accelerator blocks for testing multiple DUTs independently
US11009550B2 (en) * 2013-02-21 2021-05-18 Advantest Corporation Test architecture with an FPGA based test board to simulate a DUT or end-point
KR101631461B1 (ko) * 2014-09-30 2016-06-17 주식회사 네오셈 메모리 소자 테스트 장치 및 방법
US10634723B2 (en) * 2017-01-03 2020-04-28 Advantest Corporation Method and system for acquisition of test data
US10379158B2 (en) * 2017-02-09 2019-08-13 Advantest Corporation Real-time capture of traffic upon failure for protocol debug
US10948540B2 (en) * 2018-07-27 2021-03-16 Advantest Corporation Integrated protocol analyzer configured within automated test equipment (ate) hardware
US10693568B2 (en) * 2018-07-27 2020-06-23 Advantest Corporation Adapting serdes receivers to a UFS receiver protocol
US10914784B2 (en) * 2018-07-27 2021-02-09 Advantest Corporation Method and apparatus for providing UFS terminated and unterminated pulse width modulation support using dual channels
US10761138B2 (en) * 2018-09-18 2020-09-01 Advantest Corporation Low cost built-in-self-test centric testing
US11302412B2 (en) * 2019-06-03 2022-04-12 Advantest Corporation Systems and methods for simulated device testing using a memory-based communication protocol
US20210182166A1 (en) * 2019-12-12 2021-06-17 Western Digital Technologies, Inc. Zoned namespace management of non-volatile storage devices
US11200162B2 (en) * 2020-04-28 2021-12-14 Western Digital Technologies, Inc. Condensing logical to physical table pointers in SSDs utilizing zoned namespaces
US11550727B2 (en) * 2020-06-18 2023-01-10 Micron Technology, Inc. Zone-aware memory management in memory subsystems
US11868643B2 (en) * 2020-12-16 2024-01-09 Micron Technology, Inc. Background memory scan block selection

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115543224A (zh) * 2022-11-30 2022-12-30 苏州浪潮智能科技有限公司 基于zns ssd的文件***控制方法、装置及设备
CN116448393A (zh) * 2023-06-08 2023-07-18 深圳市星汉激光科技股份有限公司 激光器自动测试的控制方法、设备、电子设备及存储介质
CN116448393B (zh) * 2023-06-08 2023-09-15 深圳市星汉激光科技股份有限公司 激光器自动测试的控制方法、设备、电子设备及存储介质

Also Published As

Publication number Publication date
US20220382668A1 (en) 2022-12-01
TW202303403A (zh) 2023-01-16
KR20220161200A (ko) 2022-12-06

Similar Documents

Publication Publication Date Title
CN115408212A (zh) 对分区命名空间固态驱动器的并行自动测试的***和方法
KR101254647B1 (ko) 솔리드 스테이트 드라이브 테스트장치
CN101908379B (zh) 基于访问时间调整对非易失性半导体存储器的访问
US8239618B2 (en) System and method for emulating preconditioning of solid-state device
US10387239B2 (en) Detecting memory failures in the runtime environment
CN112035299B (zh) 用基于存储器的通信协议进行仿真设备测试的***和方法
CN111880727A (zh) 一种用于硬盘端口号灵活分配的硬件架构及其实现方法
CN103064792A (zh) 数据写入方法及装置
US11748241B2 (en) Method and apparatus for generating simulated test IO operations
US20140047287A1 (en) Solid state drive tester
CN110427289A (zh) 自动测试ssd掉电对数据一致性影响的方法及装置
CN111540400B (zh) 一种写放大系数测试方法、装置及电子设备和存储介质
CN109445691A (zh) 一种提高ftl算法开发和验证效率的方法及装置
WO2017045500A1 (zh) 存储阵列管理方法及装置
US20200286575A1 (en) Apparatus and Method for Testing Storage Device in Power Interruptions
CN112445670B (zh) 一种eMMC测试方法和装置
CN116560985B (zh) 芯片设备测试控制方法、上位机、设备及介质
CN104899158A (zh) 访存优化方法和装置
CN116701175A (zh) 服务器的gds***读写性能测试方法、装置和电子设备
US20170154142A1 (en) Method and apparatus for simulating slow storage disk
US8966133B2 (en) Determining a mapping mode for a DMA data transfer
US11004532B2 (en) Method and system for analyzing traffic data
US20240175916A1 (en) Systems and methods for testing virtual functions of a device under test
CN109032859A (zh) 一种nvme ssd逻辑块检测方法、***及相关装置
CN117055824B (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