包括存储设备的用户设备及存储设备的修剪管理方法与流程

文档序号:14518752阅读:125来源:国知局
包括存储设备的用户设备及存储设备的修剪管理方法与流程

对相关申请的交叉引用

本申请要求于2016年11月7日向韩国知识产权局提交的第10-2016-0147674号韩国专利申请的优先权,其全部内容通过引用并入于此。



背景技术:

本文描述的发明构思涉及半导体存储设备,并且更具体地,涉及包括存储设备的用户设备及存储设备的修剪管理方法。

闪存设备是一种非易失性存储设备。闪存设备具有相对地低的功耗、相对地高的集成度、相对小的尺寸以及相对地轻的重量。近年来,随着越来越多地使用便携式信息设备(例如,智能电话、平板式pc或数字相机),闪存设备被广泛用作数据存储设备。

在存储设备中存储的文件被主机删除的情况下,主机可以通过处理与删除的文件相关联的元数据来使删除的文件无效。然而,被标记为无效的删除的文件实际上存在于存储设备中。存储设备可以作为有效数据来识别和管理无效数据。因此,无效数据可能降低存储设备的性能和可用存储器容量。主机可以向存储设备发送“修剪命令(trimcommand)”,以实际删除存储设备中的无效数据。修剪命令可以包括用于指定要删除的区域的信息(例如,地址信息)。

主机设备可以包括各种计算机系统,其上安装有包括闪存设备的一个或多个存储设备(例如,固态驱动ssd)。例如,存储设备可以连接到服务器、数据中心、个人计算机(pc)等。主机设备可以由各种操作系统驱动。可以根据主机设备的操作系统的类型来限制存储设备的存储器管理功能。例如,根据操作系统、文件系统或主机的特性,修剪命令的执行可能受到很大的影响。

因此,需要一种与操作系统、文件系统或主机的特征无关地支持存储设备的修剪操作的技术。



技术实现要素:

本发明构思的一些示例实施例提供了一种不依赖于操作系统、文件系统或主机的存储设备的修剪方法。

根据本发明构思的示例实施例,一种存储设备的修剪管理方法包括:由应用程序配置的至少一个处理器激活设备驱动器的模式检查功能,由应用程序配置的至少一个处理器请求文件系统写入指定模式的文件,由文件系统配置的至少一个处理器将文件转换为存储设备的管理单元数据,由文件系统配置的至少一个处理器将管理单元数据发送到设备驱动器,由设备驱动器配置的至少一个处理器检查管理单元数据的数据模式与指定模式是否相同,以及由设备驱动器配置的至少一个处理器基于检查结果将用于修剪与管理单元数据相对应的存储区域的修剪命令发送到存储设备。

根据本发明构思的示例实施例,一种用户设备包括主机和存储设备。主机包括一个或多个处理器和工作存储器,工作存储器包括加载在其上的应用程序、文件系统和设备驱动器,应用程序配置一个或多个处理器来激活或去激活设备驱动器的模式检查功能,以生成修剪命令并且请求设备驱动器通过文件系统写入指定数据,如果从文件系统提供的指定数据的模式在模式检查功能激活时与指定模式相同,则设备驱动器配置一个或多个处理器来生成修剪命令。一个或多个处理器被配置为基于驱动应用程序、文件系统和设备驱动器生成修剪命令,以及将修剪命令发送到与主机通信的存储设备。存储设备被配置为响应于修剪命令来修剪选择的存储区域。

根据本发明构思的示例实施例,一种用于与连接到其的主机通信的存储设备的修剪管理方法,所述主机包括被配置为存储计算机可读指令的存储器以及被配置为执行计算机可读指令以使得一个或多个处理器被配置执行修剪管理方法的至少一个处理器,所述方法包括:由至少一个处理器检测修剪条件;如果检测到修剪条件,则由至少一个处理器向存储设备发送模式检查开始命令;由至少一个处理器将修剪模式发送到存储设备;由至少一个处理器检测停止条件;由至少一个处理器基于停止条件生成模式检查停止命令;由至少一个处理器向存储设备发送模式检查停止命令;由包括在存储设备中的控制器响应于从主机接收到的模式检查开始命令执行至少一个模式检查操作,直到从主机接收到模式检查停止命令为止;以及基于至少一个模式检查操作的结果执行至少一个修剪操作。

附图说明

从以下参考附图的描述中,上述和其它目的和特征将变得更加明显,其中,除非另有说明,否则贯穿各个附图相同的附图标记表示相同的部件,并且在附图中:

图1是示出根据本发明构思的示例实施例的用户设备的框图;

图2是示出根据本发明构思的示例实施例的主机中的修剪操作的图;

图3是示出包括在图1的存储设备中的存储控制器的框图;

图4是示出根据本发明构思的示例实施例的修剪的应用程序的操作的流程图;

图5是示出根据本发明构思的示例实施例的设备驱动器的操作的流程图;

图6是示出图5的操作s230的详细操作的流程图;

图7是示出图4至图6中描述的主机的应用程序、文件系统和设备驱动器之间的交互的图;

图8是示出根据本发明构思的另一示例实施例的设备驱动器的操作的流程图;

图9是示出图8的操作s360的详细操作的流程图;

图10是示出图8和图9中描述的主机的应用程序、文件系统和设备驱动器之间的交互的图;

