CN110799934A - 用于执行基于文件的固件命令和收集响应数据的存储系统和方法 - Google Patents
用于执行基于文件的固件命令和收集响应数据的存储系统和方法 Download PDFInfo
- Publication number
- CN110799934A CN110799934A CN201880040944.8A CN201880040944A CN110799934A CN 110799934 A CN110799934 A CN 110799934A CN 201880040944 A CN201880040944 A CN 201880040944A CN 110799934 A CN110799934 A CN 110799934A
- Authority
- CN
- China
- Prior art keywords
- file
- memory
- command
- storage system
- host
- 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.)
- Granted
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/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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
- G06F16/196—Specific adaptations of the file system to access devices and non-file objects via standard file system access operations, e.g. pseudo file 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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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
- G06F3/0643—Management of files
-
- 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/0658—Controller construction arrangements
-
- 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/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- 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
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种用于执行基于文件的固件命令和收集响应数据的存储系统和方法。在一个实施方案中,提供了一种存储系统,包括存储器和控制器。所述控制器被配置为:接收来自与所述存储系统通信的主机的将数据写入文件中的请求,其中所述文件由文件路径名称来识别;确定所述文件路径名称是否匹配预定文件路径名称;响应于确定所述文件路径名称不匹配所述预定文件路径名称来将所述数据写入所述文件中;以及响应于确定所述文件路径名称匹配所述预定文件路径名称来执行由所述数据表示的命令。本发明提供了其他实施方案。
Description
背景技术
某些存储系统由经由应用层与存储系统进行通信的主机使用,在文件系统目录中的特定文件路径中发送读取和写入文件的请求。通过经由应用层进行通信,此类主机经由文件系统而不是经由逻辑块地址(LBA)来存取存储系统。但是,存储系统的某些诊断和配置功能只能经由逻辑块地址存取。因此,用户可能需要将存储系统返回给制造商以执行该功能。
附图说明
图1A是一个实施方案的非易失性存储系统的框图。
图1B是示出一个实施方案的存储模块的框图。
图1C是示出一个实施方案的分级存储系统的框图。
图2A是示出根据一个实施方案的图1A所示的非易失性存储系统的控制器的部件的框图。
图2B是示出根据一个实施方案的图1A所示的非易失性存储器存储系统的部件的框图。
图3是一个实施方案的主机和存储系统的框图。
图4是用于执行基于文件的固件命令的一个实施方案的方法的流程图。
图5是用于将响应数据收集到所执行的基于文件的固件命令的一个实施方案的方法的流程图。
具体实施方式
概述
通过介绍,以下实施方案涉及一种用于执行基于文件的固件命令和收集响应数据的存储系统和方法。在一个实施方案中,提供了一种包括存储器和与该存储器通信的控制器的存储系统。该控制器被配置为:接收来自与存储系统通信的主机的将数据写入文件中的请求,其中文件由文件路径名称来识别;确定文件路径名称是否与预定文件路径名称匹配;响应于确定文件路径名称不匹配预定文件路径名称来将数据写入文件中;以及响应于确定文件路径名称匹配预定文件路径名称来执行由数据表示的命令。
在一些实施方案中,控制器被进一步配置为在执行命令之后将对命令的响应写入文件中。
在一些实施方案中,控制器被进一步配置为:接收来自主机的读取文件的请求;以及响应于接收到来自主机的读取文件的所述请求来将对命令的响应发送至主机。
在一些实施方案方案中,命令被加密,并且其中控制器被进一步配置为在执行命令之前对命令解密。
在一些实施方案中,控制器被进一步配置为识别与文件路径名称相关联的逻辑块地址,并且其中控制器被配置为通过确定与文件路径名称相关联的逻辑块地址是否匹配预定逻辑块地址来确定文件路径名称是否匹配预定文件路径名称。
在一些实施方案中,命令包括诊断命令。
在一些实施方案中,命令包括配置命令。
在一些实施方案中,存储器包括三维存储器。
在一些实施方案中,存储系统可移除地连接到主机。
在另一个实施方案中,提供了一种用于在存储系统中执行命令的方法。该方法在包括存储器的存储系统中执行。该方法包括:接收来自主机的将数据写入存储器中的文件中的请求;基于文件在存储器的目录结构中的位置,确定数据表示要执行的命令而不是要写入文件中的数据;以及执行命令。
在一些实施方案中,该方法还包括在执行命令之后将响应写入命令。
在一些实施方案中,该方法还包括接收来自主机的读取文件的请求;以及将对命令的响应发送至主机。
在一些实施方案中,命令被加密,并且其中该方法还包括在执行之前对命令解密。
在一些实施方案中,存储系统基于相关联的逻辑块地址识别文件在目录结构中的位置。
在一些实施方案中,命令包括诊断命令。
在一些实施方案中,命令包括配置命令。
在一些实施方案中,存储器包括三维存储器。
在一些实施方案中,存储系统可移除地连接到主机。
在另一个实施方案中,提供了一种存储系统,该存储系统包括:存储器;用于识别用于在存储器系统中执行固件命令的基于文件的请求的装置;以及用于执行固件命令的装置。
在一些实施方案中,存储器包括三维存储器。
其他实施方案是可行的,并且实施方案中的每个可单独使用或组合在一起使用。因此,现在将参考附图对各种实施方案进行描述。
实施方案
在图1A-图1C中示出适用于实现这些实施方案的各方面的存储系统。图1A是示出根据本文所述的主题的一个实施方案的非易失性存储系统100的框图。参考图1A,非易失性存储系统100包括控制器102和可由一个或多个非易失性存储器管芯104组成的非易失性存储器。如本文所述,术语管芯是指在单个半导体基板上形成的非易失性存储器单元的集合,以及用于管理那些非易失性存储器单元的物理操作的相关联的电路。控制器102与主机系统进行交互,并且将用于读取操作、编程操作和擦除操作的命令序列传输到非易失性存储器管芯104。
控制器102(其可以是非易失性存储器控制器(例如闪存、Re-RAM、PCM或MRAM控制器))可采用以下形式:例如,处理电路、微处理器或处理器,以及存储可由(微)处理器执行的计算机可读程序代码的计算机可读介质(例如固件)、逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌入式微控制器。控制器102可以配置有硬件和/或固件,以执行下文描述并且在流程图中示出的各种功能。另外,示出为在控制器内部的一些部件可也存储在控制器外部,并且可以使用其他部件。此外,短语“操作地与...通信”可能意味着直接或间接地(有线或无线)与一个或多个部件通信、通过一个或多个部件通信,其可在本文中示出或未示出。
如本文所用,非易失性存储器控制器是管理存储在非易失性存储器上的数据并且与主机诸如计算机或电子设备通信的设备。除了本文描述的特定功能外,非易失性存储器控制器可以具有各种功能。例如,非易失性存储器控制器可以对非易失性存储器进行格式化以确保存储器正在正确操作,标出坏的非易失性存储器单元,并且分配备用单元以替代将来的故障单元。备用单元中的一些部分可以用来容纳固件以操作非易失性存储器控制器并且实现其他特征。在操作中,当主机需要从非易失性存储器读取数据或向非易失性存储器写入数据时,它可与非易失性存储器控制器通信。如果主机提供要读取/写入数据的逻辑地址,那么非易失性存储器控制器可以将从主机接收的逻辑地址转换为非易失性存储器中的物理地址。(或者,主机可提供物理地址。)非易失性存储器控制器还可执行各种存储器管理功能,诸如但不限于损耗均衡(分配写入以避免损耗否则将被重复写入的特定存储器块)和垃圾收集(在块已满之后,仅将有效的数据页面移动到新块,因此可以擦除并且重用完整块)。
非易失性存储器管芯104可包括任何合适的非易失性存储介质,包括电阻随机存取存储器(ReRAM)、磁阻随机存取存储器(MRAM)、相变存储器(PCM)、NAND闪存单元和/或NOR闪存单元。存储器单元可以采用固态(例如,闪存)存储器单元的形式,并且可以是可一次编程、可数次编程或可多次编程的。存储器单元还可以是单级单元(SLC)、多级单元(MLC)、三级单元(TLC),或者使用现在已知或之后开发的其他存储器单元级技术。另外,存储器单元可以二维方式或三维方式制造。
控制器102和非易失性存储器管芯104之间的交互可以是任何合适的闪存交互,诸如切换模式200、400或800。在一个实施方案中,存储系统100可为基于卡的系统,诸如安全数字卡(SD)或微型安全数字(微型SD)卡。在另选的实施方案中,存储系统100可为嵌入式存储系统的部分。
虽然在图1A所示的示例中,非易失性存储系统100(本文有时称为存储模块)包括控制器102和非易失性存储器管芯104之间的单个信道,但是本文描述的主题不限于具有单个存储器信道。例如,在一些存储系统架构中(诸如图1B和图1C中所示的架构),控制器和存储器设备之间根据控制器的能力可以存在2个、4个、8个或更多个存储器信道。在本文描述的任何实施方案中,即使在附图中示出单个信道,控制器和存储器管芯之间也可以存在超过一个单个信道。
图1B示出了包括多个非易失性存储系统100的存储模块200。同样地,存储模块200可包括存储控制器202,该存储控制器与主机以及包括多个非易失性存储系统100的存储系统204进行交互。存储控制器202和非易失性存储系统100之间的接口可以是总线接口,诸如串行高级技术附件(SATA)或快速周边部件互连(PCIe)接口或双倍数据率(DDR)接口。在一个实施方案中,存储模块200可以是诸如在服务器PC或便携式计算设备诸如膝上型计算机和平板电脑中存在的固态驱动器(SSD)或非易失性双列直插式存储器模块(NVDIMM)。
图1C是示出分级存储系统的框图。分级存储系统250包括多个存储控制器202,该多个存储控制器中的每个存储控制器控制相应的存储系统204。主机系统252可经由总线接口存取存储系统内的存储器。在一个实施方案中,总线接口可以是NVMe或以太网光纤信道(FCoE)接口。在一个实施方案中,图1C所示的系统可以是机架可安装的大容量存储系统,该机架可安装的大容量存储系统能够由多个主机计算机存取,诸如在数据中心中或在需要大容量存储的其他位置中可以找到。
图2A是更详细地示出控制器102的示例性部件的框图。控制器102包括与主机进行交互的前端模块108、与一个或多个非易失性存储器管芯104进行交互的后端模块110、以及执行现在将详细描述的功能的各种其他模块。模块可以采用以下形式:例如,设计用于搭配其他部件使用的封装功能硬件单元、能够由通常执行相关功能的特定功能的(微)处理器或处理电路执行的程序代码的一部分(例如,软件或固件),或者与更大系统进行交互的独立硬件或软件部件。控制器102的模块可包括在下文中更详细讨论的到LBA文件系统模块111,并且可将其实现在硬件或软件/固件中。到LBA文件系统模块111可被配置为执行下文所讨论并且在附图中示出的算法和方法。
再次参考控制器102的模块,缓冲器管理器/总线控制器114管理随机存取存储器(RAM)116中的缓冲器,并且控制控制器102的内部总线仲裁。只读存储器(ROM)118存储系统引导代码。虽然图2A所示为与控制器102分开定位,但在其他实施方案中,RAM 116和ROM118中的一者或两者可以定位在控制器内。在又其他实施方案中,RAM和ROM的部分可以位于控制器102内和控制器之外。
前端模块108包括提供与主机或下一级存储控制器进行电气交互的主机接口120和物理层接口(PHY)122。可取决于所使用的存储器的类型来选择主机接口120的类型。主机接口120的示例包括但不限于SATA、SATA Express、SAS、光纤信道、USB、PCIe和NVMe。主机接口120通常有利于数据、控制信号和定时信号的传送。
后端模块110包括错误校正控制器(ECC)引擎124,该ECC引擎对从主机接收的数据字节进行编码,并且对从非易失性存储器读取的数据字节进行解码和错误校正。命令定序器126生成命令序列,诸如编程命令序列和擦除命令序列,以传输到非易失性存储器管芯104。RAID(独立驱动器冗余阵列)模块128管理RAID奇偶校验的生成和失败数据的恢复。RAID奇偶校验可用作写入存储器设备104中的数据的附加级的完整性保护。在一些情况下,RAID模块128可以是ECC引擎124的一部分。存储器接口130向非易失性存储器管芯104提供命令序列,并且从非易失性存储器管芯104接收状态信息。在一个实施方案中,存储器接口130可以是双倍数据速率(DDR)接口,诸如切换模式200、400或800接口。闪存控制层132控制后端模块110的总体操作。
存储系统100还包括其他分立部件140,诸如外部电气接口、外部RAM、电阻器、电容器或可与控制器102进行交互的其他部件。在另选的实施方案中,物理层接口122、RAID模块128、媒体管理层138和缓冲器管理/总线控制器114中的一者或多者是控制器102中不需要的任选的部件。
图2B是更详细地示出非易失性存储器管芯104的部件的框图。非易失性存储器管芯104包括外围电路141和非易失性存储器阵列142。非易失性存储器阵列142包括用于存储数据的非易失性存储器单元。非易失性存储器单元可以是任何合适的非易失性存储器单元,包括采用二维配置和/或三维配置的ReRAM、MRAM、PCM、NAND闪存存储器单元和/或NOR闪存存储器单元。非易失性存储器管芯104还包括高速缓存数据的数据高速缓存156。外围电路141包括提供状态信息到控制器102的状态机152。
再次参考附图,图3是一个实施方案的主机50和存储系统100的框图。为了简单起见,该图仅示出了主机50和存储系统100中的一些可能的部件。可使用任何合适类型的存储系统和主机。仅为了举例说明的目的,主机50可采取移动计算设备(例如,移动电话)的形式,并且存储系统100可采取存储器卡(例如,微SD卡)的形式。应注意,这些仅仅是示例,并且可使用其他形式的主机和存储系统。
如图3所示,在该实施方案中,主机50包括运行应用程序(“app”)52的处理器54。例如,app 52的计算机可读程序代码可从存储器56读取并且由处理器54执行。在该实施方案中,app 52使用读取和写入文件请求来与存储系统100通信。虽然app 52理解存储系统100中的存储器104的文件系统结构,但是app不处理存储器104中的逻辑块地址(LBA)。相反,不知道文件为何的存储系统100在控制器102中使用到LBA文件系统模块111,以将来自主机50中的app 52的读取/写入文件请求转换为逻辑块地址,逻辑块地址随后可在存储器104中被控制器102转换为物理地址。
如上所述,在诸如图3中,在主机50与应用层上的存储系统100而不是经由逻辑块地址进行通信的情况下,主机50无法存取存储系统100的诊断和配置功能,因为此类功能仅可经由逻辑块地址来存取。例如,这可能发生在Android主机搭配使用微SD卡时的某些情况中。因此,用户可能需要将存储系统100返回给制造商以执行该功能。
例如,一旦存储系统100被释放到市场,主机50就无法执行诊断功能并且从该字段收集调试信息,因为主机50无法从应用层执行固件命令。这是因为LBA级存取被某些主机封阻。因此,报告固件字段故障并且执行使用分析可能需要用户将存储系统100返回给制造商,以便制造商可存取存储系统100上的“原始”LBA并且运行诊断命令。
作为另一示例,在主机50无法从应用层执行固件命令时,一旦存储系统100被释放到市场,主机50就无法改变固件配置。配置存储系统参数以实现高性能可能很重要,因为主机供应商可以针对其应用(例如,高性能或耐用性分区)的不同性能和耐用性需求推荐不同类别的产品。更具体地讲,多个种类的存储系统可具有不同级别的耐用性和性能。对于需要更高性能或耐用性的特定应用而言,可能需要更昂贵的存储系统100。例如,具有30MBps速度需求的4k分辨率视频记录应用将无法使用仅以4MBps或10MBps操作的存储系统。相对于可使用存储系统的应用而言,类似的约束可适用于低耐用性产品类别。因此,希望主机50能够配置存储系统100以适应字段中的具体应用。
以下实施方案可用于允许主机50向存储系统100发送应用层命令,使得存储系统100可执行来自字段的诊断和/或配置命令。通常,存储系统100具有硬件和/或软件以识别来自主机50的用于在存储器系统100中执行固件命令的基于文件的请求。在一个实施方案中,存储系统100接收来自主机50的请求以将数据写入由文件路径名称识别的文件中。然后,存储系统100确定文件路径名称是否匹配预定文件路径名称。例如,存储系统100可使用到LBA文件系统模块111来识别与文件路径名称相关联的逻辑块地址,然后确定该逻辑块地址是否与预定逻辑块地址匹配。如果文件路径名称不匹配预定文件路径名称,那么存储系统100可将写入请求视为常规的写入请求,并且将文件中的数据写入存储器104中的文件中(例如,在映射到所确定的逻辑块地址的物理地址处)。然而,如果文件路径名称匹配预定文件路径名称,那么存储系统100辨识数据实际上表示要执行的命令并且实际上并非是要写入该文件中的数据。因此,存储系统100可以执行该命令。
图4是示出该实施方案的操作的流程图。此处,在主机50上运行的app52负责与存储系统100进行交互。当然,这仅仅是一个示例,并且其他具体实施是可行的。如图4所示,在该示例中,主机500中的app 52首先在app的app专用目录中创建具有具体名称的文件(行为410)。如上所述,在该实施方案中,app 52不直接存取存储系统100的LBA,因为其使用文件系统存取存储系统。通过在存储系统100的文件系统中的具体路径中创建文件,存储系统100可智能地检测app 52正在向存储系统100发送特定固件定制命令并且执行该命令。在一个实施方案中,具体文件路径在存储系统100中被硬编码为用于执行特殊命令的触发文件路径(而不仅仅是用于存储数据的位置)。在该特定示例中,触发文件在app专用目录“/Manufactuer/data/com.company.app/files/”下被称为“.debug”。当然,这仅仅是一个示例,并且可使用任何期望的合适的文件路径。接着,app 52任选地加密定制命令(行为420)。然后,app 52将命令作为数据写入所创建的文件(行为430)。
当存储系统100接收到写入命令时,其检查文件路径是否与硬编码的触发文件路径匹配(例如,基于该文件在存储器104的目录结构中的位置)(行为440)。文件系统内的此硬编码路径是存储系统100预计将在何处写入诊断文件的位置。例如,在一个具体实施中,在固件的刷新状态中,存储系统100监测对LBA0的写入。LBA0具有主引导记录(MBR)或分区引导记录(PBR)。LBA0通常在由主机50创建文件系统镜像期间进行写入。MBR指向PBR,并且PBR指向根目录。该地址被存储在存储系统100中。监测对根目录的写入以查看是否创建了下一个叶路径,并且获取该文件夹的目录地址。例如,如果文件路径为../Manufacturer/data/com.company.app,那么监测根目录以创建“Manufacturer”目录,并且使用该目录获取该目录的地址。监测对此目录的写入以确定是否创建下一个叶路径“data”目录,以此类推,直到获取最终目标目录的地址为止。可监测对此目录的写入以查看是否创建了特殊诊断文件。如果检测到此文件的创建,那么读取此文件的内容。如果签名匹配诊断签名,那么该卡将继续并且检测操作码,并且将其转译为特定功能,如错误日志读取、热计数数据读取等。
如上所述,该示例中的文件路径的结构是MBR具有PBR地址、PBR具有根目录的地址、根目录具有下一个子目录的地址,以此类推。在封闭式写入命令(例如,主机50预先输入块计数)的情况下,仅当命令包含已识别的MBR、PBR、目录等时,该具体实施才可具有开销。前端固件可监测启动LBA和块计数,并且如果格式化时间期间已学习到的任何特殊结构都是命令的一部分,那么固件可解析传入数据对那些结构的RAM位置以了解是否修改了子结构的地址。如果修改了子结构的地址,那么可在存储器104中更新它们(例如,在特殊固件结构中)。在开放式命令的情况下,前端固件可能无法预测其已记住的特殊结构的地址是否将成为该写入操作的部分。称为自动传送的硬件机制可以在最小固件参与的情况下处理从主机接口模块到闪存接口模块的数据传送。在这种情况下,可以通过多种方法使开销最小化。例如,固件可将特殊结构的地址输入硬件引擎,并且可使用中断机制唤醒部件以将数据解析为这些特殊地址,以查看下一个子文件系统结构的地址是否被更新。作为另一示例,低级别固件可执行这些功能。
返回到图4,如果文件路径与硬编码触发文件路径不匹配,那么存储系统100在常规写入操作中将数据写入文件(行为450)。但是,如果文件路径匹配硬编码触发文件路径,那么存储系统100将辨识数据实际上是定制命令。如果定制命令被加密,那么存储系统100可对其进行解密(行为470)。存储系统100然后确定定制命令是否存在于存储系统100中(行为470)。如果定制命令不存在,那么存储系统100将在常规写入操作中将数据写入文件中(行为450)。然而,如果定制命令确实存在,那么存储系统100执行该命令并且将对命令的响应(例如,根据定制命令规范的要求)写入文件中(行为490)。例如,如果该命令是诊断命令,那么存储系统100可将调试响应写入文件。
再次参考附图,图5是用于将响应数据收集到所执行的基于文件的固件命令的一个实施方案的方法的流程图。如图5所示,在存储系统100确认命令被成功执行之后,app 52可向存储系统100发送读取文件的请求(行为510)。存储系统100通过执行文件的常规读取操作并且返回存储在其中的数据来响应该请求,在该示例中,该数据是诊断操作(例如,错误日志读取和热计数数据读取)的结果(行为520)。然后app 52解码所返回的数据并且可将其发送至服务器或另一外部部件(例如,在获得来自用户的许可之后)(行为530)。
应注意,由app 52发送的命令可采取任何合适的形式并且可用于任何合适的操作。例如,通过app 52中的选项,用户可通过永久地或临时地牺牲容量来创建永久或临时高性能分区或文件夹。在一个具体实施中,用户可创建文件夹并且选择高性能选项,然后选择要为其提供高性能的数据量。这可以是以基于数据的高性能量的容量损耗为代价,这可能需要来自用户的批准。如果分区是临时高性能分区,那么在其使用完成后,用户可以选择选项来在空闲时间清除分区,从而收回损失的容量。此外,可以将已创建的分区或文件夹转换为高性能。可以通过若干选项来创建高性能分区/文件夹,而不会损及容量,但是会影响耐用性。可向用户通告耐用性百分比损失。
作为另一示例,通过app 52中的选项,用户可创建永久或临时高耐用分区或文件夹。在一个具体实施中,所复制的数据将具有更多耐用性,并且将向用户通告耐用性益处。可存在若干选项(例如,具有容量减小和更好性能的高耐用性分区,以及不减小容量但影响性能的高耐用性分区)。可以向用户通告容量或性能减小百分比。此外,可以将已创建的分区或文件夹转换为高耐用性,以便它将适用于之后要复制的文件。
这些实施方案有若干优点。例如,这些实施方案可支持低成本存储系统用于高性能/耐用性应用。这些实施方案还允许主机50实时地收集使用数据和故障分析,而无需将存储系统100返回给制造商。此类数据可用于在将来设计更好的存储系统。
最后,如上所述,可以使用任何合适类型的存储器。半导体存储器设备包括易失性存储器设备,诸如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)设备,非易失性存储器设备,诸如电阻式随机存取存储器(“ReRAM”)、电可擦除可编程只读存储器(“EEPROM”)、闪存存储器(也可以被认为是EEPROM的子集)、铁电随机存取存储器(“FRAM”)和磁阻随机存取存储器(“MRAM”),以及能够存储信息的其他半导体元件。每种类型的存储器设备可具有不同的配置。例如,闪存存储器设备可以NAND配置或NOR配置进行配置。
存储器设备可由无源元件和/或有源元件以任何组合形成。举非限制性示例而言,无源半导体存储器元件包括ReRAM设备元件,该无源半导体存储器元件在一些实施方案中包括电阻率切换存储元件诸如反熔丝、相变材料等,以及任选地包括导引元件诸如二极管等。进一步举非限制性示例而言,有源半导体存储器元件包括EEPROM和闪存存储器设备元件,该有源半导体存储器元件在一些实施方案中包括具有电荷存储区域的元件,诸如浮栅、导电纳米粒子或电荷存储介电材料。
多个存储器元件可被配置为使得它们串联连接或者使得每个元件可被单独存取。举非限制性示例而言,NAND配置中的闪存存储器设备(NAND存储器)通常包含串联连接的存储器元件。NAND存储器阵列可被配置为使得该阵列由存储器的多个串构成,其中串由共享单个位线并且作为组被存取的多个存储器元件构成。或者,可配置存储器元件,使得每个元件可被单独存取,例如NOR存储器阵列。NAND存储器配置和NOR存储器配置为示例,并且可以其他方式配置存储器元件。
位于基板内和/或上方的半导体存储器元件可被布置成两个或三个维度,诸如二维存储器结构或三维存储器结构。
在二维存储器结构中,半导体存储器元件被布置在单个平面或单个存储器设备级中。通常,在二维存储器结构中,存储器元件被布置在平面中(例如,在x-z方向平面中),该平面基本上平行于支撑存储器元件的基板的主表面延伸。基板可以是存储器元件的层在其之上或之中形成的晶圆,或者其可以是在存储器元件形成后附接到其的承载基板。作为非限制性示例,基板可包括半导体,诸如硅。
存储器元件可被布置在处于有序阵列中(诸如在多个行和/或列中)的单个存储器设备级中。然而,存储器元件可以非常规配置或非正交配置排列。存储器元件可各自具有两个或更多个电极或接触线,诸如位线和字线。
三维存储器阵列被布置成使得存储器元件占据多个平面或多个存储器设备级,从而形成三个维度(即,在x方向、y方向和z方向上,其中y方向基本上垂直于基板的主表面,并且x方向和z方向基本上平行于基板的主表面)的结构。
作为非限制性示例,三维存储器结构可被垂直地布置为多个二维存储器设备级的堆叠。作为另一个非限制性示例,三维存储器阵列可被布置为多个垂直列(例如,基本上垂直于基板的主表面延伸的列,即,在y方向上),其中在每一列中每一列均具有多个存储器元件。列可以二维配置例如在x-z平面中布置,从而得到存储器元件的三维布置,其中元件位于多个垂直堆叠的存储器平面上。三维存储器元件的其他配置也可构成三维存储器阵列。
举非限制性示例而言,在三维NAND存储器阵列中,存储器元件可耦接在一起以在单个水平(例如,x-z)存储器设备级内形成NAND串。或者,存储器元件可耦接在一起以形成横贯多个水平存储器设备级的垂直NAND串。可设想到其他三维配置,其中一些NAND串包含在单个存储器级中的存储器元件,而其他串则包含跨越多个存储器级的存储器元件。三维存储器阵列也可以NOR配置以及ReRAM配置来设计。
通常,在单片三维存储器阵列中,一个或多个存储器设备级在单个基板上方形成。任选地,单片三维存储器阵列还可具有至少部分地在单个基板内的一个或多个存储器层。作为非限制性示例,基板可包括半导体,诸如硅。在单片三维阵列中,构成阵列的每个存储器设备级的层通常形成在阵列的底层存储器设备级的层上。然而,单片三维存储器阵列的相邻存储器设备级的层可被共享或具有在存储器设备级之间的居间层。
然后,可单独形成二维阵列,并且然后封装在一起以形成具有多个存储器层的非单片存储器设备。例如,非单片的堆叠存储器可通过在单独的基板上形成存储器级并且然后将存储器级堆叠在彼此之上而构造。可在堆叠前将基板减薄或从存储器设备级移除,但由于存储器设备级在单独的基板上初始形成,因此所得的存储器阵列不是单片的三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可在单独的芯片上形成,并且然后封装在一起以形成堆叠的芯片存储器设备。
通常需要相关联的电路来操作存储器元件并且与存储器元件通信。作为非限制性示例,存储器设备可具有用于控制并且驱动存储器元件以实现诸如编程和读取的功能的电路。该相关联的电路可与存储器元件位于同一基板上和/或位于单独的基板上。例如,用于存储器读取-写入操作的控制器可定位在单独的控制器芯片上和/或定位在与存储器元件相同的基板上。
本领域的技术人员将认识到,本发明不限于所述的二维结构和三维结构,但涵盖如本文所述的并且如本领域的技术人员所理解的本发明的实质和范围内的所有相关存储器结构。
预期将前面的详细描述理解为本发明可以采用的选定形式的说明,而不是作为本发明的定义。预期只有以下权利要求(包括所有等同物)限定要求保护的本发明的范围。最后,应注意,本文所述的任何实施方案的任何方面均可单独使用或彼此组合使用。
Claims (20)
1.一种存储系统,包括:
存储器;和
控制器,所述控制器与所述存储器通信,其中所述控制器被配置为:
接收来自与所述存储系统通信的主机的将数据写入文件中的请求,其中所述文件由文件路径名称来识别;
确定所述文件路径名称是否匹配预定文件路径名称;
响应于确定所述文件路径名称不匹配所述预定文件路径名称来将所述数据写入所述文件中;以及
响应于确定所述文件路径名称匹配所述预定文件路径名称来执行由所述数据表示的命令。
2.根据权利要求1所述的存储系统,其中所述控制器被进一步配置为在执行所述命令之后将对所述命令的响应写入所述文件中。
3.根据权利要求2所述的存储系统,其中所述控制器被进一步配置为:
接收来自所述主机的读取所述文件的请求;以及
响应于接收到来自所述主机的读取所述文件的所述请求来将对所述命令的所述响应发送至所述主机。
4.根据权利要求1所述的存储系统,其中所述命令被加密,并且其中所述控制器被进一步配置为在执行所述命令之前对所述命令解密。
5.根据权利要求1所述的存储系统,其中所述控制器被进一步配置为识别与所述文件路径名称相关联的逻辑块地址,并且其中所述控制器被配置为通过确定与所述文件路径名称相关联的所述逻辑块地址是否匹配预定逻辑块地址来确定所述文件路径名称是否匹配预定文件路径名称。
6.根据权利要求1所述的存储系统,其中所述命令包括诊断命令。
7.根据权利要求1所述的存储系统,其中所述命令包括配置命令。
8.根据权利要求1所述的存储系统,其中所述存储器包括三维存储器。
9.根据权利要求1所述的存储系统,其中所述存储系统可移除地连接到所述主机。
10.一种用于在存储系统中执行命令的方法,所述方法包括:
在包括存储器的存储系统中执行以下操作:
接收来自主机的将数据写入所述存储器中的文件中的请求;
基于所述文件在所述存储器的目录结构中的位置,确定所述数据表示要执行的命令而不是要写入所述文件中的数据;以及
执行所述命令。
11.根据权利要求10所述的方法,还包括在执行所述命令之后将响应写入所述命令。
12.根据权利要求11所述的方法,还包括:
接收来自所述主机的读取所述文件的请求;以及
将对所述命令的所述响应发送至所述主机。
13.根据权利要求10所述的方法,其中所述命令被加密,并且其中所述方法还包括在执行之前对所述命令解密。
14.根据权利要求10所述的方法,其中所述存储系统基于相关联的逻辑块地址识别所述文件在所述目录结构中的所述位置。
15.根据权利要求10所述的方法,其中所述命令包括诊断命令。
16.根据权利要求10所述的方法,其中所述命令包括配置命令。
17.根据权利要求10所述的方法,其中所述存储器包括三维存储器。
18.根据权利要求10所述的方法,其中所述存储系统可移除地连接到所述主机。
19.一种存储系统,包括:
存储器;
用于识别用于在存储器系统中执行固件命令的基于文件的请求的装置;和
用于执行所述固件命令的装置。
20.根据权利要求19所述的存储系统,其中所述存储器包括三维存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/695,686 US10474391B2 (en) | 2017-09-05 | 2017-09-05 | Storage system and method for executing file-based firmware commands and collecting response data |
US15/695,686 | 2017-09-05 | ||
PCT/US2018/033448 WO2019050577A1 (en) | 2017-09-05 | 2018-05-18 | STORAGE SYSTEM AND METHOD FOR EXECUTING FILE-BASED FIRMWARE COMMANDS AND COLLECTING RESPONSE DATA |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110799934A true CN110799934A (zh) | 2020-02-14 |
CN110799934B CN110799934B (zh) | 2023-08-08 |
Family
ID=62636271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880040944.8A Active CN110799934B (zh) | 2017-09-05 | 2018-05-18 | 用于执行基于文件的固件命令和收集响应数据的存储系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10474391B2 (zh) |
CN (1) | CN110799934B (zh) |
DE (1) | DE112018002501T5 (zh) |
WO (1) | WO2019050577A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793284B (zh) * | 2012-10-29 | 2017-06-20 | 伊姆西公司 | 基于共同序列模式的、用于智能客户服务的分析系统和方法 |
US11144635B2 (en) * | 2018-11-06 | 2021-10-12 | International Business Machines Corporation | Restricted command set management in a data storage system |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070050418A1 (en) * | 2005-08-31 | 2007-03-01 | Fan-Sheng Lin | Communication method for storage devices on the basis of file access |
CN101147133A (zh) * | 2005-02-16 | 2008-03-19 | 桑迪士克股份有限公司 | 闪速存储器中的直接文件数据编程及删除 |
US20080126584A1 (en) * | 2006-11-29 | 2008-05-29 | Sony Ericsson Mobile Communications Ab | System and Method for Receiving Control Commands at a Peripheral Device |
US20150347325A1 (en) * | 2014-05-28 | 2015-12-03 | SanDisk Technologies, Inc. | Obtaining diagnostic information through host interfaces |
CN106933872A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 一种通过传统文件系统接口访问云存储服务的方法及装置 |
CN106933510A (zh) * | 2017-02-27 | 2017-07-07 | 华中科技大学 | 一种存储控制器 |
CN107111456A (zh) * | 2015-01-21 | 2017-08-29 | 闪迪技术有限公司 | 用于生成与主机命令相关联的提示信息的系统和方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5327553A (en) | 1989-12-22 | 1994-07-05 | Tandem Computers Incorporated | Fault-tolerant computer system with /CONFIG filesystem |
US6493811B1 (en) | 1998-01-26 | 2002-12-10 | Computer Associated Think, Inc. | Intelligent controller accessed through addressable virtual space |
US7263108B2 (en) | 2002-08-06 | 2007-08-28 | Netxen, Inc. | Dual-mode network storage systems and methods |
US9092597B2 (en) | 2009-12-09 | 2015-07-28 | Sandisk Technologies Inc. | Storage device and method for using a virtual file in a public memory area to access a plurality of protected files in a private memory area |
US8301694B2 (en) | 2010-05-20 | 2012-10-30 | Sandisk Il Ltd. | Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device |
US20170068686A1 (en) | 2015-09-07 | 2017-03-09 | Jacob Broido | Accessing a block based volume as a file based volume |
US10268550B2 (en) * | 2016-10-10 | 2019-04-23 | Quest Software Inc. | Virtualizing a secure active directory environment |
-
2017
- 2017-09-05 US US15/695,686 patent/US10474391B2/en active Active
-
2018
- 2018-05-18 CN CN201880040944.8A patent/CN110799934B/zh active Active
- 2018-05-18 WO PCT/US2018/033448 patent/WO2019050577A1/en active Application Filing
- 2018-05-18 DE DE112018002501.2T patent/DE112018002501T5/de active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101147133A (zh) * | 2005-02-16 | 2008-03-19 | 桑迪士克股份有限公司 | 闪速存储器中的直接文件数据编程及删除 |
US20070050418A1 (en) * | 2005-08-31 | 2007-03-01 | Fan-Sheng Lin | Communication method for storage devices on the basis of file access |
US20080126584A1 (en) * | 2006-11-29 | 2008-05-29 | Sony Ericsson Mobile Communications Ab | System and Method for Receiving Control Commands at a Peripheral Device |
US20150347325A1 (en) * | 2014-05-28 | 2015-12-03 | SanDisk Technologies, Inc. | Obtaining diagnostic information through host interfaces |
CN107111456A (zh) * | 2015-01-21 | 2017-08-29 | 闪迪技术有限公司 | 用于生成与主机命令相关联的提示信息的系统和方法 |
CN106933872A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 一种通过传统文件系统接口访问云存储服务的方法及装置 |
CN106933510A (zh) * | 2017-02-27 | 2017-07-07 | 华中科技大学 | 一种存储控制器 |
Also Published As
Publication number | Publication date |
---|---|
US20190073156A1 (en) | 2019-03-07 |
WO2019050577A1 (en) | 2019-03-14 |
CN110799934B (zh) | 2023-08-08 |
US10474391B2 (en) | 2019-11-12 |
DE112018002501T5 (de) | 2020-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170090815A1 (en) | Zero read on trimmed blocks in a non-volatile memory system | |
WO2018128727A1 (en) | Storage system and method for thin provisioning | |
US11543987B2 (en) | Storage system and method for retention-based zone determination | |
US11262928B2 (en) | Storage system and method for enabling partial defragmentation prior to reading in burst mode | |
CN110799934B (zh) | 用于执行基于文件的固件命令和收集响应数据的存储系统和方法 | |
US10379781B2 (en) | Storage system and method for improved command flow | |
US11836374B1 (en) | Storage system and method for data placement in zoned storage | |
US11494125B2 (en) | Storage system and method for dual fast release and slow release responses | |
US11409468B2 (en) | Storage system and method for using proactive device timeout information | |
US11301168B2 (en) | Storage system and method for user-defined data archiving | |
WO2021158254A1 (en) | Storage system and method for host memory access | |
CN113176849A (zh) | 使用智能流块交换来维持均匀热计数分布的存储系统和方法 | |
US11537325B2 (en) | Storage system and method for token provisioning for faster data access | |
US20230385068A1 (en) | Data Storage Device and Method for Storage-Class-Memory-Accelerated Boot Partition Optimization | |
US11550487B2 (en) | Data storage device and method for enabling endurance re-evaluation | |
US11880256B2 (en) | Data storage device and method for energy feedback and report generation | |
US11650758B2 (en) | Data storage device and method for host-initiated cached read to recover corrupted data within timeout constraints | |
US20230409234A1 (en) | Data Storage Device and Method for Host Multi-Command Queue Grouping Based on Write-Size Alignment in a Multi-Queue-Depth Environment | |
US11847323B1 (en) | Data storage device and method for host buffer management | |
US11487449B2 (en) | Data storage device and method for enabling higher lane utilization in run time via device hints on workload patterns | |
US11775210B2 (en) | Storage system and method for device-determined, application-specific dynamic command clustering | |
US11429296B2 (en) | Storage system, host, and method for extended and imaginary logical-to-physical address mapping | |
US20240143509A1 (en) | Data Storage Device and Method for Handling Write Commands in Zoned Storage | |
CN114730301A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |