存储装置和数据存储方法与流程

文档序号:23821816发布日期:2021-02-03 16:57阅读:140来源:国知局
存储装置和数据存储方法与流程
存储装置和数据存储方法
[0001]
相关申请的交叉引用
[0002]
本申请要求于2019年8月23日在韩国知识产权局提交的韩国专利申请no.10-2019-0094034的优先权,所述申请的公开以引用方式全文并入本文中。
技术领域
[0003]
本文公开的本发明构思的实施例涉及一种半导体装置,并且更具体地说,涉及一种通过利用缓冲区使写入速度和读取速度加速的存储装置。


背景技术:

[0004]
半导体存储器装置作为易失性存储器用于诸如计算机、平板电脑、相机和智能手机等装置中,其中,所述易失性存储器用于存储临时数据。易失性存储器装置传递信息非常快,但当装置断电时,临时存储的数据将被删除。
[0005]
可替换地,非易失性存储器装置(诸如相变ram(pram)、磁ram(mram)、电阻ram(rram)、铁电ram(fram)和闪速存储器)在装置关闭时保存数据。非易失性存储器装置通常比易失性存储器装置传递信息的速度更慢。然而,闪速存储器允许数据的非易失性存储和快速的操作速度。通用闪存(ufs)标准提供了闪速存储规范。随着技术的进步,改变了ufs标准以提高存储器性能。
[0006]
当更新ufs标准时,可能需要较旧技术适应以迎合新的规范。因此,本领域需要能够使较旧的ufs标准存储器装置与最新一代ufs装置通信的系统和方法。


技术实现要素:

[0007]
本发明构思的实施例提供了一种用于使写入速度和读取速度加速的存储装置。
[0008]
根据示例性实施例,一种存储装置包括:非易失性存储器装置,其包括第一区域、第二区域和第三区域;以及控制器,其从外部主机装置接收写入命令和第一数据,当第一数据与turbo写入相关联时,将第一数据优先写入第一区域或者第二区域而不是第三区域中,并且当第一数据与普通写入相关联时,基于普通写入策略将第一数据写入第一区域、第二区域或第三区域中。
[0009]
控制器从外部主机装置接收读取命令,以基于读取命令从第一区域、第二区域或第三区域读取第二数据,并且将第二数据输出至外部主机装置。当读取命令与移动信息一起被接收时,控制器还响应于读取命令的移动信息来移动第二数据。
[0010]
根据示例性实施例,一种存储装置包括:非易失性存储器装置,其包括第一区域、第二区域和第三区域;以及控制器,其从外部主机装置接收写入命令和第一数据,当第一数据与turbo写入相关联时,将第一数据优先写入第一区域或者第二区域而不是第三区域中,并且当第一数据与普通写入相关联时,基于普通写入策略将第一数据写入第一区域、第二区域或第三区域。控制器从外部主机装置接收包括第一组编号和移动信息的查询请求,并且基于移动信息为对应于第一组编号的数据设定移动属性。控制器在查询请求之后接收包
括逻辑地址和第二组编号的读取命令,从第一区域、第二区域或第三区域读取对应于逻辑地址的第二数据,将第二数据输出至外部主机装置,并且当第二组编号与第一组编号匹配时,基于移动属性来移动第二数据。
[0011]
根据示例性实施例,一种存储装置包括:非易失性存储器装置,其包括第一区域、第二区域和第三区域;以及控制器,其从外部主机装置接收读取命令,基于读取命令从第一区域、第二区域或第三区域读取数据,将该数据输出至外部主机装置,并响应于该读取命令将该数据移动至第一区域、第二区域或第三区域。
[0012]
根据示例性实施例,一种数据存储方法包括:接收写入命令和第一数据;确定写入命令对应于普通写入还是turbo写入;基于所述确定选择非易失性存储器装置的区域,其中,当写入命令对应于turbo写入时,选定区域包括turbo写入缓冲器,并且当写入命令对应于普通写入时,选定区域包括turbo写入缓冲器或用户存储区域;以及基于写入命令将第一数据写入非易失性存储器装置的选定区域。在一些情况下,所述方法可以包括:接收读取命令;基于读取命令从非易失性存储器读取第二数据;确定读取命令是否包括移动信息;以及基于读取命令是否包括移动信息来移动第二数据。
附图说明
[0013]
通过参照附图详细描述本发明构思的示例性实施例,本发明构思的以上和其它方面和特征将变得显而易见。
[0014]
图1是示出根据本发明构思的实施例的存储系统的框图;
[0015]
图2是示出图1的存储装置的物理存储空间的图;
[0016]
图3a和图3b是用于描述图2的turbo写入缓冲器类型的图;
[0017]
图4a和图4b是用于描述配置图1的存储装置的turbo写入缓冲器的模式的图;
[0018]
图5是示出图1的存储系统的操作的流程图;
[0019]
图6是示出图1的存储系统的操作的流程图;
[0020]
图7是示出图1的存储装置的操作的流程图;
[0021]
图8是示出图1的存储装置的物理存储空间的框图;
[0022]
图9是示出用于参照图8描述的存储装置的物理存储空间的逻辑存储空间的图;
[0023]
图10a和图10b是示出参照图8描述的存储装置的物理存储空间中的操作的图;
[0024]
图11示出了在存储系统执行的导致数据移动的读取操作的示例;
[0025]
图12示出了图11所示的命令upiu cu的示例;
[0026]
图13示出了存储在固定turbo写入缓冲器、非固定turbo写入缓冲器和用户存储器中的数据的示例;
[0027]
图14示出了其中存储装置基于强制水平信息来移动数据的示例;
[0028]
图15示出了其中存储装置基于激活模式信息来移动数据的示例;
[0029]
图16示出了图11的响应upiu的示例;
[0030]
图17和图18示出了其中以存储装置与查询请求upiu qu和命令upiu的组合执行数据的移动操作的示例;
[0031]
图19是示出图1的存储系统的层次结构的图;
[0032]
图20是详细示出根据本发明构思的实施例的存储系统的框图;
[0033]
图21示出了其中将本发明构思的实施例应用于存储系统的概念图。
具体实施方式
[0034]
本公开描述了使旧的通用闪存(ufs)标准存储器装置能够与较新一代ufs装置通信的系统和方法。例如,较新的ufs标准可以包括turbo写入规范。根据turbo写入过程,ufs装置的存储空间的一部分可以用作多级单元(mlc)空间(例如,三级单元(tlc)空间),而剩余部分可以用作单级单元(slc)空间。主机可以将tlc容量和slc容量之和识别为ufs装置的总容量。
[0035]
ufs装置可以基于主机的请求来启用或禁用turbo写入过程。当turbo写入过程被启用时,ufs装置可以通过在slc空间中优先地写入从主机接收的数据来使写入速度加速。
[0036]
另外,slc空间的读取速度可高于tlc空间的读取速度。因此,存储在ufs装置的slc空间中的数据的读取速度也可加速。因此,提出本发明构思,意在提出用于使得主机根据包括turbo写入规范的较新的ufs标准从ufs装置请求turbo读取进程的装置。
[0037]
下面,可详细且清楚地描述本发明构思的实施例,以达到使得本领域普通技术人员能够容易地实施本发明构思的程度。
[0038]
图1是示出根据本发明构思的实施例的存储系统的框图。参照图1,存储系统1000可以包括主机1100和存储装置1200。在示例性实施例中,存储系统1000可以包括诸如个人计算机、笔记本电脑、平板电脑、智能电话和可佩戴装置的各种计算系统之一。
[0039]
主机1100可以将数据存储在存储装置1200中,或者可以读取存储在存储装置1200中的数据。例如,主机1100可以将写入命令和写入数据传送至存储装置1200,以将数据存储在存储装置1200中。可替换地,为了读取存储在存储装置1200中的数据,主机1100可以将读取命令传送至存储装置1200,并且可以从存储装置1200接收数据。
[0040]
主机1100可以包括诸如中央处理单元(cpu)或应用处理器(ap)的主处理器。另外,主机1100可以包括辅助主处理器的辅助处理器,诸如图形处理单元(gpu)或神经处理单元(npu)。
[0041]
存储装置1200可以在主机1100的控制下操作。例如,存储装置1200可以包括控制器1210和非易失性存储器装置1220。控制器1210可以响应于从主机1100接收的命令操作。例如,控制器1210可以从主机1100接收写入命令和写入数据。另外,控制器1210可以响应于接收到的写入命令来将接收写入数据存储在非易失性存储器装置1220中。
[0042]
可替换地,控制器1210可以从主机1100接收读取命令。另外,控制器1210可以响应于接收到的读取命令来读取存储在非易失性存储器装置1220中的数据。然后,控制器1210可将读取数据传送至主机1100。在示例性实施例中,非易失性存储器装置1220可为nand闪速存储器装置,但是本发明构思不限于此。
[0043]
在示例性实施例中,主机1100可基于由诸如jedec标准的特定标准限定的通用闪存(ufs)接口来与存储装置1200通信。例如,主机1100和存储装置1200可以交换ufs协议信息单元(upiu)形式的分组。upiu可以包括由主机1100与存储装置1200之间的接口(例如,ufs接口)限定的各种信息。然而,本发明构思不限于此。
[0044]
在示例性实施例中,存储装置1200可以支持turbo写入功能。turbo写入功能可以在主机1100的控制下被启用或禁用。当turbo写入功能在主机1100的控制下被启用时,存储
装置1200可以执行turbo写入操作。可以基于slc写入来执行turbo写入操作。另外,turbo写入操作可以提供存储装置1200的增强的性能(例如,增强的写入性能)。将参照下面的描述来更完全地描述turbo写入操作。
[0045]
图2是示出图1的存储装置1200的物理存储空间ps的图。存储装置1200的物理存储空间ps可表示其中存储了用户数据的非易失性存储器装置1220的物理区域。例如,物理存储空间ps可为通过主机1100识别为存储装置1200的容量的空间。
[0046]
在示例性实施例中,除图2所示的物理存储空间ps之外,存储装置1200还可以包括任何其它存储空间(例如,未通过主机1100识别为存储装置1200的容量的空间,诸如保留区域、用于存储元数据的元区域或用于提高性能的过度预配区域)。然而,为了描述简洁,将省略(或最少化)与其它存储空间相关联的额外描述,并且描述将集中在存储用户数据的物理存储空间ps上。
[0047]
参照图1和图2,存储装置1200的物理存储空间ps可以包括turbo写入缓冲区域(twb)和用户存储区域(ust)。为了描述简洁,下文中,turbo写入缓冲区域(twb)将被称作“turbo写入缓冲器”。另外,为了描述简洁,下文中,用户存储区域(ust)将被称作“用户存储器”。
[0048]
turbo写入缓冲器twb可对应于非易失性存储器装置1220的物理存储空间ps的一部分(例如,“a”)。用户存储器ust可对应于存储装置1200中的非易失性存储器装置1220的物理存储空间ps的剩余部分(例如,“b”),或者可对应于非易失性存储器装置1220的整个物理存储空间ps(例如,a+b)。
[0049]
在示例性实施例中,对应于turbo写入缓冲器twb的存储器单元中的每一个可用作单级单元(slc)。另外,对应于用户存储器ust的存储器单元中的每一个可用作多级单元(mlc),诸如三级单元(tlc)。
[0050]
可替换地,对应于turbo写入缓冲器twb的存储器单元中的每一个可被配置为存储n比特数据(n为正整数)。另外,对应于用户存储器ust的存储器单元中的每一个可被配置为存储m比特数据(m为大于n的正整数)。例如,turbo写入缓冲器twb可表示比用户存储器ust支持更高的写入速度的区域。
[0051]
对于另一示例,“n”可为大于“m”的正整数。例如,turbo写入缓冲器twb的各个存储器单元存储的比特数可大于用户存储器ust的各个存储器单元存储的比特数。在turbo写入缓冲器twb和用户存储器ust中,可靠性和寿命可影响每存储器单元将要存储的比特数。
[0052]
在示例性实施例中,参考标号“a”和“b”中的每一个可表示对应存储空间中的存储器块的数量。“a”和“b”的值可基于turbo写入缓冲器twb和用户存储器ust的大小以及实施turbo写入缓冲器twb和用户存储器ust的方案(例如,slc、mlc、tlc和qlc)进行不同地改变。
[0053]
在示例性实施例中,如参照图1描述的,根据本发明构思的实施例的存储装置1200可支持普通写入功能和turbo写入功能。当由主机1100启用turbo写入功能时,存储装置1200可以执行turbo写入操作。当由主机1100禁用turbo写入功能时,存储装置1200可以执行普通写入操作。
[0054]
例如,在其中启用turbo写入功能的情况下,存储装置1200可以首先将从主机1100接收的写入数据写入turbo写入缓冲器twb中。
[0055]
在这种情况下,因为从主机1100接收的写入数据被写入turbo写入缓冲器twb中
(例如,利用slc程序),所以与对用户存储器ust执行普通写入操作(例如,利用tlc程序)的情况相比,可确保快操作速度。
[0056]
在其中禁用turbo写入功能的情况下,存储装置1200可以首先不将写入数据写入turbo写入缓冲器twb中。基于内部给出的策略(例如,普通写入策略),存储装置1200可以将写入数据直接写入用户存储器ust中,或者可以将写入数据写入turbo写入缓冲器twb中。可以基于各种因素来确定写入写入数据的处理。所述因素可取决于普通写入策略。例如,turbo写入缓冲器twb的数据共享和物理存储空间ps的状态可为影响写入写入数据的因素。
[0057]
对于另一示例,可确定普通写入策略以首先将写入数据写入用户存储器ust中。在具体描述中,假设普通写入策略为其中写入数据被优先写入用户存储器ust中的策略。术语“优先写入”是指这样的策略:如果区域可用于写入数据,则写入数据(例如,写入第一区域或第二区域中),否则,则将数据写入不同的区域(例如,第三区域)。然而,本发明构思不限于此。
[0058]
在示例性实施例中,基于来自主机1100的明确命令或内部给出的策略,可以将写入turbo写入缓冲器twb中的数据清理或迁移到用户存储器ust。
[0059]
根据示例性实施例,一种数据存储的方法包括:从外部主机装置接收写入命令和第一数据;确定写入命令对应于普通写入还是turbo写入;基于所述确定来选择非易失性存储器装置的区域,其中,当写入命令对应于turbo写入时,选定区域包括turbo写入缓冲器twb,并且当写入命令对应于普通写入时,选定区域包括turbo写入缓冲器twb或用户存储区域ust;以及基于写入命令将第一数据写入非易失性存储器装置的选定区域。
[0060]
在一些情况下,所述方法可以包括:从外部主机装置接收读取命令;基于读取命令从非易失性存储器读取第二数据;确定读取命令是否包括移动信息;以及基于读取命令是否包括移动信息来移动第二数据。例如,移动信息可以包括用于将第二数据从turbo写入缓冲器twb移动至用户存储区域ust的信息。
[0061]
图3a和图3b是用于描述图2的turbo写入缓冲器类型的图。参照图1、图2、图3a和图3b,存储装置1200可以包括第一逻辑单元lu1至第四逻辑单元lu4。第一逻辑单元lu1至第四逻辑单元lu4中的每一个可指示用于处理来自主机1100的命令的处理对象由外部管理并且是独立的。主机1100可通过第一逻辑单元lu1至第四逻辑单元lu4来管理存储装置1200的存储空间。第一逻辑单元lu1至第四逻辑单元lu4中的每一个可以用于在存储装置1200处存储数据。
[0062]
第一逻辑单元lu1至第四逻辑单元lu4中的每一个可与非易失性存储器装置1220的至少一个存储器块相关联。可存在用于各种应用的各种逻辑单元。然而,假设第一逻辑单元lu1至第四逻辑单元lu4对应于物理存储空间ps,并且用于存储主机1100的数据。
[0063]
图3a和图3b中示出了第一逻辑单元lu1至第四逻辑单元lu4,但是本发明构思不限于此。例如,除第一逻辑单元lu1至第四逻辑单元lu4之外,存储装置1200还可以包括用于存储和管理用户数据的其它逻辑单元。可替换地,除第一逻辑单元lu1至第四逻辑单元lu4之外,存储装置1200还可以包括用于支持各种功能的其它逻辑单元。
[0064]
根据本发明构思的实施例的存储装置1200的turbo写入缓冲器twb可以按照各种类型来配置。可按照逻辑单元(lu)专用缓冲器类型和共享缓冲器类型之一来配置turbo写入缓冲器twb。
[0065]
在lu专用缓冲器类型的情况下,turbo写入缓冲器twb可以针对每个逻辑单元lu独立地或者单独地进行配置。例如,如图3a所示,在lu专用缓冲器类型中,可以相对于第一逻辑单元lu1至第四逻辑单元lu4中的第一逻辑单元lu1对第一turbo写入缓冲器twb1进行配置。另外,可以相对于其中的第三逻辑单元lu3对第三turbo写入缓冲器twb3进行配置。
[0066]
在lu专用缓冲器类型中,在其中在启用turbo写入之后接收到用于第一逻辑单元lu1的写入命令的情况下,可以将写入数据优先写入对应于第一逻辑单元lu1的第一turbo写入缓冲器twb1中。在其中在启用turbo写入功能之后接收到用于第三逻辑单元lu3的写入命令的情况下,可以将写入数据优先写入对应于第三逻辑单元lu3的第三turbo写入缓冲器twb3中。
[0067]
在其中针对未分配turbo写入缓冲器twb的第二逻辑单元lu2和第四逻辑单元lu4接收到写入命令的情况下,写入数据可以写入对应于第二逻辑单元lu2和第四逻辑单元lu4的用户存储器ust中。另外,在其中在禁用turbo写入之后接收到用于第一逻辑单元lu1或第三逻辑单元lu3的写入命令的情况下,基于普通写入策略,写入数据可以写入第一逻辑单元lu1的用户存储器ust或者第一turbo写入缓冲器twb1中,或者可以写入第三逻辑单元lu3的用户存储器ust或者第三turbo写入缓冲器twb3中。
[0068]
在示例性实施例中,第一turbo写入缓冲器twb1和第三turbo写入缓冲器twb3的容量可彼此独立地设定。然而,本发明构思不限于此。例如,分别分配了turbo写入缓冲器的逻辑单元的数量、各个turbo写入缓冲器的容量等可以进行不同地改变或修改。
[0069]
在示例性实施例中,可以将用于各个逻辑单元的turbo写入缓冲器twb的大小设定为单元描述符的每单元turbo写入缓冲器大小字段(例如,“dlunumturbowritebufferallocunits”)。在示例性实施例中,每单元turbo写入缓冲器大小字段(例如,“dlunumturbowritebufferallocunits”)可以是可配置参数。
[0070]
在共享缓冲器类型的情况下,可以相对于逻辑单元对一个turbo写入缓冲器进行配置。例如,如图3b所示,在共享缓冲器类型中,一个turbo写入缓冲器twb0可以被配置为被第一逻辑单元lu1至第四逻辑单元lu4共享。
[0071]
在这种情况下,当在启用turbo写入功能之后接收到针对第一逻辑单元lu1至第四逻辑单元lu4中的每一个的写入命令时,可以将写入数据优先写入共享的turbo写入缓冲器twb0中。在其中在禁用turbo写入之后接收到针对第一逻辑单元lu1至第四逻辑单元lu4中的每一个的写入命令的情况下,写入数据可以写入第一逻辑单元lu1至第四逻辑单元lu4中的每一个的用户存储器ust中或者共享的turbo写入缓冲器twb0中。
[0072]
如上所述,根据本发明构思的实施例,存储装置1200可以包括用于支持turbo写入功能的turbo写入缓冲器twb。根据缓冲器类型(例如,lu专用缓冲器类型或者共享缓冲器类型),可以相对于多个逻辑单元中的每一个对turbo写入缓冲器twb进行配置。可替换地,可以相对于逻辑单元对一个turbo写入缓冲器twb进行配置。
[0073]
图4a和图4b是用于描述用于配置图1的存储装置的turbo写入缓冲器的模式的图。例如,无论缓冲器类型(例如,lu专用缓冲器类型和共享缓冲器类型)如何,都将turbo写入缓冲器一体地示为一个空间。
[0074]
下面,为了描述简洁,基于tlc,假设存储装置1200的物理存储空间ps为32gb。例如,在其中包括在存储装置1200中的存储器单元中的每一个存储3比特数据的情况下,存储
装置1200可以存储32gb的用户数据。
[0075]
然而,本发明构思不限于此。例如,存储装置1200的物理存储空间ps可基于实施存储装置1200或者非易失性存储器装置1220的方案(例如,基于存储器单元类型(例如,slc、mlc、tlc或qlc)、存储器单元的数量、存储器单元结构、过度预配比率等改变)来进行不同地改变。
[0076]
参照图1、图4a和图4b,根据本发明构思的实施例,存储装置1200可基于各种模式配置turbo写入缓冲器twb的物理存储空间。例如,存储装置1200可以基于用户容量减小模式和非用户容量减小模式之一配置turbo写入缓冲器的物理存储空间。
[0077]
用户容量减小模式可表示减小用户存储器usta的用户容量来配置turbo写入缓冲器twba的模式。例如,如图4a所示,基于tlc,存储装置1200的物理存储空间ps可为32gb。
[0078]
在配置turbo写入缓冲器twb之前,可将32gb容量(即,物理存储空间ps的全部容量)分配给用户存储器ust,或者可将其用于用户存储器ust。在这种情况下,从主机1100的视角,可以将用户存储器ust识别为32gb的大小。
[0079]
turbo写入缓冲器twb配置可取决于用户容量减小模式。在这种情况下,可将第二物理存储空间ps2a分配至turbo写入缓冲器twba,或者可将其用于turbo写入缓冲器twba。第二物理存储空间ps2a可为物理存储空间ps的一部分。
[0080]
另外,可以将作为物理存储空间ps的一部分的第一物理存储空间ps1a分配至用户存储器usta,或者可以将其用于用户存储器usta。在这种情况下,与不配置turbo写入缓冲器twba的情况相比,从主机1100的视角,用户存储器usta的容量会减小(即,从32gb减小为24gb)。
[0081]
在示例性实施例中,可以利用tlc实施对应于用户存储器usta的第一物理存储空间ps1a,并且可以利用slc实施对应于turbo写入缓冲器twba的第二物理存储空间ps2a。当将相同的存储空间用作tlc与用作slc时的容量的比率可为“3:1”。
[0082]
换句话说,当turbo写入缓冲器twba的大小增大了1gb或更小时,用户存储器usta的逻辑存储空间的大小可能减小了3gb那么多。如上所述,在其中按照用户容量减小模式配置turbo写入缓冲器twba的情况下,可将存储装置1200的物理存储空间ps的一部分分配用于turbo写入缓冲器twba。因此,由主机1100识别的用户存储器usta的容量会减小。
[0083]
在示例性实施例中,对应于用户存储器usta的第一物理存储空间ps1a和对应于turbo写入缓冲器twba的第二物理存储空间ps2a可以在物理上彼此邻近或者可以在物理上彼此间隔开。
[0084]
非用户容量减小模式可以表示其中即使配置turbo写入缓冲器twbb也不减小由主机1100识别的用户存储器ustb的逻辑存储容量的模式。例如,如图4b所示,在turbo写入缓冲器twb的配置之前,用户存储器ust可具有32gb的容量。例如,可将存储装置1200的物理存储空间ps分配至用户存储器ust,或者可将其用于用户存储器ust。
[0085]
在其中基于非用户容量减小模式配置turbo写入缓冲器twb的情况下,可配置具有一定容量(例如,2gb)的turbo写入缓冲器twb。可将作为物理存储空间ps的一部分的第二物理存储空间ps2b分配至turbo写入缓冲器twbb,或者可将其用于turbo写入缓冲器twbb。
[0086]
与用户容量减小模式不同,非用户容量减小模式中的用户存储器ustb可保持32gb的容量。例如,在非用户容量减小模式中,在配置turbo写入缓冲器twbb之前,用户存储器的
容量可与turbo写入缓冲器twbb相同。从主机1100的视角,可以识别出用户存储器ust的容量。
[0087]
在示例性实施例中,在非用户容量减小模式中,turbo写入缓冲器twbb的大小或者配置可以基于存储装置1200的内部策略或者主机1100的明确请求而变化。例如,当作为物理存储空间ps的一部分的第二物理存储空间ps2b用于配置turbo写入缓冲器twbb时,将用于用户存储器ustb的第一物理存储空间ps1b可以小于用户存储器ustb的容量。
[0088]
例如,在其中第一物理存储空间ps1b全部用于存储用户数据,或者第一物理存储空间ps1b的可用自由容量等于或者小于参考值的情况下,用于turbo写入缓冲器twbb的第二物理存储空间ps2b的全部或者一部分可归还到用户存储器ustb。
[0089]
换句话说,在物理存储空间ps中,在其中可能难以保持turbo写入缓冲器twbb的情况下,分配用于turbo写入缓冲器twbb的第二物理存储空间ps2b可归还到用户存储器ustb。由于缺乏用于用户存储器ustb的可用空间,因此会难以保持turbo写入缓冲器twbb。例如,可以通过用户数据清理操作和设定turbo写入缓冲器大小的操作来执行上述归还操作。
[0090]
在示例性实施例中,主机1100可以检查存储装置1200的turbo写入缓冲器twb的可用大小。例如,存储装置1200可以在attributes的turbo写入缓冲器大小字段(例如,“dcurrentturbowritebuffersize”)设定关于turbo写入缓冲器twb的大小的信息,并且可以在可用turbo写入缓冲器大小字段(例如,“davailableturbowritebuffersize”)设定关于turbo写入缓冲器twb的可用容量的比率的信息。
[0091]
通过检查attributes的turbo写入缓冲器大小字段和可用turbo写入缓冲器大小字段,主机1100可以检查turbo写入缓冲器twb的可用大小。基于经检查的信息,主机1100可以使用turbo写入,或者可以将用于turbo写入缓冲器twb的物理存储空间归还到用户存储器ust。
[0092]
对于另一示例,存储装置1200可以将用于turbo写入缓冲器twb的物理存储空间自动归还到用户存储器ust。主机1100可以通过turbo写入缓冲器大小字段来检查turbo写入缓冲器twb的改变的状态。
[0093]
在示例性实施例中,基于针对turbo写入缓冲器twb分配或者用于turbo写入缓冲器twb的物理存储空间(或者存储器块)的p/e循环的数量,存储装置1200可以提供关于turbo写入缓冲器twb的寿命的信息。例如,存储装置1200可以在attributes的turbo写入缓冲器寿命估计字段(例如,“dturbowritebuffer寿命est”)设定关于turbo写入缓冲器twb的寿命的信息。
[0094]
主机1100可以通过经由查询请求检查存储装置1200的attributes的turbo写入缓冲器寿命估计字段来估计turbo写入缓冲器twb的寿命。在示例性实施例中,在非用户容量减小模式中,因为用户存储器ust和turbo写入缓冲器twb共享物理存储空间ps,所以在其中对用户存储器ust执行写入操作的情况下,会缩短turbo写入缓冲器twb的寿命。
[0095]
图5是示出图1的存储系统1000的操作的流程图。参照图5描述了存储系统1000的初始化操作。参照图1、图2和图5,在操作s11中,主机1100和存储装置1200可执行诸如通电复位操作、硬件复位操作或端点复位操作的操作。
[0096]
参照操作s12,主机1100和存储装置1200可执行硬件复位和启动。例如,主机1100和存储装置1200中的每一个的硬件层可被初始化和启动。
[0097]
参照操作s13,主机1100和存储装置1200可对一层(例如,ufs传输(utp)层)执行初始化。例如,主机1100可以将nop out upiu传送至存储装置1200。存储装置1200可以响应于nop out upiu将nop in upiu传送至主机1100。
[0098]
参照操作s14,主机1100可以检查来自存储装置1200的装置描述符。例如,主机1100可以将用于读取描述符的查询请求传送至存储装置1200。存储装置1200可以响应于查询请求将装置描述符传送至主机1100。
[0099]
在示例性实施例中,主机1100可以通过装置描述符来检查存储装置1200的配置和功能。例如,装置描述符可以包括扩展的ufs功能支持字段(例如,“dextendedufsfeaturessupport”),该字段包括关于是否支持turbo写入功能的信息。在示例性实施例中,关于是否支持turbo写入功能的信息可以被设定为扩展的ufs功能支持字段的比特(例如,比特[8])。
[0100]
装置描述符还可以包括turbo写入缓冲器非用户空间减小使能字段(例如,“bturbowritebuffernouserspacereductionen”),该字段包括关于turbo写入缓冲模式的信息。在其中turbo写入缓冲器非用户空间减小使能字段的值为“00h”的情况下,turbo写入缓冲器twb可基于参照图4a描述的用户容量减小模式进行配置;在其中turbo写入缓冲器非用户空间减小使能字段的值为“01h”的情况下,可以基于参照图4b描述的非用户容量减小模式对turbo写入缓冲器twb进行配置。
[0101]
装置描述符还可以包括turbo写入缓冲器类型字段(例如,“bturbowritebuffertype”),该字段包括关于turbo写入缓冲器类型的信息。在其中turbo写入缓冲器类型字段的值为“00h”的情况下,可以基于参照图3a描述的lu专用缓冲器类型对turbo写入缓冲器twb进行配置。在其中turbo写入缓冲器类型字段的值为“01h”的情况下,可以基于参照图3b描述的共享缓冲器类型对turbo写入缓冲器twb进行配置。
[0102]
装置描述符还可以包括共享的turbo写入缓冲器分配数量字段(例如,“dnumsharedturbowritebufferallocunits”),该字段包括关于turbo写入缓冲器的大小的信息。在其中分配至共享的turbo写入缓冲器的单元数量设为“0”的情况下,可不对共享缓冲器类型的turbo写入缓冲器进行配置。
[0103]
上述字段是示例性的,并且本发明构思不限于此。除上述字段以外,装置描述符还可以包括其它字段,这些字段包括关于存储装置1200的配置、结构、功能等的信息。装置描述符的各个字段可以表示在初始化操作之前设定的值。主机1100可以通过读取装置描述符的各个字段来识别存储装置1200的状态。
[0104]
在示例性实施例中,诸如“bturbowritebuffernouserspacereductionen”、“bturbowritebuffertype”和“dnumsharedturbowritebufferallocunits”的装置描述符的上述字段可通过写入配置描述符的对应字段的值而变化。例如,通过写入配置描述符的各个字段的值,主机1100可以改变以下的信息:诸如turbo写入缓冲器类型、turbo写入缓冲器非用户空间减小使能以及分配给turbo写入缓冲器的单元的数量。在示例性实施例中,存储装置1200的几何描述符可以包括以下的信息:诸如turbo写入缓冲器最大大小字段、turbo写入缓冲器最大数量字段、turbo写入缓冲器容量调整因子字段、支持的turbo写入缓冲器非用户容量减小类型字段、支持的turbo写入缓冲器类型字段等。
[0105]
例如,turbo写入缓冲器最大大小字段(例如,

dturbowritebuffermaxnallocunits”)可以包括关于存储装置1200处支持的turbo写入缓冲器twb的最大大小的信息。turbo写入缓冲器最大数量字段(例如,“b装置maxturbowritelus”)可以包括关于存储装置1200处支持的turbo写入缓冲器的最大数量的信息。
[0106]
turbo写入缓冲器容量调整因子字段(例如,“bturbowritebuffercapadjfac”)可以根据turbo写入缓冲存储器的种类包括关于容量减小因子的信息。例如,在其中利用slc实施turbo写入缓冲器twb并且利用tlc实施用户存储器ust的情况下,turbo写入缓冲器容量调整因子字段的值可为“3”。在利用slc实施turbo写入缓冲器twb并且利用mlc实施用户存储器ust的情况下,turbo写入缓冲器容量调整因子字段的值可为“2”。
[0107]
支持的turbo写入缓冲器非用户容量减小类型字段(例如,“bsupportedturbowritebuffernouserspacereductiontypes”)可以包括关于存储装置1200是否支持任何turbo写入缓冲器模式(例如,用户容量减小模式、非用户容量减小模式或二者)的信息。
[0108]
支持的turbo写入缓冲器类型字段(例如,“bsupportedturbowritebuffertypes”)可以包括关于存储装置1200是否支持任何turbo写入缓冲器类型(例如,lu专用缓冲器类型、共享缓冲器类型或二者)的信息。
[0109]
上述字段是示例性的,并且本发明构思不限于此。
[0110]
参照操作s15,主机1100可以从存储装置1200下载启动代码。例如,主机1100可以将test unit ready upiu传送至存储装置1200。存储装置1200可以响应于接收到的test unit ready upiu来传送状态信息。主机1100可以基于接收到的状态信息来确定是否可访问存储装置1200的启动逻辑单元(或者启动公知lu)。
[0111]
在其中可访问启动逻辑单元的情况下,主机1100可以将scsi read命令传送至存储装置1200。在示例性实施例中,scsi read命令可对应于启动逻辑单元。存储装置1200可以响应于接收到的命令将数据“data”和状态信息传送至主机1100。
[0112]
参照操作s16,主机1100可以通过设定存储装置1200的flag来完成初始化操作。例如,主机1100可以将查询请求传送至存储装置1200。查询请求可为用于设定存储装置1200的flag中包括的装置初始化字段(例如,“fdeviceinit”)的请求。响应于该查询请求,可以为存储装置1200的flag中包括的装置初始化字段设定一个值(例如,“01h”)。存储装置1200随后可以传送查询响应。
[0113]
参照操作s17,主机1100可以轮询存储装置1200的flag的装置初始化字段(例如,“fdeviceinit”)。例如,主机1100可以将用于读取flag的装置初始化字段的查询请求传送至存储装置1200。另外,存储装置1200可以将其中包括装置初始化字段的查询响应传送至主机1100。
[0114]
在示例性实施例中,在操作s16之后,在其中完成了存储装置1200的初始化操作的情况下,可以将装置初始化字段复位至不同的值(例如,“00h”)。例如,主机1100可以重复地执行操作s17,以检查装置初始化字段是否复位。在其中装置初始化字段复位的情况下,可以完成主机1100和存储装置1200的初始化操作。
[0115]
图6是示出图1的存储系统的操作的流程图。将参照图6描述存储系统1000的写入操作。参照图1和图6,在操作s21中,主机1100可以将包括写入信息wr的命令upiu(或者写入命令)传送至存储装置1200。
[0116]
参照操作s22,主机1100和存储装置1200可以执行数据事务。例如,存储装置1200可以将准备好传送upiu(rtt upiu)传送至主机1100。rtt upiu可以包括关于存储装置1200能够接收数据的数据范围的信息。主机1100可以响应于rtt upiu将包括写入数据的data out upiu传送至包括写入数据的存储装置1200。在执行上述操作时,可以将写入数据从主机1100传送至存储装置1200。
[0117]
在完全接收到全部写入数据之后,参照操作s23,存储装置1200可以将响应upiu传送至主机1100。响应upiu可以包括指示完成对应于操作s21中接收到的写入命令的操作的信息。
[0118]
在示例性实施例中,存储装置1200可以对操作s22中接收到的写入数据执行普通写入操作。例如,参照操作s21,存储装置1200可以确定是否启用了turbo写入功能。详细地说,存储装置1200可以基于flag的turbo写入使能字段(例如,“fturbowriteen”)的值来确定是否启用了turbo写入功能。
[0119]
在其中turbo写入使能字段的值为“0b”的情况下,可禁用turbo写入功能。在其中turbo写入使能字段的值为“1b”的情况下,turbo写入功能可处于启用。在示例性实施例中,可以通过针对主机1100的设定flag的查询请求来设定flag的turbo写入使能字段的值。
[0120]
turbo写入使能字段的值可不由主机1100设定。在这种情况下,可以按照普通写入策略将在操作s22接收到的写入数据写入turbo写入缓冲器twb或用户存储器ust中。
[0121]
参照操作s30,主机1100可以将turbo写入使能字段的值设定为某值(例如,“1b”)。例如,主机1100可以将用于将turbo写入使能字段的值设定为某值(例如,“1b”)的查询请求传送至存储装置1200。可以响应于来自主机1100的查询请求来将turbo写入使能字段的值设定为某值(例如,“1b”),并且存储装置1200可以将查询响应传送至主机1100。
[0122]
主机1100随后可以执行操作s31至操作s33。除了基于turbo写入使能字段执行turbo写入之外,操作s31至操作s33可以与操作s21至操作s23相似,因此,将省略额外描述以避免冗余。
[0123]
在示例性实施例中,可以将操作s32中接收到的写入数据写入turbo写入缓冲器twb中。例如,参照操作s30,随着将turbo写入使能字段的值设定为某值(例如,“1b”),可以启用turbo写入功能。在这种情况下,可以将从主机1100接收到的写入数据写入turbo写入缓冲器twb中。
[0124]
在示例性实施例中,在其中turbo写入缓冲器twb的空间不足的情况下,当启用turbo写入功能时,存储装置1200可以将接收到的写入数据写入用户存储器ust中。
[0125]
图7是示出图1的存储装置1200的操作的流程图。将参照图7描述存储装置1200的清理操作。参照图1、图2和图7,在操作s41中,存储装置1200可以确定状态是空闲状态、休眠状态还是运行状态。当存储装置1200处于运行状态时,可以不执行单独的清理操作。
[0126]
例如,当存储装置1200正在处理从主机1100接收到的命令时,存储装置1200可以处于运行状态。当从主机1100接收到并处理(或者将处理)不存在的命令(例如,挂起的命令)时,可以确定存储装置1200处于空闲状态。当通过存储装置1200或者主机1100的初始化,存储装置1200进入被称作“休眠”的低功率模式时,可以确定存储装置1200处于休眠状态。
[0127]
当存储装置1200处于空闲状态时,参照操作s42,可以确定是否启用第一清理操
作。通过设定存储装置1200的flag的turbo写入缓冲器清理使能字段(例如,“fturbowritebufferflushen”),主机1100可以允许或禁止存储装置1200处的第一清理操作。存储装置1200可以通过检查flag的turbo写入缓冲器清理使能字段的值来确定是否启用第一清理操作。
[0128]
在示例性实施例中,flag的turbo写入缓冲器清理使能字段的值为“0b”可以表示禁用或禁止第一清理操作,并且flag的turbo写入缓冲器清理使能字段的值为“1b”可以表示启用第一清理操作。在其中禁用第一清理操作的情况下,存储装置1200可以不执行单独的清理操作。
[0129]
在其中启用第一清理操作的情况下,参照操作s43,存储装置1200可以在空闲状态期间执行第一清理操作。第一清理操作可以表示存储装置1200在空闲状态下执行的清理操作。清理操作可以基于内部策略或者来自主机1100的明确命令指示将turbo写入缓冲器twb中写入的用户数据清理或迁移至用户存储器ust的操作。
[0130]
在示例性实施例中,当将在turbo写入缓冲器twb中写入的用户数据清理至用户存储器ust中时,可以保持经清理的用户数据的逻辑地址,并且可以改变物理地址。在这种情况下,存储装置1200可以更新经清理的用户数据的逻辑地址与物理地址的映射信息。例如,物理地址可以从turbo写入缓冲器twb的地址变为用户存储器ust的地址。
[0131]
参照操作s44,当操作s41的确定结果指示存储装置1200处于休眠状态时,存储装置1200可以确定是否启用第二清理操作。如以上描述中,例如,通过设定flag的休眠期间turbo写入缓冲器清理使能字段(例如,“fturbowritebufferflushduringhibernat”)的值,主机1100可以允许或者禁止存储装置1200的第二清理操作。
[0132]
通过检查flag的休眠期间的turbo写入缓冲器清理使能字段的值,存储装置1200可以确定是否启用第二清理操作。在示例性实施例中,flag的休眠期间的turbo写入缓冲器清理使能字段的值为“0b”可以指示禁用或禁止第二清理操作。flag的休眠期间的turbo写入缓冲器清理使能字段的值为“1b”可以指示启用第二清理操作。在其中禁用第二清理操作的情况下,存储装置1200可以不执行单独的清理操作。
[0133]
在其中启用第一清理操作的情况下,参照操作s45,存储装置1200可以在休眠状态期间执行第二清理操作。第二清理操作可以指示存储装置1200在休眠状态下执行的清理操作。
[0134]
根据以上的清理操作,turbo写入缓冲器twb中写入的用户数据可以被清理或迁移至用户存储器ust。这样,可以确保turbo写入缓冲器twb的可用缓冲器大小。
[0135]
在示例性实施例中,以上的清理操作在一定条件下可以暂停。例如,在空闲状态下执行的第一清理操作可以在存储装置1200的命令队列为空的状态下执行。在其中从主机1100发出命令的情况下,在执行第一清理操作的同时,存储装置1200可以暂停执行第一清理操作。另外,存储装置1200可以优先处理从主机1100发出的命令。在示例性实施例中,在其中休眠模式终止的情况下,可以停止在休眠状态下执行的第二清理操作。
[0136]
如上所述,可以基于一定条件暂停正在执行的清理操作。在这种情况下,存储装置1200可以设定暂停信息(或者处理程度的信息)或者attributes的turbo写入缓冲器清理状态字段(例如,“bturbowritebufferflushstatus”)的清理操作的状态。
[0137]
在示例性实施例中,存储装置1200可以将关于使用用于turbo写入缓冲器twb的清
理操作的信息设定为attributes的异常事件状态(例如,“dexceptioneventstatus”)的值(例如,bit[5])。主机1100可以检查属性的异常事件状态的值(例如,bit[5]]),可以确定在存储装置1200处使用清理操作,并且可以根据一定策略设定存储装置1200的flag的字段(例如,“fturbowritebufferflushen”和“fturbowritebufferflushduringhibernate”)。
[0138]
图8是示出图1的存储装置1200的物理存储空间的框图。参照图1和图8,存储装置1200的物理存储空间ps可以包括turbo写入缓冲器twb和用户存储器ust。上面描述了存储装置1200的物理存储空间ps、turbo写入缓冲器twb和用户存储器ust,因此,为了避免冗余,将省略额外的描述。
[0139]
turbo写入缓冲器twb可以分为固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np。如以上的描述中,在其中启用存储装置1200的turbo写入功能的情况下,可以将写入数据存储在固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np之一中。
[0140]
可以将写入数据存储在固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np中。可以通过各种方案(例如,内部策略、内部策略根据主机的请求的改变以及主机的明确请求)来确定写入数据。
[0141]
在示例性实施例中,如上所述,可以在主机1100的控制下或者基于存储装置1200的内部策略来确定turbo写入缓冲器twb的大小。在这种情况下,可以通过各种方案(例如,内部策略、内部策略根据主机的请求的改变以及主机的明确请求)来确定或者改变turbo写入缓冲器twb中的固定turbo写入缓冲器twb-p与非固定turbo写入缓冲器twb-np的比率。
[0142]
在示例性实施例中,用户数据可以在固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储器ust之间清理、迁移或移动。例如,用户数据可以基于主机1100的明确请求、存储装置1200的内部策略或者内部策略根据主机1100的请求的改变而在固定turbo写入缓冲器twb-p与非固定turbo写入缓冲器twb-np之间迁移或移动。
[0143]
可替换地,用户数据可以基于主机1100的明确请求、存储装置1200的内部策略或者内部策略根据主机1100的请求的改变而在非固定turbo写入缓冲器twb-np与用户存储器ust之间迁移或移动。可替换地,用户数据可以基于主机1100的明确请求、存储装置1200的内部策略或者内部策略根据主机1100的请求的改变而在固定turbo写入缓冲器twb-p与用户存储器ust之间迁移或移动。
[0144]
在示例性实施例中,如参照图7描述的,存储装置1200可以在空闲状态或休眠状态期间执行清理操作。在这种情况下,存储装置1200可以对turbo写入缓冲器twb的非固定turbo写入缓冲器twb-np执行清理操作。例如,存储装置1200可以将存储在turbo写入缓冲器twb的非固定turbo写入缓冲器twb-np中的用户数据清理至用户存储器ust。
[0145]
在这种情况下,写入固定turbo写入缓冲器twb-p中的用户数据可以不被清理至用户存储器ust。例如,即使存储装置1200执行清理操作,也可以保持写入固定turbo写入缓冲器twb-p中的用户数据。
[0146]
对于另一示例,基于存储装置1200的内部策略,可以将待存储在非固定turbo写入缓冲器twb-np中的数据写入固定turbo写入缓冲器twb-p中。可以将该异常数据从固定turbo写入缓冲器twb-p清理至用户存储器ust。
[0147]
下面,为了使本发明构思清楚,将在待存储在固定turbo写入缓冲器twb-p中的数据必须存储在固定turbo写入缓冲器twb-p中作为规则的假设下给出描述。例如,将描述除
异常数据的以上示例之外的本发明构思。然而,可以理解,本发明构思包括上述异常数据的示例。
[0148]
因此,在其中主机1100发出用于写入固定turbo写入缓冲器twb-p中的第一用户数据的读取命令的情况下,可以从固定turbo写入缓冲器twb-p中读取第一用户数据。在这种情况下,可能能够以高速度读取第一用户数据。
[0149]
例如,如上所述,固定turbo写入缓冲器twb-p可以基于slc方案存储用户数据,并且用户存储器ust可以按照tlc方案存储用户数据。读取基于slc方案存储的用户数据耗费的时间比读取基于tlc方案存储的用户数据耗费的时间更短。
[0150]
例如,随着用户数据被保留在固定turbo写入缓冲器twb-p中,可提高读取用户数据的速度。存储装置1200的这种功能可被称作“turbo读取”。
[0151]
图9是示出用于参照图8描述的存储装置1200的物理存储空间ps的逻辑存储空间的图。为了描述简洁,将参照一个逻辑单元来描述图9的实施例。然而,可以将本发明构思应用于指定了turbo写入缓冲器twb的两个或更多个逻辑单元,或者应用于逻辑单元与共享的turbo写入缓冲器(例如,twb0)之间的关系。
[0152]
参照图1和图9,由主机1100识别的存储装置1200的逻辑存储空间ls可以包括用户存储器ust和turbo写入缓冲器twb。turbo写入缓冲器twb可以包括固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np。
[0153]
第一逻辑地址范围(例如,lba0至lbaa、lbab+1至lbac和lbae+1至lban)可以对应于用户存储器ust的逻辑存储空间。在这种情况下,可以将存储在第一逻辑地址范围(例如,lba0至lbaa、lbab+1至lbac和lbae+1至lban)中的用户数据存储在用户存储器ust的物理存储空间中。
[0154]
第二逻辑地址范围(例如,lbaa+1至lbab和lbad+1至lbae)可以对应于非固定turbo写入缓冲器twb-np的逻辑存储空间。在这种情况下,可以将存储在第二逻辑地址范围(例如,lbaa+1至lbab和lbad+1至lbae)中的用户数据存储在非固定turbo写入缓冲器twb-np的物理存储空间中。
[0155]
第三逻辑地址范围(例如,lbac+1至lbad)可以对应于固定turbo写入缓冲器twb-p的逻辑存储空间。在这种情况下,可以将存储在第三逻辑地址范围(例如,lbac+1至lbad)中的用户数据存储在固定turbo写入缓冲器twb-p的物理存储空间中。
[0156]
如上所述,用户存储器ust、非固定turbo写入缓冲器twb-np和固定turbo写入缓冲器twb-p可以按照各种形式分布在由主机1100识别的逻辑存储空间ls上。在示例性实施例中,可以在用户存储器ust、非固定turbo写入缓冲器twb-np和固定turbo写入缓冲器twb-p之间移动、清理或迁移用户数据。用户数据的移动可以根据主机1100的明确请求或者存储装置1200的内部策略。
[0157]
例如,主机1100可以在turbo写入中指定固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np中的一个。对于另一示例,在turbo写入之前,主机1100可以指定固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np中的一个作为turbo写入目标。对于另一示例,主机1100可以在turbo写入中不指定固定turbo写入缓冲器twb-p或者非固定turbo写入缓冲器twb-np。
[0158]
通过从存储装置1200请求(例如,利用query upiu)固定turbo写入缓冲器twb-p和
非固定turbo写入缓冲器twb-np的信息,主机1100可以周期性地检查通过存储装置1200改变的数据的分布状态。例如,可通过可利用query upiu确定的请求来执行通过存储装置1200改变的数据的分布状态的周期性检查。
[0159]
图10a和图10b是示出在参照图8描述的存储装置的物理存储空间中的操作的图。为了简化说明和描述,假设固定turbo写入缓冲器twb-p包括第一存储器块blk1。另外,非固定turbo写入缓冲器twb-np包括第二存储器块blk2,并且用户存储器ust可以包括第三存储器块blk3。然而,本发明构思不限于此。
[0160]
参照图1、图8和图10a,存储装置1200可以从主机1100接收对应于第一逻辑地址lba1的第一数据dt1。在示例性实施例中,存储装置1200的turbo写入功能可处于启用状态。在这种情况下,存储装置1200可以将接收到的第一数据dt1写入turbo写入缓冲器twb(例如,非固定turbo写入缓冲器twb-np)中。
[0161]
例如,存储装置1200可以对第一数据dt1执行turbo写入。在示例性实施例中,在其中启用turbo写入功能的情况下,可以确定是否将数据存储在固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np中的任一个中。
[0162]
在示例性实施例中,如图10a所示,固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np可充满数据dta、dtb、dt0和dt1。在这种情况下,存储装置1200可以通过设定attributes的异常事件状态字段(例如,“wexceptioneventstatus”)的比特(例如,比特[5])来通知主机1100使用了清理操作。
[0163]
主机1100可以通过查询请求来检查attributes的异常事件状态字段,并且可以检查在存储装置1200处使用了清理操作。如参照图7描述的,通过在存储装置1200的flag的休眠期间设定turbo写入缓冲器清理使能字段或者turbo写入缓冲器清理使能字段,主机1100可以允许存储装置1200的清理操作。
[0164]
当在主机1100的控制下允许(或者启用)清理功能时,存储装置1200可以执行清理操作。例如,在空闲状态或者休眠状态中,存储装置1200可以将存储在非固定turbo写入缓冲器twb-np中的数据dt0和dt1清理至用户存储器ust的第三存储器块blk3。在示例性实施例中,当在主机1100的控制下允许清理操作时,可以不将存储在固定turbo写入缓冲器twb-p中的数据dta和dtb清理至用户存储器ust。
[0165]
然后,存储装置1200可以从主机1100接收用于第一逻辑地址lba1的读取命令。在这种情况下,存储装置1200可以读取存储在用户存储器ust的第三存储器块blk3中的第一数据dt1,并且可以将经读取的第一数据dt1输出至主机1100。
[0166]
在示例性实施例中,因为在非固定turbo写入缓冲器twb-np中写入(即,通过slc编程)第一数据dt1,而由于清理操作,第一数据dt1被清理至用户存储器ust,所以可以通过正常读取操作(例如,tlc读取操作)来读取第一数据dt1。
[0167]
参照图1、图8和图10b,可以在非固定turbo写入缓冲器twb-np的第二存储器块blk2中存储第0数据dt0和第一数据dt1。可以将第a数据dta存储在用户存储器ust的第三存储器块blk3中。
[0168]
然后,基于主机1100的明确请求或者存储装置1200的内部策略,可以将用户存储器ust的第a数据dta移动至固定turbo写入缓冲器twb-p的第一存储器块blk1。
[0169]
然后,存储装置1200可以从主机1100接收用于对应于第a数据dta的第a逻辑地址
lbaa的读取命令。在这种情况下,存储装置1200可以读取存储在固定turbo写入缓冲器twb-p的第一存储器块blk1中的第a数据dta,并且可以将读取的第a数据dta传送至主机1100。
[0170]
在示例性实施例中,读取存储在固定turbo写入缓冲器twb-p的第一存储器块blk1中的第a数据dta的操作可以比读取存储在用户存储器ust的第三存储器块blk3中的数据的操作更快。例如,通过将数据存储和保存在turbo写入缓冲器twb(或者固定turbo写入缓冲器twb-p)中,根据本发明构思的实施例的存储装置1200可以支持关于数据的快速读取操作(即,turbo读取操作)。
[0171]
在示例性实施例中,存储装置1200可响应于主机1100的请求将turbo写入缓冲器twb的剩余(或者自由)容量通知主机1100。存储装置1200可以将关于turbo写入缓冲器twb的剩余自由容量的信息写入attributes的可用turbo写入缓冲器大小字段(例如,“davailableturbowritebuffersize”)。主机1100可以通过读取可用turbo写入缓冲器大小字段(例如,通过利用query upiu)来获得turbo写入缓冲器twb的容量信息。
[0172]
例如,存储装置1200可以在可用turbo写入缓冲器大小字段处分别记录固定turbo写入缓冲器twb-p的剩余容量和非固定turbo写入缓冲器twb-np的剩余容量。对于另一示例,存储装置1200可以在可用turbo写入缓冲器大小字段处记录turbo写入缓冲器twb的全部剩余容量。可以通过主机1100的flag设定来指定存储装置1200是一体地还是单独地记录turbo写入缓冲器twb的剩余容量。
[0173]
例如,存储装置1200可以在可用turbo写入缓冲器大小字段处记录比turbo写入缓冲器twb的实际自由容量更小的容量。在诸如闪速存储器的非易失性存储器装置1220中,在其中连续擦除操作之间的时间小于阈值时间的情况下,数据的可靠性会降低。
[0174]
因为turbo写入缓冲器twb的容量小于用户存储器ust的容量,并且在slc方案中使用了turbo写入缓冲器twb,所以turbo写入缓冲器twb可以比用户存储器ust更快地填充有数据。另外,在其中主机1100优选高速的turbo写入的情况下,turbo写入缓冲器twb可更快速地充满数据。
[0175]
在其中数据密集地写入turbo写入缓冲器twb中的情况下,执行一系列操作。这些操作可以包括:对turbo写入缓冲器twb执行第一擦除操作,数据写入turbo写入缓冲器twb中,并且清理turbo写入缓冲器twb的数据。另外,对turbo写入缓冲器twb执行第二擦除操作,并且再次将数据写入turbo写入缓冲器twb中。
[0176]
在这种情况下,当第一擦除操作与第二擦除操作之间的时间小于阈值时间时,在第二擦除操作之后,会降低在turbo写入缓冲器twb中写入的数据的可靠性。为了解决该问题,即使turbo写入缓冲器twb的存储器块不存储有效数据并且在擦除操作之后可重用,当存储器块的擦除操作之后流逝的时间小于阈值时间时,存储装置1200也可以在可用turbo写入缓冲器大小字段处记录排除存储器块的容量之外的容量。
[0177]
图11示出了在存储系统1000执行的导致数据移动的读取操作的示例。参照图1、图8和图11,在操作s110中,主机1100可以将命令upiu传送至存储装置1200。命令upiu可以包括读取信息rd(或者读取命令)和移动信息mv。
[0178]
可以通过读取信息rd将命令upiu限定为读取命令。另外,可以通过移动信息mv将命令upiu限定为指导移动操作。参照操作s120,存储装置1200的控制器1210可以响应于命令upiu而开始从非易失性存储器装置1220读取数据。
[0179]
例如,读取信息可以包括逻辑地址。非易失性存储器装置1220可开始从逻辑地址指示的存储空间(例如,固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np或用户存储器ust)读取数据。
[0180]
参照操作s130,可以准备数据的第一部分。例如,数据的第一部分可以在存储装置1200完全读取出。参照操作s140,存储装置1200随后可以通过data in upiu将数据的第一部分传送至主机1100。在存储装置1200传送data in upiu的同时,可以连续地读取数据。
[0181]
参照操作s150,可以准备数据的第二部分。例如,数据的第二部分可以在存储装置1200完全读取出。参照操作s160,存储装置1200随后可以通过data in upiu将数据的第二部分传送至主机1100。在存储装置1200传送data in upiu的同时,可以连续地读取数据。
[0182]
参照操作s170,可以准备数据的第三部分。例如,数据的第三部分可以在存储装置1200完全读取出。随着数据的第三部分被完全读取出,参照操作s180,存储装置1200可以完成命令upiu请求的数据的读取操作。
[0183]
参照操作s190,存储装置1200随后可以通过data in upiu将数据的第三部分传送至主机1100。参照操作s200,存储装置1200可以通过将通知读取操作的结果和移动数据的结果的响应upiu传送至主机1100来完成读取操作。
[0184]
与存储装置1200响应于读取信息rd读取数据和将读取数据输出至主机1100的操作一起,存储装置1200可以响应于移动信息mv来移动读取数据。例如,在操作s190中开始传送data in upiu之后,在操作s210中,控制器1210可以移动数据。
[0185]
控制器1210可以将数据移动至固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np或者用户存储器ust。例如,控制器1210可以将操作s120至操作s180中读取的数据写入固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np或者用户存储器ust,并且可以使原始数据无效。例如,在其中数据的移动目的地与其原始位置相同的情况下,控制器1210可以跳过移动数据的步骤。
[0186]
如上所述,turbo写入缓冲器twb可比用户存储器ust支持更高的读取速度。通过经由移动信息mv将数据移动至turbo写入缓冲器twb,存储装置1200可以支持使数据的读取速度加速的功能。
[0187]
如上所述,固定turbo写入缓冲器twb-p可以不进行清理操作,并且非固定turbo写入缓冲器twb-np可以以清理操作为目标。因此,通过经由移动信息mv将数据移动至固定turbo写入缓冲器twb-p或者非固定turbo写入缓冲器twb-np,存储装置1200可以提供使读取速度持续加速或临时加速的选项。
[0188]
另外,通过经由移动信息mv将数据移动至用户存储器ust,存储装置1200可以提供将低读取频率的冷数据移动至用户存储器ust且确保turbo写入缓冲器twb的容量的功能。例如,通过经由移动信息mv支持数据的移动,存储装置1200可以提供对主机1100的数据读取的广泛选择性。
[0189]
例如,存储装置1200可以在装置描述符处记录是否支持移动操作。存储装置1200可以通过将装置描述符传送至主机1100来通知主机1100是否支持移动操作。可以通过主机1100来设定存储装置1200是否执行移动操作。
[0190]
参照图11描述了其中处理包括读取信息rd和移动信息mv的命令upiu的示例。与图11所示的示例不同,命令upiu可以包括读取信息rd而没有移动信息mv。当命令upiu包括读
取信息rd时,存储装置1200可以执行读取操作而不执行移动操作。
[0191]
例如,当接收到包括读取信息rd的命令upiu时,存储装置1200可以执行读取操作,并且当接收到包括读取信息rd和移动信息mv的命令upiu时,存储装置1200可以执行伴随着移动操作的读取操作。
[0192]
图12示出了图11所示的命令upiu cu的示例。参照图12,命令upiu cu可以包括基本报头bh、描述命令的额外信息ai以及命令描述符块cdb。
[0193]
基本报头bh可以包括由ufs协议限定的事务类型(例如,“xx000001b”)、flag、逻辑单元数(lun)、任务标签、启动器id(iid)、命令设定类型、总ehs(extra header segment)长度、数据段长度(例如,“00h”)、期望的数据传送长度(例如,“0000h”)。
[0194]
额外信息ai可以包括期望的数据传送长度。命令描述符块cdb可以包括作为读取信息rd的读取描述符,并且可以包括作为移动信息mv的移动描述符。
[0195]
读取信息rd可以包括通过ufs协议限定的“read(6)”命令、“read(10)”命令或“read(16)”命令。read(6)命令可以包括操作码(例如,“08h”)、逻辑地址、传送长度和控制(例如,“00h”)。
[0196]
read(10)命令可以包括操作码(例如,“28h”)、读取保护(rdprotect)(例如,“000b”)、禁用页输出(dpo)、强制单元访问(fua)、fua_nv(例如,“0b”)、逻辑地址、组编号、传送长度和控制(例如,“00h”)。
[0197]
read(16)命令可以包括操作码(例如,“88h”)、读取保护(例如,“000b”)、dpo、fua、fua_nv(例如,“0b”)、逻辑地址传送长度、组编号和控制(例如,“00h”)。read(6)命令、read(10)命令或read(16)命令可以基于ufs协议来修改或者改变。
[0198]
移动信息mv可以包括当移动数据时的移动标志mf和移动属性ma。移动标志mf可以指示已使用数据的移动。移动属性ma可以描述移动数据的方案。例如,移动属性ma可以包括目的地信息dst、强制水平信息fl和激活模式信息am中的至少一个。
[0199]
存储装置1200可以基于移动属性ma来移动通过读取信息rd读取的数据。下面将更完全详细地描述移动属性ma中的每一个。例如,可以经由设定通过主机1100来指定是否使用目的地信息dst、强制水平信息fl和激活模式信息am中的每一个作为移动属性ma。
[0200]
另外,存储装置1200可以在装置描述符处记录是否支持目的地信息dst、强制水平信息fl和激活模式信息am中的每一个作为移动属性ma。通过将装置描述符传送至主机1100,存储装置1200可以通知主机1100是否支持对应的移动属性ma。
[0201]
例如,如参照图11描述的,存储装置1200可利用读取信息rd而不是移动信息mv来支持命令upiu。在这种情况下,可以在从图12的命令upiu去除移动信息mv(被示为移动描述符mv)的状态下提供命令upiu。
[0202]
图13示出了存储在固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储器ust中的数据的示例。参照图1、图12和图13,物理存储空间ps的固定turbo写入缓冲器twb可以存储第一数据d1和第二数据d2。
[0203]
非固定turbo写入缓冲器twb-np可以存储第三数据d3。用户存储器ust可以存储第四数据d4和第五数据d5。目的地信息dst可以指示固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储器ust之一的目的地区域。
[0204]
例如,主机1100可以通过包括读取信息rd的命令upiu cu来从非固定turbo写入缓
冲器twb-np读取第三数据d3。命令upiu cu还可以包括移动信息mv,并且移动信息mv的目的地信息dst可以指示固定turbo写入缓冲器twb-p作为目的地区域。响应于包括在命令upiu cu中的移动信息mv,存储装置1200可以将第三数据d3移动至固定turbo写入缓冲器twb-p。
[0205]
根据移动信息mv的指示,存储装置1200可以将数据从固定turbo写入缓冲器twb-p移动至非固定turbo写入缓冲器twb-np,从固定turbo写入缓冲器twb-p移动至用户存储器ust,从非固定turbo写入缓冲器twb-np移动至固定turbo写入缓冲器twb-p,从非固定turbo写入缓冲器twb-np移动至用户存储器ust,从用户存储器ust移动至固定turbo写入缓冲器twb-p,或者从用户存储器ust移动至非固定turbo写入缓冲器twb-np。
[0206]
随着数据移动,存储装置1200可以将移动目标数据的逻辑地址映射至移动的目的地区域的物理地址。通过保持移动目标数据的逻辑地址,存储装置1200可在内部移动数据,并且可以利用相同逻辑地址来支持对主机1100的访问。因此,这种数据移动不会导致主机1100的额外负荷。
[0207]
例如,可以通过不使用逻辑地址而使用区域(例如,固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np或用户存储器ust)的信息来提供目的地信息dst。存储装置1200可以基于目的地区域的信息通过在内部移动数据来降低主机1100的负荷。
[0208]
存储装置1200可以基于主机1100的请求(例如,查询请求)来将数据是否属于任何区域通知主机1100。例如,存储装置1200可以自动地移动数据,使得主机1100的负荷降低。另外,存储装置1200可以允许主机1100跟踪该数据的位置。
[0209]
图14示出了其中存储装置1200基于强制水平信息fl移动数据的示例。参照图1、图12和图14,在操作s310中,移动操作的目标数据(例如,响应于命令upiu的读取信息rd读取的数据)可以大于目的地区域的自由空间(或者容量)。在这种情况下,参照操作s320,存储装置1200可以检查移动属性ma的强制水平信息fl。
[0210]
当强制水平为第一水平时,执行操作s330。参照操作s330,存储装置1200可以移动与目的地区域的自由容量一样大的一部分数据。可以禁止存储装置1200逐出可以存储在目的地区域中的数据。
[0211]
当强制水平为第二水平时,执行操作s340。参照操作s340,可以允许存储装置1200逐出存储在目的地区域中的数据,并且可以允许其移动作为移动目标的一部分数据并将剩余部分留在原始位置。
[0212]
例如,可以根据强制水平策略来确定待逐出的数据量或比率、待移动的移动目标数据量或比率以及将留下的移动目标数据量或比率。例如,强制水平信息fl还可以包括强制水平策略的信息。对于另一示例,可以通过主机1100的请求(例如,查询请求)来设定或改变强制水平策略。
[0213]
当强制水平为第三水平时,执行操作s350。参照操作s350,存储装置1200可以逐出目标区域的数据,并且可以将移动目标数据移动至目的地区域。
[0214]
如上所述,基于强制水平信息fl,存储装置1200可以移动一部分移动目标数据,并且可以将剩余部分保持在原始位置。存储装置1200可以将由此移动的部分数据的逻辑地址映射至目的地区域的物理地址。
[0215]
存储装置1200可以使移动目标数据的移动至目的地区域的部分数据无效。存储装置1200可以保持移动目标数据的未移动并且保留在原始位置的剩余部分数据作为有效数
据,并且可以保持所述剩余部分数据的逻辑地址与物理地址之间的映射。
[0216]
如上所述,基于强制水平信息fl,存储装置1200逐出存储在目的地区域中的数据。被逐出的数据可以基于默认设定而移动至用户存储器ust或者非固定turbo写入缓冲器twb-np。对于另一示例,基于强制水平策略,可以在强制水平信息fl中包括数据将逐出至的位置。
[0217]
例如,当目的地区域是固定turbo写入缓冲器twb-p或非固定turbo写入缓冲器twb-np时,可以施加根据图14的强制水平信息fl的移动。例如,当用户存储器ust的自由空间不足时,可以在主机1100或者存储装置1200处拒绝命令。
[0218]
图15示出了其中存储装置1200基于激活模式信息am移动数据的示例。参照图1、图12和图15,激活模式信息am可以指示存储装置1200移动数据的时间。
[0219]
当激活模式信息am指示第一模式时,存储装置1200可以执行操作s410至操作s425。参照操作s410,存储装置1200可以从主机1100接收包括读取信息rd和移动信息mv的命令upiu。
[0220]
参照操作s415,存储装置1200可以响应于命令upiu的读取信息rd通过data in upiu将读取数据传送至主机1100。参照操作s420,存储装置1200可以响应于命令upiu的移动信息mv来移动数据。参照操作s425,存储装置1200可以将响应upiu传送至命令upiu。
[0221]
例如,当激活模式信息am指示第一模式时,存储装置1200可以在将响应upiu传送至主机1100之前移动数据。可替换地,当激活模式信息am指示第一模式时,存储装置1200可以在将响应upiu传送至主机1100之前开始移动数据。存储装置1200可以在移动数据的同时(或者在当移动数据时的同时)将响应upiu传送至主机1100。
[0222]
当激活模式信息am指示第二模式时,存储装置1200可以执行操作s430至操作s445。参照操作s430,存储装置1200可以从主机1100接收包括读取信息rd和移动信息mv的命令upiu。参照操作s435,存储装置1200可以响应于命令upiu的读取信息rd通过data in upiu将读取数据传送至主机1100。
[0223]
参照操作s440,存储装置1200可以将响应upiu传送至命令upiu。参照操作s445,存储装置1200可以响应于命令upiu的移动信息mv来移动数据。例如,当激活模式信息am指示第二模式时,存储装置1200可以在将响应upiu传送至主机1100之后移动数据。
[0224]
当激活模式信息am指示第三模式时,存储装置1200可以执行操作s450至操作s470。参照操作s450,存储装置1200可以从主机1100接收包括读取信息rd和移动信息mv的命令upiu。
[0225]
参照操作s455,存储装置1200可以响应于命令upiu的读取信息rd通过data in upiu将读取数据传送至主机1100。参照操作s460,存储装置1200可以响应于命令upiu的移动信息mv来移动数据的第一部分。参照操作s465,存储装置1200可以将响应upiu传送至命令upiu。
[0226]
参照操作s470,存储装置1200可以响应于命令upiu的移动信息mv来移动数据的第二部分。例如,当激活模式信息am指示第三模式时,存储装置1200可以在将响应upiu传送至主机1100之前或者之后部分地移动数据。
[0227]
可以考虑到存储装置1200的操作速度、主机1100与存储装置1200之间的读取操作的超时时间等来确定激活模式信息am。
[0228]
图16示出了图11的响应upiu ru的示例。参照图1和图16,响应upiu可以包括基本报头bh、包括读取操作的结果的状态信息si以及包括移动操作的结果的移动结果信息mri中的至少一个。
[0229]
移动结果信息mri可以包括第一信息i1至第六信息i6。第一信息i1可以指示移动操作成功还是失败。第二信息i2可以指示通过移动操作移动的数据的比率(即,移动目标数据的比率)。
[0230]
第三信息i3可以包括指示在移动操作之后数据的位置的位图。第四信息i4可以指示已经存储(即,发生命中)的移动目标数据的全部或者一部分,或者未存储(即,发生未命中)的移动目标数据。第五信息i5可以指示应用于移动操作的强制水平信息fl。第六信息i6可以包括应用于移动操作的激活模式信息am。
[0231]
如参照图15的第二模式和第三模式描述的,在传送响应upiu ru时可能未完成数据的移动操作。在这种情况下,控制器1210可以包括响应upiu ru中的移动操作的期望结果作为移动结果信息mri。
[0232]
例如,第一信息i1可以指示期望结果而非成功或失败。第二信息i2和第三信息i3可以基于移动属性ma包括通过控制器1210计算(或者确定)的期望结果。第四信息i4可以确定控制器1210接收读取信息rd的逻辑地址的时间。可以由控制器1210从移动属性ma中检查第五信息i5和第六信息i6。
[0233]
在完成移动操作之后,存储装置1200可以在移动反馈属性处记录移动结果信息mri的第一信息i1至第六信息i6中的至少一个。存储装置1200可以响应于主机1100的请求(例如,查询请求)来将移动反馈属性传送至主机1100。
[0234]
图17和图18示出了其中存储装置1200结合查询请求upiu qu和命令upiu执行数据的移动操作的示例。参照图17和图18,在操作s510中,存储装置1200可以接收包括移动信息mv的查询请求upiu qu。查询请求upiu qu可以包括作为移动信息mv和移动属性ma的组编号gn。
[0235]
移动属性可以与参照图12中的移动信息mv描述的移动属性相同或相似。组编号gn可为在数据的写入操作中主机1100随机赋予数据以区分相似上下文的数据的编号。
[0236]
响应于查询请求upiu qu,存储装置1200可以设定对应于组编号gn的数据的移动属性ma。在查询请求upiu qu之后,参照操作s520,存储装置1200可以接收命令upiu cu。命令upiu cu可以包括基本报头bh、额外信息ai和命令描述符块cdb。
[0237]
命令描述符块cdb可以包括作为读取信息rd的读取描述符。读取信息rd可以包括组编号gn。基于读取信息rd,参照操作s530,存储装置1200可以读取包括在读取信息rd中的逻辑地址的数据,并且可以通过data in upiu将读取数据输出至主机1100。
[0238]
在其中已设定对应于接收到的组编号gn的数据的移动属性ma的情况下,参照操作s540,存储装置1200可以基于移动属性ma来移动包括在读取信息rd中的逻辑地址的数据。参照操作s550,存储装置1200可以将响应upiu传送至主机1100。
[0239]
例如,存储装置1200可以在其中接收到查询请求upiu qu的操作s510与其中接收到命令upiu cu的操作s520之间与主机1100进行其它upiu的通信。例如,在存储装置1200设定移动属性ma之后,当不需要访问存储装置1200时,主机1100可以将移动操作指向存储装置1200。
[0240]
例如,可以通过两个或更多个查询请求upiu来设定用于两个或更多个组编号的移动属性ma。存储装置1200可以将包括在命令upiu的读取信息rd中的组编号与设定了两个或更多个移动属性ma的两个或更多个组编号中的每一个进行比较,并且可以基于比较结果选择性地执行移动操作。
[0241]
例如,如参照图16描述的,数据的移动操作的时间和传送响应upiu的时间可以基于激活模式信息am而改变。另外,可以基于参照图16给出的描述来配置响应upiu。
[0242]
作为响应于包括读取信息rd(或者读取命令)的命令upiu而移动数据的第一方案,如参照图12描述的,存储装置1200可以接收包括在命令upiu中的移动属性ma。包括在命令upiu中的移动属性ma可为单独使用属性,并且可以触发立即(或快速)移动操作。
[0243]
作为第二方案,如参照图18描述的,存储装置1200可以接收包括在查询请求upiu中的移动属性ma。可以将包括在查询请求upiu中的移动属性ma应用于组编号gn的数据,并且不触发移动操作。可以将应用于组编号gn的数据的移动属性ma应用于响应于包括具有相同组编号gn的读取信息rd的命令upiu而执行的移动操作。
[0244]
例如,在通过查询请求upiu为组编号gn的数据设定移动属性ma之后,还可以针对一部分组编号gn使移动属性ma包括在命令upiu的移动信息mv中。在这种情况下,存储装置1200可以首先应用包括在命令upiu中的移动信息mv的移动属性ma,或者可以确定发生了错误。
[0245]
图19是示出图1的存储系统1000的层次结构的图。参照图19,存储系统1000可以包括主机1100和存储装置1200。主机1100可以包括应用ap-h、文件系统fs-h、装置管理器dm-h、ufs应用层uap-h、ufs传输协议层utp-h和ufs互连层uic-h。
[0246]
应用ap-h可以包括在主机1100处驱动的各种应用程序、进程等。文件系统fs-h可被配置为组织和管理通过应用ap-h生成的多种数据。在本发明构思的示例性实施例中,应用ap-h或文件系统fs-h可以被配置为确定逻辑块地址范围,以指定用于特定区域的逻辑块地址范围。可以将有关所确定的逻辑块地址范围的信息提供给下层(例如,设备管理器dm-h或ufs应用层uap-h)。
[0247]
ufs应用层uap-h被配置为支持主机1100与存储装置1200之间的各种命令。例如,ufs应用层uap-h可以包括输入/输出(i/o)流管理器iosm-h和ufs命令集ucs-h。i/o流管理器iosm-h被配置为管理来自应用ap-h或文件系统fs-h的请求。
[0248]
在本发明构思的示例性实施例中,i/o流管理器iosm-h可被配置为识别从应用ap-h或文件系统fs-h输入/输出的特定值。i/o流管理器iosm-h可以被配置为管理来自应用ap-h或文件系统fs-h的请求的优先级,或者根据来自应用ap-h或者文件系统fs-h的请求来支持各种功能。在本发明构思的示例性实施例中,i/o流管理器iosm-h可以被配置为支持turbo写入功能或turbo读取功能。
[0249]
在本发明构思的示例性实施例中,由主机1100或主机1100的用户指定的特定应用或进程可以使用turbo写入或turbo读取。i/o流管理器iosm-h可以响应于由特定应用或进程相对于存储装置1200作出的写入请求或读取请求来确定是否执行turbo写入还是turbo读取。
[0250]
另外,通过文件系统fs-h管理的特定数据可以使用turbo写入或turbo读取。i/o流管理器iosm-h可以响应于关于特定数据(例如,元数据)的针对存储装置1200的写入请求或
者读取请求来确定是执行turbo写入还是turbo读取。
[0251]
另外,i/o流管理器iosm-h可以引导写入存储装置1200中的数据的移动。i/o流管理器iosm-h可以通过将数据移动至固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np或用户存储器ust来调整写入存储装置1200中的数据的读取速度。
[0252]
在本发明构思的示例性实施例中,i/o流管理器iosm-h可以确定根据特定数据的属性而将要在其中存储特定数据的区域(例如,固定turbo写入缓冲器twb-p,非固定turbo写入缓冲器twb-np或用户存储器ust),并且可以向ufs命令集ucs-h提供关于确定的信息(例如,区域信息ari)。
[0253]
在本发明构思的示例性实施例中,i/o流管理器iosm-h可以基于特定数据的属性和预定逻辑块地址范围来确定要存储特定数据的逻辑块地址,并且可以向ufs命令集ucs-h提供有关确定的逻辑块地址范围的信息。
[0254]
ufs命令集ucs-h可以支持在主机1100与存储装置1200之间支持的各种命令集。在本发明构思的示例性实施例中,ufs命令集ucs-h可以包括ufs本机命令集和ufs scsi命令集。ufs命令集ucs-h可以根据来自应用ap-h或文件系统fs-h的请求来配置将被传送至存储装置1200的命令。
[0255]
在本发明构思的示例性实施例中,ufs命令集ucs-h可以被配置为从i/o流管理器iosm-h接收各种信息(例如,逻辑块地址、区域信息、逻辑块地址范围或范围区域信息)并生成各种命令。
[0256]
ufs应用层uap-h还可以包括针对命令队列的控制的处理命令的任务管理器。
[0257]
装置管理器dm-h可以管理装置等级的操作和装置等级的配置。在本发明构思的示例性实施例中,装置管理器dm-h可以管理用于设定或检查存储装置1200的各种信息的查询请求。
[0258]
ufs传输协议层utp-h可以针对上层提供服务。ufs传输协议层utp-h可以生成从ufs应用层uap-h提供的命令或信息或者以upiu(ufs协议信息单元)分组形式从装置管理器dm-h提供的查询请求。
[0259]
在本发明构思的示例性实施例中,ufs传输协议层utp-h和装置管理器dm-h可以通过udm-sap(udm-服务接入点)彼此通信。ufs传输协议层utp-h和ufs应用层uap-h可以通过utp_cmd_sap或utp_tm_sap彼此通信。
[0260]
ufs互连层uic-h可以管理与存储装置1200的连接。在本发明构思的示例性实施例中,ufs互连层uic-h可以包括与存储装置1200的ufs互连层uic-d物理连接的诸如mipi unipro或mipi m-phy的硬件配置。以这种方式,主机1100和存储装置1200可以与彼此建立通信通道。在本发明构思的示例性实施例中,ufs互连层uic-h和ufs传输协议层utp-h可以通过uic-sap通信,并且ufs互连层uic-h和装置管理器dm-h可以通过uio-sap通信。
[0261]
存储装置1200可以包括存储器区域管理器mam-d、存储器区域性能管理器mapm-d、装置管理器dm-d、ufs应用层uap-d、ufs传输协议层utp-d和ufs互连层uic-d。在本发明构思的示例性实施例中,ufs应用层uap-d、ufs传输协议层utp-d和ufs互连层uic-d的配置可以与主机1100的ufs应用层uap-h、ufs传输协议层utp-h和ufs互连层uic-h的配置相似,并且允许对应层在逻辑上彼此通信,因此,将省略额外描述以避免冗余。
[0262]
存储装置1200的存储器区域性能管理器mapm-d可以指定和管理其中将存储从主
机1100接收的写入数据的区域。例如,如上所述,根据主机1100的明确请求或者内部策略,可以在固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储器ust中的至少一个的空间中写入从主机1100接收的写入数据。存储器区域性能管理器mapm-d可以基于上面描述的各种方案来选择其中将存储从主机1100接收的写入数据的空间,并且可以将写入数据存储在选定空间中。
[0263]
如上所述,根据主机1100的明确请求或者内部策略,存储装置1200的存储器区域管理器mam-d可以控制固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储器ust之间的数据移动/清理/迁移。
[0264]
主机1100和存储装置1200中的每一个的以上层次结构和功能仅为示例性的,并且本发明构思不限于此。
[0265]
图20是详细示出根据本发明构思的示例性实施例的存储系统1000的框图。参照图19和图20,存储系统1000可以包括主机1100和存储装置1200。主机1100和存储装置1200可以如参照图1至图19描述的那样操作。
[0266]
主机1100可以包括应用处理器1110、随机存取存储器(ram)1120、调制解调器1130、装置驱动器1140、扬声器1150、显示器1160、触摸面板1170、麦克风1180和图像传感器1190。
[0267]
应用处理器1110可以执行应用ap-h和文件系统fs-h。应用处理器1110可以使用ram 1120作为系统存储器。应用处理器1110可以通过调制解调器1130与外部装置以有线方式或无线地通信。例如,调制解调器1130可嵌入应用处理器1110中。
[0268]
应用处理器1110可以通过装置驱动器1140与外围装置通信。例如,应用处理器1110可以通过装置驱动器1140与扬声器1150、显示器1160、触摸面板1170、麦克风1180、图像传感器1190和存储装置1200通信。
[0269]
装置驱动器1140可以包括装置管理器dm-h、ufs应用层uap-h、ufs传输协议层utp-h和ufs互连层uic-h。例如,装置驱动器1140可嵌入应用处理器1110中。
[0270]
扬声器1150和显示器1160可为将信息传送至用户的用户输出接口。触摸面板1170、麦克风1180和图像传感器1190可为从用户接收信息的用户输入接口。
[0271]
在本发明构思的示例性实施例中,存储装置1200可以用作主机1100的大容量存储介质。存储装置1200可以是嵌入式类型的ufs装置或存储卡类型的ufs装置。存储卡类型的ufs装置可以插入主机1100中包括的ufs插槽中或从主机1100中包括的ufs插槽拆卸。
[0272]
图21示出了其中本发明构思的示例性实施例应用于存储系统1000的示图。参照图20和图21,存储系统1000可以通过显示器1160来提供设定屏幕。设定屏幕之一可以将加速模式的信息提供给用户。
[0273]
存储系统1000可以通过显示器1160来显示可应用加速模式的第一应用app1至第n应用appn的列表。另外,存储系统1000可以通过显示器1160来显示允许用户调整第一应用app1至第n应用appn的加速模式的开关。
[0274]
在操作s610中,用户可以触摸第三应用app3的加速模式的使能位置。存储系统1000可以感测用户的触摸,换言之,通过触摸面板1170来感测激活第三应用app3的方向。在操作s620中,可以将第三应用app3的信息或第三应用app3的进程传送至i/o流管理器iosm-h。
[0275]
随着接收到第三应用app3的信息或第三应用app3的进程,在操作s630中,i/o流管理器iosm-h可以保留由此选定的第三应用app3或进程的后续读取的移动操作。例如,i/o流管理器iosm-h可以通过查询请求upiu相对于与第三应用app3相关联的数据来设定移动属性ma,并且当需要与第三应用app3关联的读取操作时,可以包括移动标志作为命令(cmd)upiu中的移动信息mv。
[0276]
作为另一示例,当需要与第三应用app3相关联的读取操作时,i/o流管理器iosm-h可以包括移动标志和移动属性ma作为cmd upiu中的移动信息mv。例如,i/o流管理器iosm-h可以指定固定turbo写入缓冲器twb-p或非固定turbo写入缓冲器twb-np作为移动属性ma的目的地信息dst。
[0277]
当与第三应用app3相关联的数据移动至固定turbo写入缓冲器twb-p或非固定turbo写入缓冲器twb-np时,读取与第三应用app3相关联的数据的操作加速。因此,可加速第三应用app3的性能。
[0278]
例如,在其中禁用第三应用app3的加速模式的情况下,i/o流管理器iosm-h可以保留第三应用app3的后续读取的移动操作,例如,对用户存储器ust或非固定turbo写入缓冲器twb-np的移动操作。
[0279]
在以上实施例中,参照ufs协议描述了本发明构思。然而,本发明构思不限于ufs协议,并且可应用于各种协议。
[0280]
在上述实施例中,通过利用术语“第一”、“第二”、“第三”等来描述存储系统1000的部件。然而,术语“第一”、“第二”、“第三”等可用于将部件彼此区分开,而不是限制本发明构思。例如,“第一”、“第二”、“第三”等不涉及任何形式的次序或者数字含义。
[0281]
在以上实施例中,通过使用块来描述根据本发明构思的实施例的部件。这些块可以使用各种硬件装置(诸如集成电路、专用ic(asci)、现场可编程门阵列(fpga)和复杂可编程逻辑器件(cpld))、硬件装置中驱动的固件、软件(诸如应用)或者硬件装置和软件的组合来实施。此外,这些块可以包括在集成电路中使用半导体元件实施的电路或登记为知识产权(ip)的电路
[0282]
根据本发明构思,存储装置提供了一种支持比用户存储器更快的写入和读取的turbo写入缓冲器。存储装置支持在turbo写入缓冲器上优先写入,并且支持将用户存储器的数据移动至turbo写入缓冲器。因此,提供了具有提高的写入和读取速度的存储装置。
[0283]
虽然参照本发明构思的示例性实施例描述了本发明构思,但是本领域普通技术人员将显而易见,在不脱离如所附权利要求阐述的本发明构思的精神和范围的情况下,可以对本发明构思进行各种改变和修改。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1