图11是示出图1的存储设备的另一示例的框图;

图12是示出根据本发明构思的另一示例实施例的用户设备的框图;

图13是示出由图12的主机执行的修剪操作的流程图;以及

图14是示出由图12的存储设备执行的修剪操作的流程图。

具体实施方式

应当理解,前述一般描述和以下详细描述两者作为示例被提供,以用于说明而非限制本发明构思的范围。现在将详细参考在附图中示出的本发明构思的当前示例实施例。在可能的情况下,在附图和说明书中使用相同的附图标记来指代相同或相似的部件。

以下,使用闪存设备的固态驱动器将被用作存储设备的示例来描述本发明构思的特征和功能。然而,本领域技术人员可以容易地从本文公开的信息中理解其它特征和性能。本发明构思可以通过其他示例实施例来实施或应用。此外,在不脱离本发明构思的权利要求书、范围和精神以及任何其它目的的情况下,可以根据观点和应用来改变或修改详细描述。

图1是示出根据本发明构思的示例实施例的用户设备的框图。参考图1,用户设备100可以包括主机110和存储设备130。主机110可以向存储设备130提供由设备驱动器116确定的修剪命令trimcmd,而不依赖于由文件系统114提供的信息。这将在下面更详细地描述。

主机110可以从存储设备130读取数据或向存储设备130写入数据。主机110可以向存储设备130写入数据,或者可以生成用于读取存储在存储设备130中的数据的命令cmd。主机110可以生成修剪命令trimcmd,以用于管理存储设备130的性能和生命周期。主机110可以在应用程序112和设备驱动器116的控制下执行修剪管理操作。此外,主机110可以向存储设备130提供作为修剪管理操作的结果生成的修剪命令trimcmd。

根据本发明构思的示例实施例,主机110可以包括处理器111、工作存储器113和接口电路115。应用程序112、文件系统114、设备驱动器116等可以被加载在工作存储器113上。此外,在主机110中驱动的各种软件可以被加载到工作存储器113上。

处理器111可以运行加载在工作存储器113上的各种软件。处理器111可以运行操作系统(os)、应用程序112等。处理器111可以是同构多核处理器或异构多核处理器。

要由处理器111运行的应用程序112、文件系统114和设备驱动器116或要处理的数据可以被加载到工作存储器113上。此外,诸如输入/输出调度器——其管理与要发送到存储设备130的命令相关联的队列——的功能可以被加载到工作存储器113上。

接口电路115可以在主机110和存储设备130之间提供物理连接。可以根据接口电路115的协议或策略来提供设备驱动器116。接口电路115可以将与从主机110发出的各种访问请求相对应的命令、地址、数据等转换为适合于与存储设备130进行接口连接。接口电路115可以包括各种协议(例如,通用串行总线(usb)、小型计算机系统接口(scsi)、快速pci(pciexpress)、ata、并行ata(pata)、串行ata(sata)或串行连接scsi(sas))中的至少一个。

存储设备130可以执行各种请求的操作(例如,响应于从主机设备110提供的命令来访问非易失性存储设备135)。存储设备130可以基于从主机110提供的修剪命令trimcmd对所选择的区域执行修剪操作。修剪操作可以被认为是物理地擦除根据包括在修剪命令trimcmd中的地址指定的存储区域的操作。由于修剪命令trimcmd可以减少存在无效数据的存储区域。因此,由于修剪操作,在请求写入操作时立即可用的空闲块的数量可能增加。例如,存储设备130可以包括存储控制器131、缓冲存储器133和非易失性存储设备135。

存储控制器131可以提供主机110和存储设备130之间的接口连接。存储控制器131可以响应于从主机110提供的修剪命令trimcmd来物理地擦除非易失性存储设备135的选择的区域。将参考附图详细描述存储控制器131的详细操作。

根据上述说明,用户设备100可以生成要发送到存储设备130的修剪命令,而不依赖于文件系统114。因此,可以在各种操作系统或文件系统环境中实施具有相对地高的通用性的存储设备130。

图2是示出根据本发明构思的示例实施例的主机110中的修剪操作的图。将参考图2描述在应用程序112和设备驱动器116的控制下执行的修剪方法。

应用程序112可以是用于管理存储设备130的程序。例如,应用程序112可以被提供为用于控制存储设备130的专用软件。根据本发明构思的示例实施例,应用程序112不从文件系统114获得用于提供修剪命令trimcmd的地址信息。相反,为了执行修剪操作,应用程序112可以向设备驱动器116提供用于开始修剪操作的开始命令startcmd和用于结束修剪操作的停止命令stopcmd。此外,应用程序112可以请求文件系统114写入指定模式的文件。

文件系统114可以被定义为用于在操作系统(os)层中分层存储、搜索、访问或操纵数据的抽象数据结构的集合。也就是说,文件系统114可以将诸如os的高级(high-level)程序或应用程序112请求访问的文件单元的数据转换为可由设备驱动器116管理的单元的数据。当从应用程序112接收到指定文件的写入请求时,文件系统114可以选择存储设备130的未使用区域。此外,文件系统114可以将写入请求的文件写入存储设备130的选择的区域。根据本发明构思的示例实施例,文件系统114可以将应用程序112请求文件系统114写入的指定模式的数据(例如,ox00)发送到设备驱动器116。

