基于所执行的访问命令对半导体存储功耗的测试的制作方法

文档序号:11530063阅读:154来源:国知局
基于所执行的访问命令对半导体存储功耗的测试的制造方法与工艺



背景技术:

1.背景和相关技术

固态驱动器(ssd)制造商经常基于与非(nand)数据表中的最大电流规范设计电源电路。与非数据表可以包括用于与非的最大均方根(rms)电流。然而,与非数据表通常包括关于与非的功率特性的很少(若有的话)附加信息。

在运行期间,与非芯片的真实电流汲取频繁展示接近3xrms电流的尖峰(甚至可能更高)。例如,跨ssd与非阵列中的若干管芯的电流尖峰可能同时出现。同时的电流尖峰可能破坏ssd的电源电路,使得ssd发生故障。仅基于与非数据表中的信息,电路设计者可能意识不到电流尖峰的潜在幅值。

标准测试技术可以用于获得用于与非的一些附加功率特性信息。然而标准测试技术很少捕获由于同时功率尖峰而引起的损坏功率情况,因为主机生成的工作负荷通常并不特别地一次影响多个(或所有)与非管芯。



技术实现要素:

本发明扩展到用于测试存储设备电源电路的方法、系统以及计算机程序产品。存储设备控制器包括控制器固件和控制器存储装置。测试程序嵌在存储设备控制器中。在一个方面中,存储设备控制器接收发起功率测试的命令。存储设备控制器响应于接收命令执行测试程序。测试程序访问测试矩阵。测试矩阵包括多个存储设备组件命令模式(例如,与非命令模式)。

测试程序使用测试矩阵来测试由多个存储设备组件共享(例如,由与非快闪存储器设备的阵列共享)的共享电源电路的功率性能。从控制器向多个存储设备组件发布多个命令模式中的每个命令模式。标识引起共享电源电路中的最大总电流汲取的命令模式。

在另一个方面中,存储设备控制器接收发起所指定存储设备组件命令模式(例如,所指定的与非命令模式)的命令。测试程序响应于接收命令,访问所指定的存储设备组件命令模式。测试程序通过从存储设备控制器向一个或多个存储设备组件发布所指定的存储设备组件命令模式来测试一个或多个存储设备组件的功率特性。所指定的存储设备组件命令模式可以被发布多次。

本发明内容被提供为以简化形式介绍下面在具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护主题的范围。

本发明的另外特征和优点将在下面的描述中阐述,并且部分将从描述变得明显,或者可以通过实践本发明来了解。本发明的特征和优点可以借助于在所附权利要求中特别指出的手段和组合来实现并获得。本发明的这些和其他特征将从以下描述和所附权利要求变得更充分明显,或者可以通过如下文中阐述的本发明的实践来了解。

附图说明

为了描述可以获得本发明的上述和其他优点和特征的方式,将参照在附图中图示的本发明的具体实现来提出对上面简略描述的本发明的更具体的描述。理解这些附图仅描绘了本发明的一些实现且因此不被认为限制本发明范围,将通过使用附图来另外具体且详细地描述并说明本发明,附图中:

图1图示了促进测试存储设备电源电路的示例计算机架构。

图2图示了用于测试存储设备电源电路的示例方法的流程图。

图3图示了用于测试存储设备电源电路的示例方法的流程图。

具体实施方式

本发明扩展到用于测试存储设备电源电路的方法、系统以及计算机程序产品。在一个方面中,存储设备控制器包括控制器固件和控制器存储装置。测试程序嵌在存储设备控制器中。存储设备控制器接收发起功率测试的命令。存储设备控制器响应于接收命令而执行测试程序。测试程序访问测试矩阵。测试矩阵包括多个存储设备组件命令模式(例如,与非命令模式)。

测试程序使用测试矩阵来测试由多个存储设备组件共享(例如,由与非快闪存储器设备的阵列共享)的共享电源电路的功率性能。从控制器向多个存储设备组件发布多个命令模式中的每个命令模式。标识引起共享电源电路中的最大总电流汲取的命令模式。

在另一个方面中,存储设备控制器接收发起所指定存储设备组件命令模式(例如,所指定的与非命令模式)的命令。测试程序响应于接收命令来访问所指定的存储设备组件命令模式。测试程序通过从存储设备控制器向一个或多个存储设备组件发布所指定的存储设备组件命令模式来测试一个或多个存储设备组件的功率特性。所指定的存储设备组件命令模式可以被发布多次。

本发明的实现可以包括或使用专用或通用计算机,该计算机包括计算机硬件,诸如例如,一个或多个处理器和系统存储器,如下面更详细讨论的。本发明范围内的实现还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这种计算机可读介质可以是可以由通用或专用计算机系统访问的任意可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质(设备)。承载计算机可执行指令的计算机可读介质是传输介质。由此,用示例的方式且不限制,本发明的实现可以包括至少两个明显不同种类的计算机可读介质:计算机存储介质(设备)和传输介质。

计算机存储介质(设备)包括ram、rom、eeprom、cd-rom、固态驱动器(“ssd”)、快闪存储器、相变存储器(“pcm”)、其他类型的存储器、其他光盘存储器、磁盘存储器或其他磁存储设备或可以用于存储计算机可执行指令或数据结构形式的期望程序代码装置且可以由通用或专用计算机访问的任意其他介质。

“网络”被定义为使得能够在计算机系统和/或模块和/或其他电子设备之间传送电子数据的一个或多个数据链路。当通过网络或另一通信连接(硬接线的、无线的或硬接线或无线的组合的)向计算机传送或提供信息时,计算机将连接适当地视为传输介质。传输介质可以包括网络和/或可以用于承载计算机可执行指令或数据结构形式的期望程序代码装置且可以由通用或专用计算机访问的网络和/或数据链路。上述的组合也应包括在计算机可读介质的范围内。

进一步地,在到达各种计算机系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以从传输介质自动传送到计算机存储介质(设备)(或反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓冲在网络接口模块(例如,“nic”)内的ram中,然后最终被传送到计算机系统ram和/或计算机系统处更不易失的计算机存储介质(设备)。由此,应理解,计算机存储介质(设备)可以被包括在也(或甚至主要)使用传输介质的计算机系统组件中。

计算机可执行指令例如包括当在处理器处执行时使得通用计算机、专用计算机或专用处理设备执行特定功能或特定功能组的指令和数据。计算机可执行指令例如可以是二进制、中间格式指令(诸如汇编语言甚至源代码)。虽然已经用特定于结构特征和/或方法动作的语言描述了主题,但要理解,所附权利要求中定义的主题不是必须限于上面描述的所述特征或动作。相反,所述特征和动作被公开为实现权利要求的示例形式。

本领域技术人员将理解,本发明可以在具有许多类型的计算机系统配置(包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、可穿戴设备、多处理器系统、基于微处理器或可编程消费电子产品、网络pc、微计算机、大型计算机、移动电话、pda、平板电脑、寻呼机、手表、路由器、交换机等)的网络计算环境中实践。本发明还可以在分布式系统环境中实践,在分布式系统环境中,借助网络(由硬接线数据链路、无线数据链路或由硬接线和无线数据链路的组合)链接的本地和远程计算机系统这两者执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备两者中。

本发明还可以实现在云计算环境中。在该描述和以下权利要求中,“云计算”被定义为用于使能对可配置计算资源的共享池的按需网络访问的模型。例如,可以在市场中采用云计算,以提供对可配置计算资源的共享池的普遍存在且方便的按需访问。可配置计算资源的共享池可以经由虚拟化被快速供应,并被发布为具有低的管理努力或服务供应商交互,并然后被相应地缩放。

云计算模型可以包括各种特性,诸如例如,按需自助服务、广泛的网络访问、资源池化、快速弹性、可计量服务等。云计算模型还可以显露各种服务模型,诸如例如,软件即服务(“saas”)、平台即服务(“paas”)以及基础设施即服务(“iaas”)。云计算模型还可以使用不同部署模型(诸如私有云、社区云、公共云、混合云等)来部署。在该描述且在权利要求中,“云计算环境”是采用云计算的环境。

在该说明书且在以下权利要求中,“快闪存储器”被定义为可以电擦除且重编程的电子非易失性计算机存储介质。

在该说明书和以下权利要求中,“或非(nor)快闪存储器”被定义为个体快闪存储器单元的内部特性呈现类似于或非门的特性的特性的快闪存储器。

在该说明书和以下权利要求中,“与非(nand)快闪存储器”被定义为独立快闪存储器单元的内部特性成像类似于与非门的特性的特性的快闪存储器。

在该说明书中且在以下权利要求中,“固态驱动器”被定义为使用集成电路组件来永久存储数据的数据存储设备。固态驱动器(ssd)的集成电路组件可以包括用于存储数据的“与非”或“或非”快闪存储器设备。

在该说明书且在以下权利要求中,“通用串行总线”(usb)快闪存储器被定义为使用具有集成usb接口的与非快闪存储器设备的数据存储设备。

图1图示了促进测试存储设备电源电路的示例计算机架构100。参照图1,计算机架构100包括固态驱动器(ssd)101和计算机系统112。ssd101和计算机系统112中的每一个可以通过网络(或其一部分)(诸如例如,系统总线、局域网(“lan”)、广域网(“wan”)以及甚至因特网)连接到彼此。因此,ssd101和计算机系统112中的每一个以及任意其他被连接的计算机系统及其组件可以通过网络创建消息相关数据并交换消息相关数据(例如,系统总线消息、因特网协议(“ip”)数据电报以及使用ip数据电报的其他更高层协议(诸如传输控制协议(“tcp”)、超文本传输协议(“http”)、简单邮件传输协议(“smtp”)等、其他非数据电报协议等))。

如所描绘的,固态驱动器(ssd)101还包括控制器102、与非阵列108以及共享电源电路113。控制器102包括固件103和存储装置106。与非阵列108包括多个与非快闪存储器设备(包括与非设备108a、108b、108c等)。与非设备108a、108b、108c等可以用于在ssd101处永久地存储数据。与非设备108a、108b、108c等均从共享电源电路113接收功率。

控制器102可以是处理器,该处理器执行固件级代码以执行各种功能,诸如例如,纠错、磨损均衡、坏块映射、读取擦洗、读取和写入缓存、垃圾收集等。

ssd101还包括输入121、122、123以及124。

通常,其他设备可以通过输入121向ssd101提交工作负荷。例如,计算机系统112可以通过输入121向ssd101提交工作负荷119。工作负荷可以指示在与非阵列108内存储、移动、复制、读取、擦除、重写等数据(例如,文件)。控制器102可以将工作负荷翻译成对应的与非命令。例如,控制器102可以将工作负荷119翻译成一个或多个与非命令。控制器102可以向与非阵列108发送与非命令,以实现在工作负荷119中表达的意图。用于实现工作负荷的与非命令可以包括读取、写入以及擦除以及在控制器和与非阵列之间传送数据的任意其他命令。

固件103包括测试程序104。测试程序104可以被执行为测试与非阵列108或内部所包括的一个或多个与非设备的功率特性。在一个方面中,测试程序104包括用于在执行期间生成测试矩阵的可执行代码。在另一个方面中,测试程序104指代存储装置106中的测试矩阵,诸如例如,测试矩阵107。

测试矩阵可以包含可以向与非阵列108或内部包括的一个或多个与非设备发布的多个不同命令模式。每个不同命令模式可以包括要按指定顺序和/或以指定时刻向与非阵列108或内部包括的一个或多个与非设备发布的与非命令(例如,写入、读取、擦除等)的不同组合。与非阵列108可以接收命令模式并跨一个或多个(并且有可能为全部)与非设备实现命令模式。

在一个方面中,在测试矩阵中的不同命令模式中,至少一个命令模式相对于测试矩阵中的其他命令模式引起与非阵列108和/或共享电源电路113中的更高电流汲取。引起更高电流汲取的命令模式可以在被标识并可能地单独存储在存储装置106中。在另一个方面中,在发布命令模式期间,命令模式可能引起使得与非阵列108和/或共享电源电路113发生故障或另外以不期望的方式运行的足够高的电流汲取。引起故障或非期望运行的命令模式可以在被标识并可能地单独存储在存储装置106中(例如,存储在日志109中)。

其他设备(诸如例如,计算机系统112)可以向输入122提交浏览测试矩阵中的命令模式的请求。控制器102可以在输入122处检测请求,并且发起测试程序104,以浏览测试矩阵中的每个命令模式。其他设备(诸如例如,计算机系统112)可以向输入123提交运行指定命令模式(或命令模式的指定子集)的请求。控制器102可以在输入123处检测请求,并且发起运行特定命令模式(或命令模式的特定子集)的测试程序10。在一个方面中,当在输入123处检测到请求时,控制器102发起测试程序104,以运行先前被标识为引起与非阵列108和/或共享电源电路113中更高的电流汲取的命令模式。在另一个方面中,当在输入123处检测到请求时,控制器102发起测试程序104,以运行先前被标识为引起与非阵列108和/或共享电源电路113处的故障或非期望操作的命令模式。

测试程序104可以用于合格性设置或生产设置中,以测试与非阵列108和/或共享电源电路113的功率特性。外部监测设备(诸如例如,仪表或镜(scope))可以电连接到与非阵列108和/或共享电源电路113。当在与非阵列处实现不同命令模式时,外部监测设备可以监测与非阵列108和/或共享电源电路113的组件处的电特性。外部监测设备可以向输入124提交反馈。控制器102可以在输入124处从外部监测设备接收反馈。控制器102可以将反馈(或其部分)存储在存储装置106中(诸如,例如,存储在日志109中)。在一个方面中,命令模式连同在命令模式的实现期间监测的与非108的功率特性一起存储。

图2图示了用于测试存储设备电源电路的示例方法200的流程图。将关于计算机架构100的组件和数据描述方法200。

方法200包括在控制器处接收发起功率测试的命令(201)。例如,计算机系统112可以向输入122发送测试命令131。控制器102可以在输入122处接收测试命令131。方法200包括响应于接收命令而执行嵌在控制器中的测试程序(202)。例如,控制器102可以响应于测试命令131执行测试程序104(该程序嵌在固件103中)。

方法200包括测试程序访问测试矩阵,该测试矩阵包括多个快闪存储器命令模式(203)。例如,在一个方面中,测试程序104从存储装置106访问测试矩阵107。如所述的,测试矩阵107包括命令模式107a、107b、107c等。另选地,在另一个方面中,测试程序104执行可执行代码的一部分,以生成测试矩阵107。

方法200包括测试程序使用测试矩阵来测试快闪存储器设备的阵列的功率性能(204)。例如,测试程序104可以使用测试矩阵107来测试与非阵列108和/或共享电源电路113的功率性能。

测试快闪存储器设备的阵列的功率性能包括对于在多个快闪存储器命令模式中的每个快闪存储器命令模式,从控制器向快闪存储器设备的阵列发布快闪存储器命令模式(205)。例如,测试程序104可以向与非阵列108发布命令模式107a、107b、107c等中的每一个。与非阵列108可以尝试在接收命令模式107a、107b、107c等中的每一个时实现命令模式107a、107b、107c等。如所述的,命令模式可以包括与非命令(包括读取、写入、擦除以及在控制器和与非阵列之间传送数据的任意其他命令)的时间序列。

监测设备141(诸如例如,仪表或镜)可以电连接到共享电源电路113和/或个体与非设备108a、108b、108c等的电源电路。监测设备141可以在实现命令模式时监测共享电源电路113处和/或个体与非设备的电源电路处的功率特性。监测设备141可以向输入124和/或另一个计算机系统(例如,计算机系统112)发送反馈142(例如,电源电路上的所测量电流汲取)。控制器102可以在输入124处接收反馈142。测试程序124可以将命令模式和命令模式的对应反馈记录在日志109中。

监测设备141可以被包括在计算机系统112中或与计算机设备112分离。

计算机系统112和/或另一个计算机系统还可以维持命令模式和对应的反馈142,以供随后使用和分析。

测试快闪存储器设备的阵列的功率性能包括标识引起快闪存储器设备的阵列中的最大总电流汲取的快闪存储器命令模式(206)。例如,基于各种不同命令模式的反馈142,测试程序104(或计算机系统112处或某一其他计算机系统处的模块)可以将命令模式107c标识为引起与非阵列108和/或共享电源电路113中的最大总电流汲取的命令模式。

测试程序104可以将命令模式107c单独地存储在存储装置106中(和/或可以向计算机系统112或某一其他计算机系统发送命令模式107c的指示)。命令模式107c然后可以用于更严格地测试与非阵列108的功率性能。例如,可以在一时间段期间以指定时间间隔(例如,在微秒或毫秒的量级上)向与非阵列108(重复地)发布命令模式107c。

由此可见,测试程序104可以实质上搜索测试矩阵107,以标识引起与非阵列108和/或共享电源电路113中的更高电流汲取的命令模式。测试程序104还可以搜索测试矩阵107,以标识引起与非阵列108和/或共享电源电路113处故障或其他非期望操作的命令模式。例如,测试程序104可以系统地前进穿过最大数量的运行每种类型的操作(例如,读取、写入、擦除以及在控制器和与非阵列之间传送数据的任意其他命令)的与非设备。

快闪存储器设备的阵列(例如,与非阵列)在实现引起更高电流汲取的一个或多个命令模式中的任意一个时可以能够如期望的运行。由此可见,测试程序104可以标识相对于其他命令模式引起快闪存储器设备的阵列(例如,与非阵列)中的最高可能电流汲取的命令模式。另一方面,可以存在任意数目的命令模式,其在被实现时使得快闪存储器设备的阵列(例如,与非阵列)和/或共享电源电路(例如,由于超过电组件的性能的电流汲取)发生故障或另外以非期望方式运行。测试程序104可以标识引起快闪存储器设备的阵列和/或共享电源电路中的故障和/或其他非期望操作的任意命令模式。

在一个方面中,测试矩阵107被配置为实现如下情况,激活阵列(例如,与非阵列108)中的所有快闪存储器设备,以便更完全地测试ssd101的电源电路设计。

图3图示了用于测试存储设备电源电路的示例方法300的流程图。将关于计算机架构100的组件和数据描述方法300。

方法300包括在控制器处接收发起功率测试的命令,功率测试先前从用于测试快闪存储器设备的阵列的功率特性的多个功率测试中标识,功率测试定义快闪存储器命令的模式(301)。例如,计算机系统112可以向输入123发送特定模式命令132。控制器102可以在输入123处接收特定模式命令132。特定模式命令132可以是发起先前从测试矩阵107标识的所指定命令模式的命令。

在一个方面中,特定模式命令132请求发布引起更高电流汲取的命令模式。例如,特定模式命令132可以是发起命令模式107c的命令。特定模式命令132具体可以标识命令模式107c。另选地,输入123具体可以被配置用于当在输入123处检测到请求时触发所标识更高电流汲取命令模式的发起。

在其他方面中,输入123可以用于标识在测试矩阵107中包含的任意命令模式(不管测试矩阵107是单独存储还是由测试程序104在运行时生成)。

方法300包括响应于接收命令执行嵌在控制器中的测试程序(302)。例如,控制器102可以响应于接收特定模式命令132而执行测试程序104(该程序嵌在固件103中)。方法300包括测试程序访问功率测试(303)。例如,测试程序104可以访问命令模式107c(或某一其他指定的命令模式)。测试程序104可以从存储器106访问命令模式107c(或某一其他指定的命令模式)。另选地,测试程序104可以在运行时生成命令模式107c(或某一其他指定的命令模式)。

方法300包括测试程序通过从控制器向一个或多个快闪存储器设备发布命令的模式来测试在快闪存储器设备的阵列中包括的一个或多个快闪存储器设备的功率特性(304)。例如,控制器102可以向与非阵列108或内部包括的一个或多个与非设备发布命令模式107c,以测试以下内容中的一个或多个:与非阵列108的功率特性、与非阵列中包括的一个或多个与非设备的功率特性以及共享电源电路113的功率特性。与非阵列108或内部包括的一个或多个与非设备可以实现命令序列107c。如所述的,命令模式可以包括与非命令(包括读取、写入、擦除以及在控制器和与非阵列之间传送数据的任意其他命令)的时间序列。

在一个方面中,控制器102以指定的时间间隔(例如,在微秒或毫秒的量级上)向与非阵列108重复发布命令模式107c。当在与非阵列108处重复实现命令模式107c时,监测设备141可以监测与非阵列108和/或共享电源电路113随着时间的功率特性。监测设备141可以向控制器102提供反馈。

本发明的方面还可以应用于测试通用串行总线(usb)闪盘驱动器中包括的与非阵列。测试程序可以嵌在usb控制器中。测试程序可以(可能从测试矩阵)向usb闪盘驱动器中的与非设备发布命令模式。可以记录引起更高电流汲取、引起故障或引起其他非期望操作的命令模式。

本发明的方面还可以用于测试其他类型的存储设备(诸如例如,磁驱动器、光驱动器、基于或非(nor)的快闪存储器等)的电源组件。在一个方面中,测试程序被嵌在磁硬盘驱动器的控制器中的固件中。测试程序可以发布不同的命令模式,以使用在磁硬盘驱动器的多个组件之中共享的共享电源电路。测试程序还可以使用不同命令模式来跨一个或多个磁盘片使用读/写头。可以记录引起更高电流汲取、故障或其他非期望操作的命令模式。

本发明的方面可以被调整为解释存储设备处的限制。测试开发人员在设计测试程序和/或测试矩阵时可以考虑对飞行中(in-flight)操作的数量的限制。例如,可以是控制器的缓冲器空间可以容纳指定数量的飞行中读取。由此可见,测试程序可以被设计为限制关于一种类型的操作(例如,读取操作)有效的指定数量的与非设备,但具有关于其他类型的操作有效的其他与非设备。测试程序还可以被设计为考虑数据传送和快闪存储器操作是否使用同一功率轨。

本发明可以在不偏离其精神或必要特性的情况下以其他指定形式来实现。所述实施方式要在所有方面仅被认为是说明性的而不是限制性的。因此,本发明的范围由所附权利要求而不是由前述描述来指示。进入权利要求等同物的意义和范围内的所有变化要包含在它们的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1