设备驱动器116可以是在主机110的os级控制存储设备130的控制模块。如果由用户或从应用程序112请求对存储器的访问,则可以调用设备驱动器116。设备驱动器116可以采用用于控制存储设备130的内核的软件模块来实现。

根据本发明构思的示例实施例,设备驱动器116可以包括模式检查器118。模式检查器118可以比较来自文件系统114的写入请求数据是否是指定模式(例如,ox00)。设备驱动器116可以基于比较结果生成与写入请求数据被写入的区域相关联的修剪命令trimcmd或写入命令writecmd。设备驱动器116可以响应于从应用程序112提供的开始命令startcmd打开模式检查器118。设备驱动器116可以响应于从应用程序112提供的停止命令stopcmd关闭模式检查器118。在下文中,可以提供模式检查器118作为包括在设备驱动器116中的软件模块。然而,模式检查器118可以采用各种硬件或算法来实现。

在应用程序112、文件系统114和设备驱动器116的控制下生成修剪命令的处理如下。

在操作①中,当事件用于请求修剪操作时,应用程序112可以向设备驱动器116发送开始命令startcmd。开始命令startcmd可以是指用于激活生成设备驱动器116的修剪命令trimcmd的命令。

在操作②中,设备驱动器116可以响应于应用程序112的请求来激活模式检查器118的功能。也就是说,设备驱动器116可以响应于来自应用程序112的开始命令startcmd打开模式检查器118。当打开模式检查器118时,模式检查器118可以确定由设备驱动器116写入请求的数据是否与指定模式相同。根据规则可以预先设置或者可以选择指定模式。

接下来,在操作③中,应用程序112可以请求文件系统114写入可以根据规则预先定义或选择的指定模式的文件。也就是说,应用程序112可以从文件系统114请求指定模式(例如,ox00)的数据。对于修剪操作,由文件系统114写入请求的指定模式可以存储在已经在设备驱动器116中被打开的模式检查器118中。存储在模式检查器118中的指定模式可以由应用程序112改变或更新。

在操作④中,文件系统114可以将指定模式数据转换为存储设备130的管理单元的数据,并且可以响应于应用程序112的文件写入请求向设备驱动器116发送转换数据的写入请求。文件系统114可以管理关于存储设备130的未使用区域的信息。因此,文件系统114可以将文件单元的写入请求转换为存储设备130识别的数据单元(例如,扇区单元)的写入请求。当请求写入一个文件时,文件系统114可以将文件划分成多个扇区单元,并且可以将划分的扇区分配给存储设备130的未使用区域。文件系统114可以向设备驱动器116提供与划分的扇区相对应的数据和作为分配结果生成的地址连同写入请求。

设备驱动器116可以从文件系统114接收写入请求的数据。在这种情况下,打开的模式检查器118可以将接收的数据与可以根据规则预先定义或选择的指定模式进行比较。如果从文件系统114提供的数据与指定模式相同,则设备驱动器116可以生成用于处理与接收数据相对应的存储设备130的未使用区域的修剪命令trimcmd。然而,如果从文件系统114提供的数据与指定模式不同,则设备驱动器116可以生成用于对存储设备130中的接收数据编程的写入命令writecmd。修剪命令trimcmd或写入命令writecmd可以在写入请求时立即被实时发送到存储设备130。然而,应用程序112可能不会将写入命令writecmd或修剪命令trimcmd发送到存储设备130,直到写入请求的数据的大小满足指定大小(例如,参考或阈值大小)为止。在一些示例实施例中,当从应用程序112提供停止命令stopcmd时,设备驱动器116可以将修剪命令trimcmd或写入命令writecmd发送到存储设备130。然而,修剪命令trimcmd或写入命令writecmd的传输时间点不限于上述示例实施例。

在操作⑤中,应用程序112可以向设备驱动器116发送用于结束修剪操作的停止命令stopcmd。设备驱动器116中的模式检查器118的操作需要大量的资源来比较数据。因此,当模式检查器118被打开并且修剪操作被激活时,可能影响主机110的性能。因此,当确定修剪操作被充分执行时,考虑到主机110的性能或功耗,应用程序112可以向设备驱动器116发送停止命令stopcmd。

在操作⑥中,设备驱动器116可以关闭模式检查器118。当关闭模式检查器118时,可以针对停止修剪操作进行的写入请求的数据与指定模式的比较操作。此外,当关闭模式检查器118时,设备驱动器116可以将写入命令writecmd发送到存储设备130,而与写入请求的数据的模式无关。

根据本发明构思的上述示例实施例,描述了由应用程序112和设备驱动器116生成修剪命令的方法。应用程序112不从文件系统114获得用于存储设备130的修剪操作的单独的地址信息。对于修剪操作,应用程序112可以请求设备驱动器116开始和停止修剪操作,并且仅需要向文件系统114发送指定模式的文件写入请求。此外,设备驱动器116可以基于来自文件系统114的数据写入请求的模式传送关于存储设备130的存储区域的修剪命令或写入命令。这样的软件结构可以实现不太依赖于文件系统114的修剪操作。

图3是示出包括在图1的存储设备中的存储控制器的框图。参考图3,存储控制器131可以响应于主机110的命令在非易失性存储设备135中写入数据或执行修剪操作。存储控制器131可以包括cpu132、随机存取存储器(以下称为“ram”)139、主机接口134、缓冲管理器136和闪存接口138。

cpu132可以控制存储控制器131的总体操作,并且可以执行逻辑操作。cpu132可以通过主机接口134与主机110进行通信,并且可以通过闪存接口138与非易失性存储器设备135进行通信。此外,cpu132可以通过缓冲管理器136来管理缓冲存储器133。cpu132可以执行加载到ram139的修剪管理器。cpu132可以在修剪管理器的控制下执行从主机110提供的修剪命令trimcmd。修剪管理器可以采用例如闪存转换层(flashtranslationlayer,ftl)的一部分来实现。可以提供cpu132作为采用多个核实现的多核处理器。

ram139可以用作cpu132的工作存储器、高速缓冲(cache)存储器或缓冲(buffer)存储器。ram139可以存储cpu132执行的代码和命令。ram139可以存储要由cpu132处理的数据。ram139可以采用静态ram(sram)来实现。修剪管理器可以被加载到ram139上。此外,ftl或各种存储管理模块可以存储在ram139中。ftl可以执行例如地址映射、垃圾收集和/或磨损均衡的功能,以用于在非易失性存储设备135和主机110之间进行接口连接。

主机接口134可以被配置为在cpu320的控制下与主机110进行通信。主机接口134可以使用各种通信方式(例如,通用串行总线(usb)、串行at附件(sata)、串行连接scsi(sas)、高速芯片(hsic)、小型计算机系统接口(scsi)、外围组件互连(pci)、快速pci(pcie)、快速非易失性存储器(nvme))、通用闪存(ufs)、安全数字(sd)、多媒体卡(mmc)、嵌入式mmc(emmc)、双列直插式存储器模块(dimm)、注册dimm(rdimm)和减载dimm(lrdimm))中的至少一个来传递通信。

缓冲管理器136可以被配置为在cpu320的控制下控制缓冲存储器133(参考图1)。缓冲管理器136可以控制缓冲存储器133,使得临时存储在非易失性存储设备135与主机110之间交换的数据(参考图1)。

闪存接口138可以被配置为在cpu132的控制下与非易失性存储器设备135进行通信。闪存接口138可以通过输入/输出信道与非易失性存储设备135交换命令、地址和数据。闪存接口138可以通过控制信道与非易失性存储设备135交换控制信号。

具有上述配置的存储控制器131可以访问非易失性存储设备135和缓冲存储器133。存储控制器131可以响应于来自外部的请求执行写入、读取和擦除。存储控制器131可以将写入请求数据写入非易失性存储设备135,并且可以从非易失性存储设备135对读取请求数据进行读取。存储控制器131可以响应于来自主机110的修剪命令trimcmd擦除非易失性存储设备135的指定存储区域。

存储控制器131可以通过使用缓冲存储器133来管理存储设备130。例如,存储控制器131可以在缓冲存储器133中临时存储要写入非易失性存储设备135的数据或从非易失性存储设备135读取的数据。存储控制器131可以将元数据加载到缓冲存储器133上,基于元数据来管理非易失性存储设备135。

根据本发明构思的上述示例实施例,简要描述了在存储设备130中执行修剪命令trimcmd的存储控制器131的配置和功能。存储设备130可以由例如ssd、存储卡或嵌入式存储卡来实现。然而,示例实施例不限于此。

图4是示出根据本发明构思的示例实施例的用于修剪的应用程序的操作的流程图。参考图2和图4,可以由主机110的应用程序112和设备驱动器116生成要提供给存储设备130的修剪命令trimcmd。

在操作s110中,应用程序112可以确定是否期望对存储设备130执行修剪操作。应用程序112可以通过监视一个或多个参数(例如,存储设备130的性能、空闲存储空间的不足或空闲块的数量)来确定是否期望修剪操作的执行。

在操作s120中,处理根据修剪操作的执行请求的存在而分支。如果修剪操作的执行请求存在(是),则处理进行到操作s130。另一方面,如果修剪操作的执行请求不存在(否),则处理返回到操作s110。在这种情况下,应用程序112可以检测修剪操作的请求。

在操作s130中,应用程序112可以向设备驱动器116发送开始命令startcmd。在这种情况下,设备驱动器116可以响应于开始命令startcmd来激活或打开模式检查器118。

在操作s140中,应用程序112可以向文件系统114发送对指定模式的文件的写入请求。下文中,用于修剪的写入请求文件的数据模式可以被称为“修剪模式trim_ptrn”。应用程序112可以将为修剪模式trim_ptrn的文件提供给文件系统114,并且可以请求文件系统114写入为修剪模式trim_ptrn的文件。在这种情况下,文件系统114可以通过使用关于存储设备130的未使用区域的地址信息来生成用于写入为修剪模式trim_ptrn的文件的开始地址、数据大小等。文件系统114可以向设备驱动器116提供开始地址、数据大小等。设备驱动器116可以通过使用模式检查器118来检查写入请求的数据的模式是否是修剪模式trim_ptrn。如果写入请求的数据的模式与修剪模式trim_ptrn相同,则设备驱动器116可以向存储设备130提供与写入请求的地址区域相关联的修剪命令trimcmd。另一方面,如果写入请求的数据的模式与修剪模式trim_ptrn不同,则设备驱动器116可以向存储设备130提供写入请求的数据的写入命令writecmd。

在操作s150中,应用程序112可以基于是否充分执行修剪操作来停止或继续修剪操作。如果应用程序112确定不再需要执行修剪操作,则处理进行到操作s160。如果应用程序112确定需要进一步执行修剪操作,则处理返回到操作s140。在这种情况下,在操作s140中,应用程序112可以向文件系统114提供为修剪模式trim_ptrn的文件,并且由文件系统114请求写入修剪模式trim_ptrn的设备驱动器116可以向存储设备130发送修剪命令trimcmd。

在操作s160中,应用程序112可以向设备驱动器116发送停止命令stopcmd。在这种情况下,设备驱动器116可以去激活或关闭模式检查器118的功能,并且可以停止针对修剪执行的模式比较操作。写入请求的数据可以被写入存储设备130,而与模式无关。

以上,简要描述了用于生成修剪命令的主机110中的应用程序112、文件系统114和设备驱动器116的操作。例如,应用程序112可以通过使用开始命令startcmd和停止命令stopcmd来激活/去激活设备驱动器116的修剪功能。当修剪功能被激活时,应用程序112可以仅向文件系统114提供指定模式的数据。因为应用程序112没有从文件系统114接收到用于修剪的单独地址信息,所以可以提供较少依赖于文件系统114的修剪功能。

图5是示出根据本发明构思的示例实施例的设备驱动器的操作的流程图。参考图5,设备驱动器116可以响应于从应用程序112和文件系统114提供的命令或数据向存储设备130提供写入命令writecmd或修剪命令trimcmd。

在操作s210中,设备驱动器116可以检测是否接收到从应用程序112提供的开始命令startcmd。开始命令startcmd是指示修剪操作激活的命令。

在操作s220中,设备驱动器116可以根据是否接收到开始命令startcmd来分支。如果没有接收到开始命令startcmd(否),则处理可以返回到操作s210。如果接收到开始命令startcmd(是),则处理可以进行到操作s230。

在操作s230中,设备驱动器116可以打开模式检查器118。模式检查器118可以检测从文件系统114提供的写入数据是否与修剪模式trim_ptrn相同。基于写入数据与修剪模式trim_ptrn是否相同,设备驱动器116可以生成与存储写入请求的数据的存储区域相关联的修剪命令trimcmd或写入命令writecmd。在一些示例实施例中,修剪命令trimcmd或写入命令writecmd的传输时间点可以在模式检查器118被关闭之后。

在操作s240中,设备驱动器116可以根据是否接收到停止命令stopcmd进行分支。如果没有接收到停止命令stopcmd(否),则处理可以返回到操作s230。如果接收到停止命令stopcmd(是),则处理可以进行到操作s250。

在操作s250中,设备驱动器116可以去激活或关闭模式检查器118。在这种情况下,模式检查器118的模式比较操作被停止。之后,从文件系统114提供的写入数据可以写入存储设备130,而与模式无关。

以上,描述了生成图5所示的设备驱动器116的修剪命令trimcmd的方法。在模式检查器118被打开时,将存储作为指定模式提供的写入数据的存储区域可以是修剪操作的目标。当模式检查器118被关闭时,写入数据可以在指定存储区域中被编程。

图6是示出图5的操作s230的详细操作的流程图。参考图6,设备驱动器116可以基于写入请求的数据的模式向存储设备130发送写入命令writecmd或修剪命令trimcmd。操作s230指示模式检查器118被打开的状态下的操作。

在操作s231中,设备驱动器116可以接收从文件系统114提供的写入数据writedata。提供给设备驱动器116的写入数据可以是应用程序112根据文件系统114的格式划分或组合提供给文件系统114的写入文件的数据。在一些示例实施例中,从文件系统114提供的写入数据的数据模式可以被维护为从应用程序112提供。

在操作s232中,设备驱动器116可以将从文件系统114提供的写入数据writedata与存储在设备驱动器116中的修剪模式trim_ptrn进行比较。修剪模式trim_ptrn可以是针对修剪、根据规则预先定义或选择的数据模式。应用程序112可以向文件系统114提供具有修剪模式trim_ptrn的文件的写入请求以提供修剪命令。此外,文件系统114可以将具有修剪模式trim_ptrn的文件转换为存储设备130的管理单元(例如,扇区单元)的数据,并且可以请求设备驱动器116写入管理单元的数据。

在操作s233中,处理可以根据写入数据writedata和修剪模式trim_ptrn的比较结果进行分支。如果写入数据writedata与修剪模式trim_ptrn相同(是),则处理可以进行到操作s234。如果检测到写入数据writedata与修剪模式trim_ptrn不同(否),则处理进行到操作s235。

在操作s234中,设备驱动器116可以将修剪命令trimcmd和与写入数据writedata相对应的地址(例如,lba)一起发送到存储设备130。

在操作s235中,设备驱动器116可以将写入命令writecmd发送到存储设备130,以便将写入数据writedata编程在指定地址(例如,lba)的存储区域中。

在操作s236中,设备驱动器116可以检测是否存在文件系统114请求设备驱动器116进一步写入的写入数据writedata。如果没有从文件系统114进一步提供写入数据writedata(否),则操作s230的整个处理可以结束。如果从文件系统114提供下面的写入数据writedata(是),则处理返回到操作s231。

上述操作s230的详细操作仅仅是帮助理解本发明构思的示例实施例的示例。因此,修剪命令trimcmd的发出时间点可以不限于上述细节,并且可以理解,时间点被不同地调整。

图7是示出图4至图6中描述的主机110的应用程序112、文件系统114和设备驱动器116之间的交互的图。参考图7,可以在不依赖于文件系统114的支持的情况下执行修剪操作。

在操作s10中,应用程序112可以检测修剪条件trimcondition的发生。

在操作s11中,应用程序112可以向设备驱动器116发送指示修剪操作开始的开始命令startcmd。

在操作s12中,设备驱动器116可以基于开始命令startcmd打开模式检查器118。

在操作s12-1中,设备驱动器116可以响应于开始命令startcmd向应用程序112发送指示模式检查器118处于打开状态的信息。如果需要,可以省略指示响应处理的操作s12-1。

在操作s13中,应用程序112可以向文件系统114发送具有指定模式的文件的写入请求。

在操作s14中,文件系统114可以响应于来自应用程序112的文件写入请求,将写入请求的文件分配给存储设备130的未使用区域。此外,文件系统114可以请求设备驱动器116基于与分配区域相对应的数据单元(例如,扇区单元)写入数据。

在操作s15中,设备驱动器116可以比较来自文件系统114的写入请求的数据的模式与修剪模式trim_ptrn是否相同。

如果写入请求的数据的模式与修剪模式trim_ptrn相同,则在操作s16中,设备驱动器116可以向存储设备130发送修剪命令trimcmd。

然而,如果写入请求的数据的模式与修剪模式trim_ptrn不同,则在操作s17中,设备驱动器116可以向存储设备130发送写入命令writecmd。

存储设备130可以响应于修剪命令trimcmd对指示的地址范围执行伴随有擦除操作的修剪操作。当接收到写入命令writecmd时,存储设备130可以在相对应的地址范围的存储区域中对写入数据编程。

在操作s18中,应用程序112可以向设备驱动器116发送停止命令stopcmd。

在操作s19中,设备驱动器116可以关闭模式检查器118并且可以结束修剪操作。

如果没有发送停止命令stopcmd,则应用程序112、文件系统114和设备驱动器116可以重复操作s13到操作s17。

以上,描述了用于修剪操作的应用程序112、文件系统114和设备驱动器116之间的示例交互。在一些示例实施例中,可以在发送停止命令stopcmd之后执行修剪命令trimcmd或写入命令writecmd的发送。将参考附图描述这种示例实施例。

图8是示出根据本发明构思的另一示例实施例的设备驱动器的操作的流程图。参考图8,设备驱动器116可以响应于从应用程序112和文件系统114提供的命令或数据向存储设备130提供修剪命令trimcmd。在这种情况下,修剪命令trimcmd可以参考关闭模式检查器118之后对模式检查器118的累积检查结果被发送到存储设备130。在此,操作s310和操作s320与图5的操作s210至操作s220相同或基本相似。因此,省略其说明。

随着作为操作s310和操作s320的结果的检测,开始命令startcmd可以被发送到设备驱动器116。

在操作s330中,设备驱动器116可以基于开始命令startcmd打开模式检查器118。此外,模式检查器118可以比较从文件系统114提供的写入数据writedata与修剪模式trim_ptrn是否相同。在一些示例实施例中,比较结果可以存储在指定存储器中,并且可以不生成修剪命令trimcmd或写入命令writecmd。

在操作s340中,设备驱动器116可以根据是否接收到停止命令stopcmd进行分支。如果没有接收到停止命令stopcmd(否),则处理可以返回到操作s330。如果接收到停止命令stopcmd(是),则处理可以进行到操作s350。

在操作s350中,设备驱动器116可以去激活或关闭模式检查器118。在这种情况下,模式检查器118可以停止模式比较操作。然后,从文件系统114提供的写入数据可以写入存储设备130,而与模式无关。

在操作s360中,设备驱动器116可以通过使用在操作s330中的累积比较结果来生成修剪命令trimcmd或写入命令writecmd。也就是说,通过使用修剪命令trimcmd,设备驱动器116可以处理在其中存储有写入请求的数据当中与修剪模式trim_ptrn具有相同模式的数据的区域。另一方面,通过使用写入命令writecmd,设备驱动器116可以处理写入请求的数据当中与修剪模式trim_ptrn具有不同模式的数据。

以上,在图8中描述了用于生成设备驱动器116的修剪命令trimcmd的另一种方法。图5的操作方法和图8的操作方法可以根据环境(例如,主机110的硬件、主机110的操作系统或存储设备130的特性)来选择或组合。

图9是示出图8的操作s360的详细操作的流程图。参考图9,设备驱动器116可以累积关于从文件系统114提供的写入数据的模式检查的结果,并且可以基于累积的模式检查的结果将修剪命令trimcmd发送到存储设备130。

在操作s361中,设备驱动器116可以通过模式检查器118来收集在操作s330(参考图8)中执行的模式检查的结果。也就是说,设备驱动器116可以从已存储的存储区域读取写入请求的数据的模式与修剪模式trim_ptrn是否相同。

在操作s362中,设备驱动器116可以将从文件系统114提供的写入数据分类为与修剪模式trim_ptrn相同的数据和与修剪模式trim_ptrn不同的数据。

在操作s363中,设备驱动器116可以根据分类结果进行分支。如果写入数据与修剪模式trim_ptrn相同(是),则处理进行到操作s364。另一方面,如果写入数据与修剪模式trim_ptrn不同(否),则处理可以进行到操作s365。

在操作s364中,设备驱动器116可以生成用于修剪其中存储有写入请求的数据的存储区域的修剪命令trimcmd,并且将修剪命令trimcmd发送到存储设备130。

在操作s365中,设备驱动器116可以向存储设备130发送用于在存储区域中对写入请求的数据编程的写入命令。

以上,操作s360的详细操作仅仅是帮助理解本发明构思的示例实施例的一个示例。因此,发出修剪命令trimcmd的时间点不限于描述的细节。时间点可以进行各种调整。

图10是示出图8和图9中描述的主机110的应用程序112、文件系统114和设备驱动器116之间的交互的图。参考图10,设备驱动器116可以累积和组合模式检查的结果,并且可以生成修剪命令trimcmd。

在操作s20中,应用程序112可以检测需要修剪条件trimcondition的事件。例如,可能存在这样的情况,其中,可以在存储设备130中写入数据的可用存储容量达到阈值或者空闲块的数量小于参考值。

在操作s21中,应用程序112可以将指示开始修剪操作的开始命令startcmd发送到设备驱动器116。

在操作s22中,设备驱动器116可以基于开始命令startcmd打开模式检查器118。

在操作s22-1中,设备驱动器116可以响应于开始命令startcmd向应用程序112发送指示模式检查器118处于打开状态的信息。如果需要,可以省略指示设备驱动器116的响应处理的操作s22-1。

在操作s23中,应用程序112可以向文件系统114发送对具有指定模式的文件的写入请求。在这种情况下,应用程序112可以向文件系统114发送多个文件的写入请求。

在操作s24中,文件系统114可以将来自应用程序112的写入请求的文件转换成文件系统114的管理单元的数据。此外,文件系统114可以将管理单元的数据分配给存储设备130的未使用区域。文件系统114可以请求设备驱动器116写入与分配区域相对应的数据单元(例如,扇区单元)。

在操作s25中,设备驱动器116可以比较来自文件系统114的写入请求的数据的模式与修剪模式trim_ptrn是否相同。与每个数据相关联的修剪模式trim_ptrn的比较结果可以存储在存储器中并且可以被累积。

在操作s26中,应用程序112可以向设备驱动器116发送停止命令stopcmd。

在操作s27中,设备驱动器116可以关闭模式检查器118。

在操作s28中,设备驱动器116可以参考在操作s25中累积的比较结果,将修剪命令trimcmd或写入命令writecmd发送到存储设备130。

在操作s29中,设备驱动器116可以向与修剪模式trim_ptrn相同模式的写入数据分配修剪命令trimcmd。接下来,可以发送用于修剪与分配了修剪命令trimcmd的写入数据相对应的存储区域的修剪命令。此外,设备驱动器116可以向与修剪模式trim_ptrn不同模式的写入数据分配写入命令writecmd,并且可以向存储设备130发送写入命令。存储设备130可以响应于修剪命令trimcmd对指示的地址范围执行带有擦除操作的修剪操作。当接收到写入命令writecmd时,存储设备130可以在相对应的地址范围的存储区域中对写入数据编程。

以上,描述了用于修剪操作的应用程序112、文件系统114和设备驱动器116的交互。修剪命令trimcmd或写入命令writecmd的传输时间点不限于本公开。

图11是示出图1的存储设备的另一示例的框图。参考图11,存储设备130a可以是通过第一接口if1与主机110连接的ssd。例如,存储设备130a可以用能够通过usb端口与主机110连接的便携式ssd来实现。在一些示例实施例中,存储设备130a可以用能够通过雷电(thunderbolt)端口与主机110连接的便携式ssd来实现。存储设备130a可以包括桥接控制器150和sd170。

桥接控制器150可以将ssd170的第二接口if2164连接到主机110的第一接口if1162。例如,当使用桥接控制器150时,使用sata方式的接口的ssd170可以通过usb方式的连接端口与主机110连接。例如,通过桥接控制器150,使用nvme方式的接口的ssd170可以通过雷电连接端口与主机110连接。在这种情况下,第一接口if1162和第二接口if2164的组合可以不限于上述示例实施例,并且可以是用于各种目的的各种接口的组合。

ssd170可以包括存储控制器171和非易失性存储设备173。尽管没有在图11中示出,ssd170还可以包括缓冲存储器。ssd170的配置可以与图1的存储设备130的配置相同或基本相似。因此省略其详细描述。

当存储设备130a通过支持第一接口if1的端口与主机110连接时,指定文件系统可能不支持与usb端口连接的存储设备130a的修剪操作。然而,根据本发明构思的示例实施例,当应用修剪方案时,修剪命令trimcmd可以由应用程序112和设备驱动器116提供。因此,根据本发明构思的示例实施例,当应用修剪方案时,可以支持各种存储设备上的修剪操作,而与文件系统114的特性或类型无关。

图12是示出根据本发明构思的另一示例实施例的用户设备的框图。参考图12,用户设备200可以包括主机210和存储设备230。

主机210可以向存储设备230发送模式检查开始命令ptcstart、修剪模式trim_ptrn和模式检查停止命令ptcstop。存储设备230可以响应于模式检查开始命令ptcstart、修剪模式trim_ptrn和模式检查停止命令ptcstop执行修剪操作。

当检测到或满足修剪条件时,主机210可以将模式检查开始命令ptcstart发送到存储设备230。在这种情况下,存储控制器231可以激活将从主机210提供的数据的模式与指定模式(例如,trim_ptrn)进行比较的功能。接下来,主机210可以将修剪模式trim_ptrn的写入数据发送到存储设备230。当指定模式的写入数据被检查时,存储控制器231可以对写入请求的非易失性存储设备235的存储区域执行修剪操作。修剪操作可以通过来自主机210的模式检查停止命令ptcstop结束。

存储设备230可以通过使用从主机210提供的写入数据、模式检查开始命令ptcstart和模式检查停止命令ptcstop来执行修剪操作,而不需要单独的修剪命令trimcmd。

图13是示出由图12的主机执行的修剪操作的流程图。参考图13,主机210可以通过使用模式检查开始命令ptcstartcmd、修剪模式trim_ptrn和模式检查停止命令ptcstopcmd来控制存储设备230的修剪操作,而不生成单独的修剪命令。

在操作s410中,主机210可以检测修剪条件(例如,修剪存储设备230的可取性)。例如,可以基于存储设备230的空闲块的数量是否小于或等于参考值或者可用存储容量是否小于或等于参考大小来检测可取性。可以不同地确定对修剪操作进行修剪的可取性。

在操作s420中,主机210可以根据是否满足修剪条件来分支。当满足修剪条件时,处理可以进行到操作s430。如果不满足修剪条件,则处理可以返回到操作s410。

在操作s430中,主机210可以向存储设备230发送用于激活存储设备230的修剪操作的模式检查开始命令ptcstartcmd。

在操作s440中,主机210可以将具有根据规则预先定义或选择的修剪模式trim_ptrn的数据发送到存储设备230。可以通过使用写入命令将具有修剪模式trim_ptrn的数据发送到存储设备230。然而,用于发送具有修剪模式trim_ptrn的数据的方法不限于本公开。

在操作s450中,主机210可以通过例如确定存储设备230的空闲块的数量是大于或等于参考值或者可用存储容量是否大于或等于参考大小来检测停止条件。在一些示例实施例中,可以不同地检测修剪操作的停止条件。当满足修剪停止条件时,处理可以进行到操作s460。当不满足修剪停止条件时,处理可以返回到操作s440。

在操作s460中,主机210可以将模式检查停止命令ptcstopcmd发送到存储设备230。在这种情况下,可以去激活存储设备230的修剪操作。

图14是示出由图12的存储设备执行的修剪操作的流程图。参考图14,存储设备230可以基于从主机210提供的模式检查开始命令ptcstartcmd、修剪模式trim_ptrn和模式检查停止命令ptcstopcmd执行修剪操作。

在操作s510中,存储设备230可以检测是否从主机210提供模式检查开始命令ptcstartcmd。

在操作s520中,如果确定接收到模式检查开始命令ptcstartcmd,则存储设备230可以执行操作s530。如果确定没有接收到模式检查开始命令ptcstartcmd,则存储设备230可以将处理移动到操作s510。

在操作s530中,存储设备230可以响应于模式检查开始命令ptcstartcmd而打开包括在存储控制器231中的模式检查器。模式检查器可以用硬件或软件模块来实现。可以根据模式检查器的激活来激活存储设备230的修剪操作。模式检查器可以检测从主机210提供的修剪模式trim_ptrn与根据规则预先定义或选择的模式是否相同。如果从主机210提供的修剪模式trim_ptrn与根据规则预先定义或选择的模式相同,则存储控制器231可以对存储修剪模式的非易失性存储设备235的存储区域执行修剪操作。然而,如果从主机210提供的修剪模式trim_ptrn与根据规则预先定义或选择的模式不相同,则存储控制器231可以不执行修剪操作。

在操作s540中,存储设备230可以检测是否接收到从主机210提供的模式检查停止命令ptcstopcmd。如果确定接收到模式检查停止命令ptcstopcmd,则处理可以进行到操作s550。如果确定没有接收到模式检查停止命令ptcstopcmd,则处理返回到操作s530。

在操作s550中,存储设备230可以关闭模式检查器的功能。存储设备230可以停止全部修剪操作。

在上述图11至图14中,主机210可以不生成修剪命令,而是以发送指示开始和停止修剪操作的控制信号pctstart和pctstop的方式发送修剪条件以及修剪模式trim_ptrn的数据。

根据本发明构思的示例实施例,用户设备可以向存储设备提供修剪命令,而不依赖于主机的操作系统或文件系统。根据本发明构思的修剪管理方法,可以提供在应用程序和设备驱动器的控制下的修剪方案。此外,因为仅在需要时激活用于执行设备驱动器的修剪操作的模式检查操作,所以可以提高存储设备的修剪操作的通用性和功率性能。

如上所述,参考附图和说明书公开了一些示例实施例。在此,本文所用的术语仅用于描述特定示例实施例的目的,而不意图限制本发明构思。因此,应当理解,本领域技术人员根据这一点可以进行各种修改和其它等效的示例实施例。本发明构思的技术保护范围将由所附权利要求的技术精神来限定。

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