一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储装置的制作方法

2021-02-03 12:16:00 来源:中国专利 TAG:韩国 装置 专利申请 在这里 优先权

存储装置
[0001]
本申请要求于2019年8月2日在韩国知识产权局提交的第10-2019-0094250号韩国专利申请的优先权,该韩国专利申请的公开内容通过引用全部包含于此。
技术领域
[0002]
在这里描述的发明构思的实施例涉及一种半导体装置,更具体地涉及一种存储装置。


背景技术:

[0003]
半导体存储器可以被分类为易失性存储器装置和非易失性存储器装置。易失性存储器装置在断电时丢失存储在其中的数据,并且包括静态随机存取存储器(sram)或动态随机存取存储器(dram)。非易失性存储器装置即使在断电时也保持存储在其中的数据,并且包括闪存装置、相变ram(pram)、磁性ram(mram)、电阻式ram(rram)或铁电ram(fram)。
[0004]
闪存装置被广泛地用在计算装置中,以存储大量的数据。由jedec标准定义的通用闪存(ufs)接口可以比传统的基于闪存的存储装置支持更高的操作速度。


技术实现要素:

[0005]
发明构思的至少一个实施例提供了一种具有改善的可靠性和降低的成本的存储装置。
[0006]
根据发明构思的示例性实施例,一种存储装置包括:非易失性存储器装置,包括第一区域、第二区域和第三区域;以及控制器,从外部主机装置接收包括移动属性信息和第一逻辑块地址的第一操作命令,并且响应于接收的第一操作命令而将与第一逻辑块地址对应的第一数据移动到第一区域、第二区域和第三区域之中的与移动信息对应的区域,并且当第一操作命令不包括移动属性信息时,控制器执行与第一操作命令对应的第一操作。
[0007]
根据发明构思的示例性实施例,一种存储装置包括:非易失性存储器装置,包括第一区域、第二区域和第三区域;以及控制器,从外部主机装置接收包括第一逻辑块地址和与第一逻辑块地址对应的第一数据的写入命令,并且将第一数据写入第一区域、第二区域和第三区域中的一个区域中。控制器从外部主机装置接收包括第一逻辑块地址的第一读取命令,响应于第一读取命令而读取存储在第一区域、第二区域和第三区域的区域中的一个区域中的第一数据,并且将读取的第一数据发送到外部主机装置。控制器从外部主机装置接收包括第一逻辑块地址和移动属性信息的第二读取命令,并且将存储在第一区域、第二区域和第三区域中的一个区域中的第一数据移动到第一区域、第二区域和第三区域之中的与移动属性信息对应的另一区域,而不向外部主机装置传送第一数据。
[0008]
根据发明构思的示例性实施例,一种存储装置包括:非易失性存储器装置,包括固定turbo写入缓冲器、非固定turbo写入缓冲器和用户存储部,其中,固定turbo写入缓冲器和非固定turbo写入缓冲器中的每个包括均存储一个比特的多个单层单元,并且用户存储部包括均存储多个比特的多个多层单元;以及控制器,从外部主机装置接收包括第一逻辑
块地址和移动属性信息的第一读取命令,响应于接收的读取命令而从固定turbo写入缓冲器、非固定turbo写入缓冲器和用户存储部中的一个读取与第一逻辑块地址对应的第一数据,将读取的第一数据存储在固定turbo写入缓冲器、非固定turbo写入缓冲器和用户存储部之中的与移动属性信息对应的另一个中,并且使存储在固定turbo写入缓冲器、非固定turbo写入缓冲器和用户存储部中的所述一个中的第一数据无效。控制器省略将第一数据传送到外部主机装置的操作。
附图说明
[0009]
通过参照附图更详细地描述发明构思的示例实施例,发明构思将变得明显。
[0010]
图1是示出根据发明构思的示例性实施例的存储系统的框图。
[0011]
图2是示出根据发明构思的示例性实施例的图1的存储装置的物理存储空间的示图。
[0012]
图3a和图3b是用于描述图2的turbo写入缓冲器类型的示图。
[0013]
图4a和图4b是用于描述配置图1的存储装置的turbo写入缓冲器的示例性模式的示图。
[0014]
图5是示出根据发明构思的示例性实施例的图1的存储系统的操作的流程图。
[0015]
图6是示出根据发明构思的示例性实施例的图1的存储系统的操作的流程图。
[0016]
图7是示出根据发明构思的示例性实施例的图1的存储装置的操作的流程图。
[0017]
图8是示出根据发明构思的示例性实施例的图1的存储装置的物理存储空间的框图。
[0018]
图9是示出用于参照图8描述的存储装置的物理存储空间的逻辑存储空间的示图。
[0019]
图10a和图10b是示出根据发明构思的示例性实施例的参照图8描述的存储装置的物理存储空间中的操作的示图。
[0020]
图11是示出根据发明构思的示例性实施例的图1的存储系统的操作的流程图。
[0021]
图12a和图12b是用于描述根据图11的流程图的操作的示图。
[0022]
图13是示出根据发明构思的示例性实施例的图1的存储装置的操作的流程图。
[0023]
图14a至图14d是示出在图1的主机与存储装置之间交换的数据包的各种格式的示图。
[0024]
图15是示出根据发明构思的示例性实施例的图1的存储系统的操作的流程图。
[0025]
图16a至图16c是用于描述根据图15的流程图的操作的示图。
[0026]
图17是示出图1的存储系统的分层结构的示图。
[0027]
图18是详细地示出根据发明构思的示例性实施例的存储系统的框图。
[0028]
图19示出发明构思的实施例应用于存储系统的概念图。
具体实施方式
[0029]
下面,以本领域普通技术人员可以实现发明构思的程度详细地且清楚地描述发明构思的实施例。
[0030]
在具体实施方式中参照术语“单元”、“模块”或者“块”以及附图中示出的功能块描述的组件可以用软件、硬件或它们的组合来实现。在实施例中,软件可以是机器代码、固件、
嵌入式代码和应用软件。例如,硬件可以包括集成电路(ic)、专用ic(asic)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)、微机电系统(mems)、处理器、无源元件或它们的组合。
[0031]
图1是示出根据发明构思的示例性实施例的存储系统的框图。参照图1,存储系统1000可以包括主机1100和存储装置1200。在发明构思的示例性实施例中,存储系统1000可以包括各种计算系统(诸如个人计算机、笔记本电脑、平板电脑、智能电话和可穿戴装置)中的一种。
[0032]
主机1100可以将数据存储在存储装置1200中,或者可以读取存储在存储装置1200中的数据。例如,主机1100可以将写入命令和写入数据传送到存储装置1200,以将数据存储在存储装置1200中。可选地,为了从存储装置1200读取数据,主机1100可以将读取命令传送到存储装置1200,并且可以从存储装置1200接收数据。
[0033]
主机1100可以包括主处理器,诸如中央处理器(cpu)或应用处理器(ap)。此外,主机1100可以包括辅助主处理器的辅助处理器,诸如图形处理器(gpu)或神经处理器(npu)。
[0034]
存储装置1200可以在主机1100的控制下进行操作。例如,存储装置1200可以包括控制器1210和非易失性存储器装置1220。控制器1210(也称为存储器控制器)可以响应于从主机1100接收的命令而操作。例如,控制器1210可以从主机1100接收写入命令和写入数据,并且可以响应于接收的写入命令而将接收的写入数据存储在非易失性存储器装置1220中。
[0035]
可选地,控制器1210可以从主机1100接收读取命令,并且可以响应于接收的读取命令而读取存储在非易失性存储器装置1220中的数据。然后,控制器1210可以将读取数据传送到主机1100。在发明构思的示例性实施例中,非易失性存储器装置1220可以为nand闪存装置,但发明构思不限于此。
[0036]
在发明构思的示例性实施例中,主机1100可以基于由jedec标准定义的通用闪存(ufs)接口或通用闪存(ufs)协议与存储装置1200通信。例如,主机1100和存储装置1200可以以ufs协议信息单元(upiu)的形式交换数据包。upiu可以包括由主机1100与存储装置1200之间的接口(例如,ufs接口)定义的各种信息。然而,发明构思不限于此。下面,为了便于描述,术语“命令”,“upiu”和“数据”可以是可互换的,并且根据在这里公开的实施例,这些术语可以具有相同的含义或不同的含义。
[0037]
在发明构思的示例性实施例中,存储装置1200可以支持turbo写入功能或turbo写入特征。turbo写入功能可以在主机1100的控制下被启用或禁用。在发明构思的示例性实施例中,控制器1210可以响应于来自主机1100的turbo写入功能启用请求而启用或禁用turbo写入功能。例如,可以通过查询请求通用闪存协议信息单元(upiu)从主机1100接收turbo写入功能启用请求。当turbo写入功能在主机1100的控制下被启用时,存储装置1200可以执行turbo写入操作。turbo写入操作可以基于单层单元(slc)缓冲方案来执行,但不限于此,并且turbo写入操作可以提供存储装置1200的改善的性能(具体地,改善的写入性能)。下面将参照附图更充分地描述turbo写入操作。
[0038]
图2是示出图1的存储装置1200的物理存储空间ps的示图。存储装置1200的物理存储空间ps可以指示非易失性存储器装置1220的实际地存储用户数据的物理区域。换言之,物理存储空间ps可以是被主机1100识别为存储装置1200的容量的空间。出于彼此通信的目的,主机1100和存储装置1200可以按照由jedec提出的ufs协议来实现,但发明构思不限于
此。
[0039]
在发明构思的示例性实施例中,除了图2中示出的物理存储空间ps之外,存储装置1200还可以包括任何其他存储空间(例如,未被主机1100识别为存储装置1200的容量的空间,诸如保留区域、用于存储元数据的元区域或用于改善性能的预留空间区域)。然而,为了便于描述,将省略与其他存储空间相关联的附加描述(或者将使与其他存储空间相关联的附加描述最小化),并且描述将集中于存储用户数据的物理存储空间ps。
[0040]
参照图1和图2,存储装置1200的物理存储空间ps可以包括turbo写入缓冲区域twb(在下文中被称为“turbo写入缓冲器”)和用户存储区域ust(在下文中被称为“用户存储部”)。用户存储部和turbo写入缓冲器可以被称为第一区域、第二区域、第三区域等。
[0041]
turbo写入缓冲器twb可以与非易失性存储器装置1220的物理存储空间ps的一部分(例如,“a”)对应。用户存储部ust可以与非易失性存储器装置1220的物理存储空间ps的剩余部分(例如,“b”)对应。可选地,用户存储部ust可以与非易失性存储器装置1220的全部物理存储空间ps(例如,a b)对应。
[0042]
在发明构思的示例性实施例中,与turbo写入缓冲器twb对应的每个存储器单元可以是slc,与用户存储部ust对应的每个存储器单元可以是三层单元(tlc)。可选地,与turbo写入缓冲器twb对应的存储器单元中的每个可以存储n比特数据(n为正整数),与用户存储部ust对应的存储器单元中的每个可以存储m比特数据(m为大于n的正整数)。换言之,turbo写入缓冲器twb可以是支持比用户存储部ust高的写入速度的区域。
[0043]
发明构思不限于关于turbo写入缓冲器twb和用户存储部ust的以上描述。例如,存储在与turbo写入缓冲器twb对应的每个存储器单元中的比特的数量(例如,k)可以大于或等于存储在与用户存储部ust对应的每个存储器单元中的比特的数量(例如,i)(即,k≥i)。在发明构思的示例性实施例中,在turbo写入缓冲器twb和用户存储部ust中,每个存储器单元将存储的比特的数量可以由存储装置1200的各种因素(诸如,可靠性和寿命)来确定。可选地,turbo写入缓冲器twb和用户存储部ust可以通过各种因素(诸如,存储装置1200的可靠性和寿命)以及每个存储器单元将存储的比特的数量来划分。
[0044]
在发明构思的示例性实施例中,参考符号“a”和“b”中的每个可以是对应的存储空间中的存储器块的数量。“a”和“b”的值可以根据turbo写入缓冲器twb和用户存储部ust的大小以及实现turbo写入缓冲器twb和用户存储部ust的方案(例如,slc、多层单元(mlc)、tlc和四层单元(qlc))而被不同地改变。
[0045]
如参照图1描述的一样,存储装置1200可以支持正常写入功能和turbo写入功能。当turbo写入功能被主机1100启用时,存储装置1200可以执行turbo写入操作。当turbo写入功能被主机1100禁用时,存储装置1200可以执行正常写入操作。
[0046]
例如,在turbo写入功能被启用的情况下,存储装置1200可以将从主机1100接收的写入数据优先地写入turbo写入缓冲器twb中。在这样的情况下,因为将从主机1100接收的写入数据写入turbo写入缓冲器twb中(例如,slc编程),所以与对用户存储部ust执行正常写入操作(例如,tlc编程)的情况相比,可以确保快的操作速度。在turbo写入功能被禁用的情况下,存储装置1200可以不将写入数据首先写入turbo写入缓冲器twb中。根据内部分配的策略(例如,正常写入策略),存储装置1200可以将写入数据直接写入用户存储部ust中,或者可以将写入数据写入turbo写入缓冲器twb中。根据正常写入策略,可以基于各种因素
(诸如,turbo写入缓冲器twb的数据份额和物理存储空间ps的状态)确定如何写入写入数据。
[0047]
作为另一示例,正常写入策略可以将写入数据首先写入用户存储部ust中。为了更清楚地解释发明构思,在下面的详细描述中,正常写入策略是将写入数据优先地写入用户存储部ust中的策略。然而,发明构思不限于此。
[0048]
在发明构思的示例性实施例中,根据来自主机1100的明确命令或内部分配的策略,可以将写入turbo写入缓冲器twb中的数据移动、冲刷或迁移到用户存储部ust。
[0049]
图3a和图3b是用于描述图2的turbo写入缓冲器的示图。参照图1、图2、图3a和图3b,存储装置1200可以包括第一逻辑单元lu1、第二逻辑单元lu2、第三逻辑单元lu3和第四逻辑单元lu4。第一逻辑单元lu1至第四逻辑单元lu4中的每个可以是处理来自主机1100的命令的外部可寻址的独立处理实体。主机1100可以通过第一逻辑单元lu1至第四逻辑单元lu4管理存储装置1200的存储空间。第一逻辑单元lu1至第四逻辑单元lu4中的每个可以用于在存储装置1200处存储数据。
[0050]
第一逻辑单元lu1至第四逻辑单元lu4中的每个可以与非易失性存储器装置1220的至少一个存储器块相关联。可存在用于各种目的的各种逻辑单元。然而,第一逻辑单元lu1至第四逻辑单元lu4可以与物理存储空间ps对应,并且可以用于存储主机1100的数据。
[0051]
在图3a和图3b中示出了第一逻辑单元lu1至第四逻辑单元lu4,但发明构思不限于此。例如,除了第一逻辑单元lu1至第四逻辑单元lu4之外,存储装置1200还可以包括用于存储和管理用户数据的其他逻辑单元。可选地,除了第一逻辑单元lu1至第四逻辑单元lu4之外,存储装置1200还可以包括用于支持各种功能的其他逻辑单元。
[0052]
存储装置1200的turbo写入缓冲器twb可以以各种类型来配置。turbo写入缓冲器twb可以以逻辑单元(lu)专用缓冲器类型和共享缓冲器类型中的一个进行配置。
[0053]
在lu专用缓冲器类型的情况下,可以针对每个逻辑单元(lu)独立地或单独地配置turbo写入缓冲器twb。例如,如图3a中所示,在lu专用缓冲器类型中,可以针对第一逻辑单元lu1至第四逻辑单元lu4中的第一逻辑单元lu1配置第一turbo写入缓冲器twb1,可以针对第一逻辑单元lu1至第四逻辑单元lu4中的第三逻辑单元lu3配置第三turbo写入缓冲器twb3。
[0054]
在图3a的lu专用缓冲器类型中,在启用turbo写入之后接收到针对第一逻辑单元lu1的写入命令的情况下,可以将写入数据优先地写入与第一逻辑单元lu1对应的第一turbo写入缓冲器twb1中。在启用turbo写入功能之后接收到针对第三逻辑单元lu3的写入命令的情况下,可以将写入数据优先地写入与第三逻辑单元lu3对应的第三turbo写入缓冲器twb3中。
[0055]
在接收到针对未分配turbo写入缓冲器twb的第二逻辑单元lu2和第四逻辑单元lu4的写入命令的情况下,可以将写入数据写入与第二逻辑单元lu2和第四逻辑单元lu4对应的用户存储部ust中。此外,在禁用turbo写入之后接收到针对第一逻辑单元lu1或第三逻辑单元lu3的写入命令的情况下,根据正常写入策略,可以将写入数据写入第一逻辑单元lu1的用户存储部ust或第一turbo写入缓冲器twb1中,或者可以将写入数据写入第三逻辑单元lu3的用户存储部ust或第三turbo写入缓冲器twb3中。
[0056]
在发明构思的示例性实施例中,第一turbo写入缓冲器twb1和第三turbo写入缓冲
器twb3的容量可以被彼此独立地设置。然而,发明构思不限于此。例如,分别分配有turbo写入缓冲器的逻辑单元的数量、每个turbo写入缓冲器的容量等可以被不同地改变或修改。
[0057]
在发明构思的示例性实施例中,用于每个逻辑单元的turbo写入缓冲器twb的大小可以被设置到单元描述符的每单元turbo写入缓冲器大小字段(例如,“dlunumturbowritebufferallocunits”)。在发明构思的示例性实施例中,每单元turbo写入缓冲器大小字段(例如,“dlunumturbowritebufferallocunits”)可以是可配置的参数。
[0058]
在共享缓冲器类型的情况下,可以针对所有逻辑单元配置一个turbo写入缓冲器。例如,如图3b中所示,在共享缓冲器类型中,可以配置由所有第一逻辑单元lu1至第四逻辑单元lu4共享的一个turbo写入缓冲器twb0。
[0059]
在这样的情况下,当在启用turbo写入功能之后接收到针对第一逻辑单元lu1至第四逻辑单元lu4中的每个的写入命令时,可以将写入数据首先写入共享的turbo写入缓冲器twb0中。在禁用turbo写入功能之后接收到针对第一逻辑单元lu1至第四逻辑单元lu4中的每个的写入命令的情况下,可以根据正常写入策略将写入数据写入第一逻辑单元lu1至第四逻辑单元lu4中的每个中或共享的turbo写入缓冲器twb0中。
[0060]
如上所述,存储装置1200可以包括用于支持turbo写入功能的turbo写入缓冲器twb。根据缓冲器类型(例如,lu专用缓冲器类型或共享缓冲器类型),turbo写入缓冲器twb可以针对多个逻辑单元中的每个被配置,或者一个turbo写入缓冲器twb可以被配置为由所有的逻辑单元共享。
[0061]
图4a和图4b是用于描述配置图1的存储装置的turbo写入缓冲器的模式的示图。下面,为了便于描述,假设存储装置1200的物理存储空间ps基于tlc为32gb。换言之,在包括在存储装置1200中的每个存储器单元存储3比特数据的情况下,存储装置1200可以存储32gb的用户数据。
[0062]
然而,发明构思不限于此。例如,存储装置1200的物理存储空间ps可以根据实现存储装置1200或非易失性存储器装置1220的方案(例如,根据存储器单元类型(例如,slc、mlc、tlc或qlc)、存储器单元的数量、存储器单元结构、预留空间比例等)而被不同地改变。
[0063]
参照图1、图4a和图4b,存储装置1200可以根据各种模式来配置turbo写入缓冲器twb的物理存储空间。例如,存储装置1200可以基于用户容量减小模式和无用户容量减小模式中的一个来配置turbo写入缓冲器的物理存储空间。
[0064]
用户容量减小模式可以是出于配置turbo写入缓冲器twba的目的而减小用户存储部usta的用户容量的模式。例如,如图4a中所示,存储装置1200的物理存储空间ps基于tlc可以是32gb。
[0065]
在配置turbo写入缓冲器twb之前,32gb的容量(例如,物理存储空间ps的全部容量)可以被分配给用户存储部ust,或者可以用于用户存储部ust。在这样的情况下,从主机1100的视角来看,用户存储部ust可以被识别为32gb。
[0066]
turbo写入缓冲器twb可以根据用户容量减小模式来配置。在这样的情况下,作为物理存储空间ps的一部分的第二物理存储空间ps2a可以被分配给turbo写入缓冲器twba,或者可以用于turbo写入缓冲器twba。
[0067]
此外,作为物理存储空间ps的一部分的第一物理存储空间ps1a可以被分配给用户存储部usta,或者可以用于用户存储部usta。在这样的情况下,与未配置turbo写入缓冲器
twba的情况相比,从主机1100的视角来看,用户存储部usta的容量会减小(例如,从32gb减小到26gb)。
[0068]
在发明构思的示例性实施例中,与用户存储部usta对应的第一物理存储空间ps1a可以用tlc来实现,与turbo写入缓冲器twba对应的第二物理存储空间ps2a可以用slc来实现。当相同的存储空间用作tlc和slc时,容量的比例可以为“3:1”。
[0069]
换言之,当turbo写入缓冲器twba的大小增加与1gb一样多时,用户存储部usta的逻辑存储空间的大小会减小与3gb一样多。如上所述,在turbo写入缓冲器twba在用户容量减小模式下被配置的情况下,存储装置1200的物理存储空间ps的一部分可以被分配为用于turbo写入缓冲器twba,因此,被主机1100识别的用户存储部usta的容量会减小。
[0070]
在发明构思的示例性实施例中,与用户存储部usta对应的第一物理存储空间ps1a和与turbo写入缓冲器twba对应的第二物理存储空间ps2a可以彼此物理地相邻,或者可以彼此物理地间隔开。
[0071]
无用户容量减小模式可以是这样的模式,即使配置了turbo写入缓冲器twbb,被主机1100识别的用户存储部ustb的逻辑存储容量也不减小。例如,如图4b中所示,在配置turbo写入缓冲器twb之前,用户存储部ust可以具有32gb的容量。换言之,存储装置1200的物理存储空间ps可以被分配给用户存储部ust,或者可以用于用户存储部ust。
[0072]
在基于无用户容量减小模式配置turbo写入缓冲器twb的情况下,可以配置具有特定容量(例如,2gb)的turbo写入缓冲器twbb。作为物理存储空间ps的一部分的第二物理存储空间ps2b可以被分配给turbo写入缓冲器twbb,或者可以用于turbo写入缓冲器twbb。
[0073]
与用户容量减少模式不同,无用户容量减少模式下的用户存储部ustb可以保持32gb的容量。换言之,在无用户容量减小模式下,即使配置了turbo写入缓冲器twbb,从主机1100的视角识别的用户存储部ust的容量可以与配置turbo写入缓冲器twbb之前的容量相同。
[0074]
在发明构思的示例性实施例中,在无用户容量减小模式下,turbo写入缓冲器twbb的大小或配置可以通过存储装置1200的内部策略或来自主机1100的明确请求来变化。例如,因为作为物理存储空间ps的一部分的第二物理存储空间ps2b用于配置turbo写入缓冲器twbb,所以将用于用户存储部ustb的第一物理存储空间ps1b可以小于用户存储部ustb的容量。
[0075]
换言之,在全部第一物理存储空间ps1b用于存储用户数据,或者第一物理存储空间ps1b的可用空闲容量等于或小于参考值的情况下,用于turbo写入缓冲器twbb的第二物理存储空间ps2b的全部或一部分可以被返还给用户存储部ustb。
[0076]
换言之,在物理存储空间ps中,在由于缺少用于用户存储部ustb的可用空间而不能保持turbo写入缓冲器twbb的情况下,可以将分配为用于turbo写入缓冲器twbb的第二物理存储空间ps2b返还给用户存储部ustb。例如,可以通过用户数据冲刷操作和设置turbo写入缓冲器大小的操作来执行上述返还操作。
[0077]
在发明构思的示例性实施例中,主机1100可以检查存储装置1200的turbo写入缓冲器twb的当前可用大小。例如,存储装置1200可以在属性的当前turbo写入缓冲器大小字段(例如,“dcurrentturbowritebuffersize”)设置关于turbo写入缓冲器twb的当前大小的信息。此外,存储装置1200可以在属性的可用turbo写入缓冲器大小字段(例如,

davailableturbowritebuffersize”)设置关于turbo写入缓冲器twb的当前可用容量的比例的信息。
[0078]
主机1100可以通过检查属性的当前turbo写入缓冲器大小字段和可用turbo写入缓冲器大小字段来检查turbo写入缓冲器twb的当前可用大小。基于检查的信息,主机1100可以改变使用turbo写入的策略,或者可以将用于turbo写入缓冲器twb的物理存储空间返还给用户存储部ust。
[0079]
作为另一示例,存储装置1200可以自主地将用于turbo写入缓冲器twb的物理存储空间返还给用户存储部ust。例如,存储装置1200可以周期性地将用户存储部ust的可用空间与参考值进行比较,以确定是否需要将用于turbo写入缓冲器twb的物理存储空间返还给用户存储部ust。当存储装置1200已经将用于turbo写入缓冲器twb的物理存储空间返还给用户存储部ust时,存储装置1200可以设置状态标志,以指示turbo写入缓冲器twb不再可用。状态标志可以存储在存储装置1200中的寄存器中。主机1100可以通过当前turbo写入缓冲器大小字段来检查turbo写入缓冲器twb的改变状态。当用于turbo写入缓冲器twb的物理存储空间被返还给用户存储部ust时,存储装置1200可以将当前turbo写入缓冲器大小字段设置为0。
[0080]
在发明构思的示例性实施例中,存储装置1200可以基于分配给turbo写入缓冲器twb或用于turbo写入缓冲器twb的物理存储空间(或存储器块)的编程/擦除(p/e)循环的数量提供关于turbo写入缓冲器twb的寿命的信息。例如,存储装置1200可以在属性的turbo写入缓冲器寿命估计字段(例如,“dturbowritebufferlifetimeest”)设置关于turbo写入缓冲器twb的寿命的信息。
[0081]
主机1100可以通过经由查询请求检查存储装置1200的属性的turbo写入缓冲器寿命估计字段来估计turbo写入缓冲器twb的寿命。在发明构思的示例性实施例中,在无用户容量减小模式中,因为用户存储部ust和turbo写入缓冲器twb共享物理存储空间ps,所以在对用户存储部ust执行写入操作的情况下,turbo写入缓冲器twb的寿命会减小。
[0082]
图5是示出图1的存储系统的操作的流程图。参照图5描述存储系统1000的初始化操作。参照图1、图2和图5,在操作s11中,主机1100和存储装置1200可以执行诸如上电复位操作、硬件复位操作或端点复位操作的操作。
[0083]
在操作s12中,主机1100和存储装置1200可以执行硬件复位和引导。例如,主机1100和存储装置1200中的每个的硬件层可以被初始化和被引导。
[0084]
在操作s13中,主机1100和存储装置1200可以对特定层(例如,ufs传输(utp)层)执行初始化。例如,主机1100可以将nop out upiu传送到存储装置1200。存储装置1200可以响应于nop out upiu而将nop in upiu发送到主机1100。
[0085]
在操作s14中,主机1100可以检查来自存储装置1200的装置描述符。例如,主机1100可以将用于读取描述符的查询请求传送到存储装置1200。存储装置1200可以响应于查询请求而将包括装置描述符的查询响应传送到主机1100。查询请求可以包括读取描述符。例如,读取描述符可以向存储装置1200指示外部装置期望装置描述符。
[0086]
在发明构思的示例性实施例中,主机1100可以通过装置描述符检查存储装置1200的配置和功能。例如,装置描述符可以包括扩展ufs功能支持字段(例如,“dextendedufsfeaturessupport”),扩展ufs功能支持字段包括关于是否支持turbo写入功
能的信息。在发明构思的示例性实施例中,关于是否支持turbo写入功能的信息可以被设置到扩展ufs功能支持字段的特定位(例如,位[8])。
[0087]
装置描述符还可以包括turbo写入缓冲器无用户空间减少启用字段(例如,“bturbowritebuffernouserspacereductionen”),turbo写入缓冲器无用户空间减少启用字段包括关于turbo写入缓冲器模式的信息。在turbo写入缓冲器无用户空间减小启用字段的值为“00h”的情况下,可以根据参照图4a描述的用户容量减小模式来配置turbo写入缓冲器twb。在turbo写入缓冲器无用户空间减小启用字段的值为“01h”的情况下,可以根据参照图4b描述的无用户容量减小模式来配置turbo写入缓冲器twb。
[0088]
装置描述符还可以包括包含关于turbo写入缓冲器类型的信息的turbo写入缓冲器类型字段(例如,“bturbowritebuffertype”)。在turbo写入缓冲器类型字段的值为“00h”的情况下,可以根据参照图3a描述的lu专用缓冲器类型来配置turbo写入缓冲器twb。在turbo写入缓冲器类型字段的值为“01h”的情况下,可以根据参照图3b描述的共享缓冲器类型来配置turbo写入缓冲器twb。
[0089]
装置描述符还可以包括共享turbo写入缓冲器分配数量字段(例如,“dnumsharedturbowritebufferallocunits”),共享turbo写入缓冲器分配数量字段包括关于turbo写入缓冲器的大小的信息。在分配给共享turbo写入缓冲器的单元的数量设置为“0”的情况下,可以不配置共享缓冲器类型的turbo写入缓冲器。
[0090]
上述字段仅是示例性的,并且发明构思不限于此。例如,除了上述字段之外,装置描述符还可以包括包含关于存储装置1200的配置、结构、功能等的信息的其他字段。装置描述符的各种字段可以指示在初始化操作之前设置的值。主机1100可以通过读取装置描述符的各种字段来识别存储装置1200的当前状态。
[0091]
在发明构思的示例性实施例中,可以通过写入配置描述符的相应字段的值来使装置描述符的上述字段(诸如,“bturbowritebuffernouserspacereductionen”,“bturbowritebuffertype”和“dnumsharedturbowritebufferallocunits”)变化。换言之,主机1100可以通过写入配置描述符的各种字段的值来改变诸如turbo写入缓冲类型、turbo写入缓冲器无用户空间减少启用以及分配给turbo写入缓冲器的单元数量的信息。在发明构思的示例性实施例中,存储装置1200的几何描述符可以包括诸如turbo写入缓冲器最大大小字段、turbo写入缓冲器最大数量字段、turbo写入缓冲器容量调节因子字段、支持的turbo写入缓冲器无用户容量减小类型字段,支持的turbo写入缓冲器类型字段等的信息。
[0092]
例如,turbo写入缓冲器最大大小字段(例如,“dturbowritebuffermaxnallocunits”)可以包括关于在存储装置1200处支持的turbo写入缓冲器twb的最大大小的信息。turbo写入缓冲器最大数量字段(例如,“bdevicemaxturbowritelus”)可以包括关于在存储装置1200处支持的turbo写入缓冲器的最大数量的信息。
[0093]
turbo写入缓冲器容量调节因子字段(例如,“bturbowritebuffercapadjfac”)可以包括关于根据turbo写入缓冲存储器的种类的容量减小因子的信息。例如,在用slc实现turbo写入缓冲器twb并且用tlc实现用户存储部ust的情况下,turbo写入缓冲器容量调节因子字段的值可以为“3”。在用slc实现turbo写入缓冲器twb并且用mlc实现用户存储部ust的情况下,turbo写入缓冲器容量调节因子字段的值可以为“2”。
[0094]
支持的turbo写入缓冲器无用户容量减小类型字段(例如,“bsupportedturbowritebuffernouserspacereductiontypes”)可以包括关于存储装置1200是否支持任何turbo写入缓冲器模式(例如,用户容量减小模式、无用户容量减小模式或两者)的信息。
[0095]
支持的turbo写入缓冲器类型字段(例如,“bsupportedturbowritebuffertypes”)可以包括关于存储装置1200是否支持任何turbo写入缓冲器类型(例如,lu专用缓冲器类型、共享缓冲器类型或两者)的信息。
[0096]
上述字段仅是示例性的,并且发明构思不限于此。
[0097]
在操作s15中,主机1100可以从存储装置1200下载引导代码。例如,主机1100可以将测试单元就绪(test unit ready)upiu传送到存储装置1200。存储装置1200可以响应于接收的测试单元就绪upiu而传送状态信息。主机1100可以基于接收的状态信息来确定存储装置1200的引导逻辑单元(或引导公知lu)是否可访问。
[0098]
在引导逻辑单元可访问的情况下,主机1100可以将scsi read命令传送到存储装置1200。在发明构思的示例性实施例中,scsi读取命令可以与引导逻辑单元对应。存储装置1200可以响应于接收的命令而将数据“data”和状态信息发送到主机1100。
[0099]
在操作s16中,主机1100可以通过设置存储装置1200的标志来完成初始化操作。例如,主机1100可以将查询请求传送到存储装置1200。查询请求可以是用于设置包括在存储装置1200的标志中的装置初始化字段(例如,“fdeviceini”)的请求。响应于查询请求,包括在存储装置1200的标志中的装置初始化字段可以被设置为特定值(例如,“01h”)。然后,存储装置1200可以传送查询响应。
[0100]
在操作s17中,主机1100可以轮询存储装置1200的标志的装置初始化字段(例如,“fdeviceinit”)。例如,主机1100可以将用于读取标志的装置初始化字段的查询请求传送到存储装置1200,并且存储装置1200可以将包括装置初始化字段的查询响应传送到主机1100。
[0101]
在发明构思的示例性实施例中,在操作s16之后,在存储装置1200的初始化操作完成的情况下,装置初始化字段可以被重置为不同的值(例如,“00h”)。换言之,主机1100可以重复地执行操作s17,以检查装置初始化字段是否被重置。在装置初始化字段被重置的情况下,主机1100和存储装置1200的初始化操作可以完成。
[0102]
图6是示出图1的存储系统的操作的流程图。将参照图6描述存储系统1000的写入操作。参照图1和图6,在操作s21中,主机1100可以将包括写入命令wr cmd的cmd upiu发送到存储装置1200。
[0103]
在操作s22中,主机1100和存储装置1200可以执行数据事务。例如,存储装置1200可以将传送就绪upiu(rtt upiu)传送到主机1100。rtt upiu可以包括关于存储装置1200能够接收数据的数据范围的信息。主机1100可以响应于rtt upiu而将包括写入数据的data out(数据输出)upiu传送到存储装置1200。随着重复执行上述操作,可以将写入数据从主机1100传送到存储装置1200。
[0104]
在所有的写入数据被接收之后,在操作s23中,存储装置1200可以将response(响应)upiu传送到主机1100。response upiu可以包括指示与在操作s21中接收的写入命令对应的操作完成的信息。
[0105]
在发明构思的示例性实施例中,存储装置1200可以对在操作s22中接收的写入数
据执行正常写入操作。例如,在操作s21中,存储装置1200可以确定turbo写入功能是否被启用。更具体地,存储装置1200可以基于标志的turbo写入启用字段(例如,“fturbowriteen”)的值确定turbo写入功能是否被启用。
[0106]
在标志(flag)的turbo写入启用字段的值为“0b”的情况下,turbo写入功能可以处于禁用状态。在turbo写入启用字段的值为“1b”的情况下,turbo写入功能可以处于启用状态。在发明构思的示例性实施例中,标志的turbo写入启用字段的值可以通过主机1100的设置标志的查询请求来设置。
[0107]
turbo写入启用字段的值可以不由主机1100设置。在这样的情况下,可以按照正常写入策略将在操作s22中接收的写入数据写入turbo写入缓冲器twb或用户存储部ust中。
[0108]
在操作s30中,主机1100可以将turbo写入启用字段的值设置为特定值(例如,“1b”)。例如,主机1100可以将用于将turbo写入启用字段的值设置为特定值(例如,“1b”)的查询请求传送到存储装置1200。turbo写入启用字段的值可以响应于来自主机1100的查询请求而被设置为特定值(例如,“1b”),并且存储装置1200可以将查询响应传送到主机1100。
[0109]
然后,主机1100可以执行操作s31至操作s33。除了根据turbo写入启用字段执行turbo写入之外,操作s31至操作s33可以与操作s21至操作s23相似,因此,附加描述将被省略以避免冗余。
[0110]
在发明构思的示例性实施例中,可以将在操作s32中接收的写入数据写入turbo写入缓冲器twb中。例如,在操作s30中,随着turbo写入启用字段的值被设置为特定值(例如,“1b”),turbo写入功能可以被启用。在这样的情况下,可以将从主机1100接收的写入数据写入turbo写入缓冲器twb中。例如,在操作s31中,可以根据命令upiu的特定因子值将从主机1100接收的数据存储在固定turbo写入缓冲器twb-p或非固定turbo写入缓冲器twb-np中。将参照图8更充分地描述如何配置被划分为固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np的turbo写入缓冲器。
[0111]
在发明构思的示例性实施例中,即使turbo写入功能被启用,在turbo写入缓冲器twb的空间不足的情况下,存储装置1200也可以将接收的写入数据写入用户存储部ust中。
[0112]
图7是示出图1的存储装置的操作的流程图。将参照图7描述存储装置1200的冲刷操作。参照图1、图2和图7,在操作s41中,存储装置1200可以确定当前状态是空闲状态、休眠状态还是运行时状态。当存储装置1200处于运行时状态时,可以不执行单独的冲刷操作。
[0113]
例如,当存储装置1200正在处理从主机1100接收的命令时,存储装置1200可以处于运行时状态。当从主机1100接收并且正在被处理或将被处理的命令(例如,未决命令)不存在时,存储装置1200可以处于空闲状态。当存储装置1200通过存储装置1200或主机1100的启动而进入被称为“休眠”的低功率模式时,存储装置1200可以处于休眠状态。
[0114]
当存储装置1200处于空闲状态时,在操作s42中,可以确定是否启用第一冲刷操作。主机1100可以通过设置标志的turbo写入缓冲器冲刷启用字段(例如,“fturbowritebufferflushen”)的值来允许或禁止存储装置1200的第一冲刷操作。存储装置1200可以通过检查标志的turbo写入缓冲器冲刷启用字段的值来确定第一冲刷操作是否被启用。
[0115]
在发明构思的示例性实施例中,当标志的turbo写入缓冲器冲刷启用字段的值为“0b”时,第一冲刷操作可以被禁用或禁止。当标志的turbo写入缓冲器冲刷启用字段的值为

1b”时,第一冲刷操作可以被启用。在第一冲刷操作被禁用的情况下,存储装置1200可以不执行单独的冲刷操作。
[0116]
在第一冲刷操作被启用的情况下,在操作s43中,存储装置1200可以在空闲状态期间执行第一冲刷操作。第一冲刷操作可以是存储装置1200在空闲状态下执行的冲刷操作。冲刷操作可以是根据内部策略或来自主机1100的明确命令将写入turbo写入缓冲器twb中的用户数据冲刷或迁移到用户存储部ust的操作。
[0117]
在发明构思的示例性实施例中,当将写入turbo写入缓冲器twb中的用户数据冲刷到用户存储部ust时,可以保持被冲刷的用户数据的逻辑地址,并且可以改变物理地址。在这样的情况下,存储装置1200可以更新被冲刷的用户数据的逻辑地址和物理地址的映射信息。
[0118]
当操作s41的确定结果指示存储装置1200处于休眠状态时,在操作s44中,存储装置1200可以确定第二冲刷操作是否被启用。如以上描述中一样,例如,主机1100可以通过设置标志的休眠期间的turbo写入缓冲器冲刷启用字段的值(例如,“fturbowritebufferflushduringhibernate”)来允许或禁止存储装置1200的第二冲刷操作。
[0119]
存储装置1200可通过检查标志的休眠期间的turbo写入缓冲器冲刷启用字段的值来确定第二冲刷操作是否被启用。在发明构思的示例性实施例中,当标志的休眠期间的turbo写入缓冲器冲刷启用字段的值为“0b”时,第二冲刷操作可以被禁用或被禁止。当标志的休眠期间的turbo写入缓冲器冲刷启用字段的值为“1b”时,第二冲刷操作可以被启用。在第二冲刷操作被禁用的情况下,存储装置1200可以不执行单独的冲刷操作。
[0120]
在第二冲刷操作被启用的情况下,在操作s45中,存储装置1200可以在休眠状态期间执行第二冲刷操作。第二冲刷操作可以指示存储装置1200在休眠状态下执行的冲刷操作。
[0121]
根据以上冲刷操作,可以将写入turbo写入缓冲器twb中的用户数据冲刷或迁移到用户存储部ust。这样,可以确保turbo写入缓冲器twb的可用缓冲器大小。
[0122]
在发明构思的示例性实施例中,可以在特定条件下暂停以上冲刷操作。例如,可以仅在存储装置1200的命令队列为空的状态下执行在空闲状态下执行的第一冲刷操作。在执行第一冲刷操作的同时,在从主机1100发出命令的情况下,存储装置1200可以暂停正在执行的第一冲刷操作,并且可以首先处理从主机1100发出的命令。在发明构思的示例性实施例中,在休眠模式被终止的情况下,可以停止在休眠状态下执行的第二冲刷操作。
[0123]
如上所述,可以根据特定条件暂停正在执行的冲刷操作。在这样的情况下,存储装置1200可以在属性的turbo写入缓冲器冲刷状态字段(例如,“bturbowritebufferflushstatus”)设置冲刷操作的暂停信息(或进度信息)或当前状态。
[0124]
在发明构思的示例性实施例中,存储装置1200可以将指示需要用于turbo写入缓冲器twb的冲刷操作的信息设置到属性的异常事件状态(例如,“dexceptioneventstatus”)的特定值(例如,位[5])。主机1100可以检查属性的异常事件状态的特定值(例如,位[5]]),可以确定在存储装置1200处需要冲刷操作,并且可以按照策略设置存储装置1200的标志的特定字段(例如,“fturbowritebufferflushen”和“fturbowritebufferflushduringhibernate”)。
[0125]
参照图7给出的描述为,存储装置1200基于冲刷启用字段的值(即,turbo写入缓冲
器冲刷启用字段的值或休眠期间的turbo写入缓冲器冲刷启用字段的值)执行冲刷操作,但发明构思不限于此。在示例性实施例中,存储装置1200根据内部策略执行冲刷操作或迁移操作,而不管冲刷启用字段的值(即,turbo写入缓冲器冲刷启用字段的值或休眠期间的turbo写入缓冲器冲刷启用字段的值)如何。在这样的情况下,存储装置1200可以依靠由存储装置1200(在没有外部干扰的情况下,或者根据其自身的确定)自主做出的确定结果来执行冲刷操作或迁移操作。
[0126]
图8是示出图1的存储装置1200的物理存储空间的框图。参照图1和图8,存储装置1200的物理存储空间ps可以包括turbo写入缓冲器twb和用户存储部ust。上面描述了存储装置1200的物理存储空间ps、turbo写入缓冲器twb和用户存储部ust,因此,可以省略附加描述以避免冗余。
[0127]
turbo写入缓冲器twb可以被划分为固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np。如以上描述中一样,在存储装置1200的turbo写入功能被启用的情况下,写入数据可以存储在固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np中的一个中。
[0128]
在一个实施例中,存储在固定turbo写入缓冲器twb-p中的数据不作为移动(例如,迁移或冲刷)到用户存储部ust的目标,存储在非固定turbo写入缓冲器twb-np中的数据可以作为移动到用户存储部ust的目标。也就是说,存储在固定turbo写入缓冲器twb-p中的数据的优先级可以比存储在非固定turbo写入缓冲器twb-np中的数据的优先级高。然而,发明构思不限于此,根据系统的资源或策略,存储在固定turbo写入缓冲器twb-p中的数据可以作为移动到非固定turbo写入缓冲器twb-np或用户存储部ust的目标。在示例性实施例中,周期性地执行迁移操作或冲刷操作,以将数据从turbo写入缓冲器twb移动到用户存储部ust。在这样的实施例中,在将固定turbo写入缓冲器twb-p的任何数据迁移或冲刷到用户存储部ust之前,首先将存在于非固定turbo写入缓冲器twb-np中的所有数据迁移或冲刷到用户存储部ust。在另一实施例中,在给定迁移期间,在迁移的第一时段期间将非固定turbo写入缓冲器twb-np中的第一数据迁移到用户存储部ust,并且在第一时段之后的第二时段期间将固定turbo写入缓冲器twb-p中的第二数据迁移到用户存储部ust。
[0129]
可以通过各种方案(例如,内部策略、根据主机的请求的内部策略的改变以及主机的明确请求)来确定固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np之中的将存储写入数据的一个。
[0130]
在发明构思的示例性实施例中,如上所述,可以在主机1100的控制下或根据存储装置1200的内部策略确定turbo写入缓冲器twb的大小。在这样的情况下,可以通过各种方案(例如,内部策略、根据主机的请求的内部策略的改变以及主机的明确请求)来确定或改变turbo写入缓冲器twb中的固定turbo写入缓冲器twb-p与非固定turbo写入缓冲器twb-np的比例。
[0131]
在发明构思的示例性实施例中,用户数据可以在固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储部ust之间冲刷、迁移或移动。例如,根据主机1100的明确请求、存储装置1200的内部策略或根据主机1100的请求的内部策略的改变,用户数据可以在固定turbo写入缓冲器twb-p与非固定turbo写入缓冲器twb-np之间迁移或移动。
[0132]
可选地,根据主机1100的明确请求、存储装置1200的内部策略或根据主机1100的
请求的内部策略的改变,用户数据可以在非固定turbo写入缓冲器twb-np与用户存储部ust之间迁移或移动。例如,用户数据可以从非固定turbo写入缓冲器twb-np被冲刷到用户存储部ust。可选地,根据主机1100的明确请求、存储装置1200的内部策略或根据主机1100的请求的内部策略的改变,用户数据可以在固定turbo写入缓冲器twb-p与用户存储部ust之间迁移或移动。
[0133]
在发明构思的示例性实施例中,如参照图7描述的一样,存储装置1200可以在空闲状态或休眠状态期间执行冲刷操作。在这样的情况下,存储装置1200可以对turbo写入缓冲器twb的非固定turbo写入缓冲器twb-np执行冲刷操作。换言之,存储装置1200可以将存储在turbo写入缓冲器twb的非固定turbo写入缓冲器twb-np中的用户数据冲刷到用户存储部ust。
[0134]
在这样的情况下,可以不将写入固定turbo写入缓冲器twb-p中的用户数据冲刷到用户存储部ust。换言之,即使存储装置1200执行冲刷操作,也可以保持写入固定turbo写入缓冲器twb-p中的用户数据。
[0135]
作为另一示例,根据存储装置1200的内部策略,将被存储在非固定turbo写入缓冲器twb-np中的数据会被写入固定turbo写入缓冲器twb-p中。这样的数据会从固定turbo写入缓冲器twb-p被冲刷到用户存储部ust。换言之,存储在固定turbo写入缓冲器twb-p中的数据可以不被来自主机1100的明确冲刷请求冲刷,而是可以根据存储装置1200的内部冲刷策略而被选择性地冲刷到用户存储部ust。
[0136]
在发明构思的示例性实施例中,在数据在固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储部ust之间冲刷、迁移或移动的情况下,控制器1210可以被配置为更新移动的数据的映射关系。例如,在与第一逻辑块地址对应的数据从固定turbo写入缓冲器twb-p冲刷或迁移到用户存储部ust的情况下,控制器1210可以释放第一逻辑块地址与固定turbo写入缓冲器twb-p的物理地址的映射关系,并且可以更新第一逻辑块地址与用户存储部ust的物理地址的映射关系。可以以与上述方案相似的方案来针对其他区域之间的移动做出映射关系的释放或更新,因此,将省略附加描述以避免冗余。
[0137]
以下,为了更清楚地解释发明构思,将在这样的假设下给出描述:将被存储在固定turbo写入缓冲器twb-p中的数据需要被存储在固定turbo写入缓冲器twb-p中。然而,发明构思不限于此。
[0138]
因此,在主机1100发出针对写入固定turbo写入缓冲器twb-p中的第一用户数据的读取命令的情况下,可以从固定turbo写入缓冲器twb-p读取第一用户数据。在这样的情况下,可以以高的速度读取第一用户数据。
[0139]
例如,如上所述,固定turbo写入缓冲器twb-p可以基于slc方案存储用户数据,用户存储部ust可以以tlc方案存储用户数据。读取基于slc方案存储的用户数据所花费的时间比读取基于tlc方案存储的用户数据所花费的时间短。
[0140]
换言之,因为将特定用户数据保留在固定turbo写入缓冲器twb-p中,所以可以提高读取特定用户数据的速度。存储装置1200的这种功能可以被称为“turbo读取”。
[0141]
在发明构思的示例性实施例中,存储装置1200的物理存储空间ps可以指示非易失性存储器装置1220的存储空间。换言之,非易失性存储器装置1220可以包括固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np或用户存储部ust。
[0142]
图9是示出用于参照图8描述的存储装置1200的物理存储空间ps的逻辑存储空间的示图。为了便于描述,将参照一个逻辑单元描述图9的实施例。然而,发明构思可以等同地应用于与turbo写入缓冲器twb对应的两个或更多个逻辑单元或者逻辑单元与共享turbo写入缓冲器(例如,twb0)之间的关系。
[0143]
参照图1和图9,存储装置1200的被主机1100识别的逻辑存储空间ls可以包括用户存储部ust和turbo写入缓冲器twb。turbo写入缓冲器twb可包括固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np。
[0144]
第一逻辑块地址范围(例如,lba0至lbaa、lbab 1至lbac和lbae 1至lban)可以与用户存储部ust的逻辑存储空间对应。在这样的情况下,存储在第一逻辑块地址范围(例如,lba0至lbaa、lbab 1至lbac和lbae 1至lban)内的用户数据可以存储在用户存储部ust的物理存储空间中。
[0145]
第二逻辑块地址范围(例如,lbaa 1至lbab和lbad 1至lbae)可以与非固定turbo写入缓冲器twb-np的逻辑存储空间对应。在这样的情况下,存储在第二逻辑块地址范围(例如,lbaa 1至lbab和lbad 1至lbae)内的用户数据可以存储在非固定turbo写入缓冲器twb-np的物理存储空间中。
[0146]
第三逻辑块地址范围(例如,lbac 1至lbad)可以与固定turbo写入缓冲器twb-p的逻辑存储空间对应。在这样的情况下,存储在第三逻辑块地址范围(例如,lbac 1至lbad)内的用户数据可以存储在固定turbo写入缓冲器twb-p的物理存储空间中。
[0147]
如上所述,用户存储部ust、非固定turbo写入缓冲器twb-np和固定turbo写入缓冲器twb-p可以以各种形式分布在被主机1100识别的逻辑存储空间ls上。然而,发明构思不限于此,第三逻辑块地址范围可以与非固定turbo写入缓冲器twb-np的逻辑存储空间对应,第二逻辑块地址范围可以与固定turbo写入缓冲器twb-p的逻辑存储空间对应。在发明构思的示例性实施例中,根据主机1100的明确请求或存储装置1200的内部策略,用户数据可以在用户存储部ust、非固定turbo写入缓冲器twb-np和固定turbo写入缓冲器twb-p之间移动/冲刷/迁移。
[0148]
例如,主机1100可以在turbo写入时指定固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np中的一个。作为另一示例,主机1100可以在turbo写入之前将固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np中的一个指定为turbo写入目标。作为又一示例中,主机1100可以在turbo写入时不指定固定turbo写入缓冲器twb-p或非固定turbo写入缓冲器twb-np。
[0149]
主机1100可以通过周期性地或在必要时(例如,使用查询upiu)向存储装置1200请求固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np的信息来检查被存储装置1200改变的数据的分布状态。
[0150]
图10a和图10b是示出参照图8描述的存储装置的物理存储空间中的操作的示图。为了简化说明和便于描述,假设固定turbo写入缓冲器twb-p包括第一存储器块blk1,非固定turbo写入缓冲器twb-np包括第二存储器块blk2,用户存储部ust可以包括第三存储器块blk3。然而,发明构思不限于此。
[0151]
参照图1、图8和图10a,存储装置1200可以从主机1100接收与第一逻辑块地址lba1对应的第一数据dt1。在发明构思的示例性实施例中,存储装置1200的turbo写入功能可以
处于启用状态。在这样的情况下,存储装置1200可以将接收的第一数据dt1写入turbo写入缓冲器twb(例如,非固定turbo写入缓冲器twb-np)中。
[0152]
换言之,存储装置1200可以对第一数据dt1执行turbo写入。在发明构思的示例性实施例中,在turbo写入功能被启用的情况下,可以通过各种方案来确定是否将数据存储在固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np中的任何一个中。
[0153]
在发明构思的示例性实施例中,如图10a中所示,固定turbo写入缓冲器twb-p和非固定turbo写入缓冲器twb-np可以充满用户数据dta、dtb、dt0和dt1。在这样的情况下,存储装置1200可以通过设置属性的异常事件状态字段(例如,“wexceptioneventstatus”)的特定位(例如,位[5])来通知主机1100需要冲刷操作。
[0154]
主机1100可以通过查询请求来检查属性的异常事件状态字段,并且可以检查在存储装置1200处需要冲刷操作。主机1100可以如参照图7描述的一样通过设置存储装置1200的标志的turbo写入缓冲器冲刷启用字段或休眠期间的turbo写入缓冲器冲刷启用字段来允许存储装置1200的冲刷操作。
[0155]
当在主机1100的控制下冲刷功能被允许(或被启用)时,存储装置1200可以执行冲刷操作。例如,在空闲状态或休眠状态下,存储装置1200可以将存储在非固定turbo写入缓冲器twb-np中的用户数据dt0和dt1冲刷到用户存储部ust的第三存储器块blk3。在发明构思的示例性实施例中,即使在主机1100的控制下冲刷操作被允许,存储在固定turbo写入缓冲器twb-p中的用户数据dta和dtb也可以不被冲刷到用户存储部ust。换言之,在存储在非固定turbo写入缓冲器twb-np中的用户数据dt0和dt1被冲刷的同时,存储在固定turbo写入缓冲器twb-p中的用户数据dta和dtb保留。
[0156]
然后,存储装置1200可以从主机1100接收针对第一逻辑地址lba1的读取命令。在这样的情况下,存储装置1200可以读取存储在用户存储部ust的第三存储器块blk3中的第一数据dt1,并且可以将读取的第一数据dt1输出到主机1100。
[0157]
在发明构思的示例性实施例中,因为将第一数据dt1写入非固定turbo写入缓冲器twb-np中(例如,被slc编程在非固定turbo写入缓冲器twb-np中),但由于冲刷操作而将第一数据dt1冲刷到用户存储部ust,所以可以通过正常读取操作(例如,tlc读取操作)读取第一数据dt1。换言之,第一数据dt1可以被slc编程,而被tlc读取。
[0158]
参照图1、图8和图10b,第0数据dt0和第一数据dt1可以存储在非固定turbo写入缓冲器twb-np的第二存储器块blk2中,第a数据dta可以存储在用户存储部ust的第三存储器块blk3中。
[0159]
然后,根据主机1100的明确请求或存储装置1200的内部策略,可以将用户存储空间ust的第a数据dta可以移动到固定turbo写入缓冲器twb-p的第一存储器块blk1。例如,存储装置1200可以从用户存储部ust的第三存储器块blk3读取第a数据dta,并且可以将读取的第a数据dta存储在固定turbo写入缓冲器twb-p的第一存储器块blk1中。
[0160]
然后,存储在用户存储部ust的第三存储器块blk3中的第a数据dta可以被无效、被删除或被取消映射。在发明构思的示例性实施例中,即使第a数据dta被无效、被删除或被取消映射,与第a数据dta对应的第a逻辑块地址lbaa也可以保持与固定turbo写入缓冲器twb-p的第一存储器块blk1的映射。
[0161]
然后,存储装置1200可以从主机1100接收针对与第a数据dta对应的第a逻辑块地
址lbaa的读取命令。在这样的情况下,存储装置1200可以读取存储在固定turbo写入缓冲器twb-p的第一存储器块blk1中的第a数据dta,并且可以将读取的第a数据dta传送到主机1100。
[0162]
在发明构思的示例性实施例中,读取存储在固定turbo写入缓冲器twb-p的第一存储器块blk1中的第a数据dta的操作可以比读取存储在用户存储部ust的第三存储器块blk3中的数据的操作快。换言之,根据发明构思的示例性实施例的存储装置1200可以通过将特定数据存储和保持在turbo写入缓冲器twb(或固定turbo写入缓冲器twb-p)中来支持关于特定数据的快速读取操作(例如,turbo读取操作)。
[0163]
在发明构思的示例性实施例中,存储装置1200可以响应于主机1100的请求而向主机1100通知turbo写入缓冲器twb的剩余容量(或空闲容量)。存储装置1200可以将关于turbo写入缓冲器twb的剩余空闲容量的信息写入属性的可用turbo写入缓冲器大小字段(例如,“davailableturbowritebuffersize”)。主机1100可以通过读取可用turbo写入缓冲器大小字段(例如,通过使用查询upiu)来获得turbo写入缓冲器twb的容量信息。
[0164]
例如,存储装置1200可以在可用turbo写入缓冲器大小字段单独地记录固定turbo写入缓冲器twb-p的剩余容量和非固定turbo写入缓冲器twb-np的剩余容量。作为另一示例,存储装置1200可以在可用turbo写入缓冲器大小字段记录turbo写入缓冲器twb的剩余容量的总和。存储装置1200是整体地还是单独地记录turbo写入缓冲器twb的剩余容量可以通过主机1100的标志设置来指定。
[0165]
例如,存储装置1200可以在可用turbo写入缓冲器大小字段记录比turbo写入缓冲器twb的实际空闲容量小的容量。在非易失性存储器装置1220(诸如,闪存)中,在连续的擦除操作之间的时间小于阈值时间的情况下,数据的可靠性会降低。
[0166]
因为turbo写入缓冲器twb的容量小于用户存储部ust的容量,并且以slc方案使用turbo写入缓冲器twb,所以turbo写入缓冲器twb可以比用户存储部ust更快地被数据填充。此外,在主机1100偏好高速的turbo写入的情况下,turbo写入缓冲器twb可以更快地充满数据。
[0167]
在将数据集中地写入turbo写入缓冲器twb中的情况下,在短的时间窗口期间执行下面一系列操作:对turbo写入缓冲器twb执行第一擦除操作,将数据写入turbo写入缓冲器twb中,冲刷turbo写入缓冲器twb的数据,对turbo写入缓冲器twb执行第二擦除操作,并且将数据写入turbo写入缓冲器twb中。
[0168]
在这样的情况下,当第一擦除操作与第二擦除操作之间的时间小于阈值时间时,在第二擦除操作之后写入turbo写入缓冲器twb中的数据的可靠性会降低。为了提高可靠性,即使turbo写入缓冲器twb的特定存储器块未存储有效数据并且在擦除操作之后可重使用,当在特定存储器块的先前擦除操作之后经过的时间小于阈值时间时,存储装置1200也可以在可用turbo写入缓冲器大小字段记录排除特定存储块的容量的容量。
[0169]
图11是示出根据示例性实施例的图1的存储系统的操作的流程图。在示例性实施例中,将参照图11描述如何在固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储部ust之间移动数据。根据发明构思的示例性实施例的存储系统1000通过使用读取命令(或各种其它命令)执行固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储部ust之间的数据移动。
[0170]
例如,存储系统1000可以在特定条件下要求关于特定数据的快速读取(即,turbo读取操作)。例如,在特定数据存在于用户存储部ust中的情况下,针对特定数据的读取操作会是缓慢的。在这样的情况下,存储系统1000可以将存储在用户存储部ust中的特定数据移动到固定turbo写入缓冲器twb-p或非固定turbo写入缓冲器twb-np。可选地,存储系统1000可以支持固定turbo写入缓冲器twb-p与非固定turbo写入缓冲器twb-np之间的数据移动、用户存储部ust与非固定turbo写入缓冲器twb-np之间的数据移动以及固定turbo写入缓冲器twb-p与用户存储部ust之间的数据移动。下面将参照一些附图更充分地描述数据移动方案。
[0171]
参照图1、图8和图11,在操作s101中,主机1100和存储装置1200执行写入操作。例如,如参考图6描述的一样,主机1100和存储装置1200可以交换用于写入操作的各种upiu(例如,cmd upiu、rtt upiu、data out upiu、response upiu)。在示例性实施例中,操作s101中将被写入存储装置1200中的数据“data”与第一逻辑块地址lba1对应。在示例性实施例中,操作s101中将被写入的数据“data”根据如上所述的各种方案而被写入固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储部ust中的一个中。
[0172]
在操作s111中,主机1100将与包括第一逻辑块地址lba1和移动属性信息ma的第一读取命令1st rd cmd对应的cmd upiu传送到存储装置1200。例如,主机1100可以改变与第一逻辑块地址lba1对应的数据的存储位置(例如,固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np或用户存储部ust)。为此,主机1100可以将与包括移动属性信息ma和第一逻辑块地址lba1的第一读取命令1st rd cmd对应的cmd upiu传送到存储装置1200。在示例性实施例中,移动属性信息ma包括关于特定数据将被移动到的目标区域(例如,固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储部ust中的一个)的信息。在示例性实施例中,移动属性信息ma存储在第一读取命令1st rd cmd的cmd upiu的特定字段中。
[0173]
在操作s112中,响应于接收的cmd upiu(即,第一读取命令1st rd cmd),存储装置1200读取与第一逻辑块地址lba1对应的数据,并且通过data in(数据输入)upiu将读取数据传送到主机1100。例如,假设与第一逻辑块地址lba1对应的数据存在于用户存储部ust中。在这样的情况下,存储装置1200从用户存储部ust读取与第一逻辑块地址lba1对应的数据,并且通过data in upiu将读取数据传送到主机1100。
[0174]
在操作s113中,存储装置1200将与第一逻辑块地址lba1对应的数据移动到与移动属性信息ma对应的区域。例如,假设与第一逻辑块地址lba1对应的数据存在于用户存储部ust中,并且移动属性信息ma包括识别固定turbo写入缓冲器twb-p的信息。在这样的情况下,存储装置1200将存储在用户存储部ust中的数据移动到固定turbo写入缓冲器twb-p。然而,发明构思不限于此。例如,根据与第一逻辑块地址lba1对应的数据所存在的区域和与移动属性信息ma对应的区域,可以在固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储部ust之间进行数据移动。例如,当移动属性信息ma包括识别非固定turbo写入缓冲器twb-np的信息时,存储装置1200可以将存储在用户存储部ust中的数据移动到非固定turbo写入缓冲器twb-np。
[0175]
在操作s114中,存储装置1200响应于在操作s111中接收的cmd upiu而将response upiu传送到主机1100。主机1100可以基于接收的response upiu识别到与在操作s111中传
送的cmd upiu对应的操作(例如,读取操作或数据移动操作)已经完成。例如,response upiu可以指示读取操作完成、读取操作和数据移动操作完成或者读取操作完成而移动操作失败。
[0176]
在示例性实施例中,省略通过data in upiu传送读取数据的操作s112。例如,在操作s111中的cmd upiu的特定字段(例如,数据传送长度字段)的值被设置为特定值(例如,“0”)的情况下,省略与操作s112对应的读取数据传送操作。由于这个原因,操作s112在图11中通过虚线来标记。例如,尽管存储装置1200从主机1100接收与逻辑块地址相关联的读取命令,但是当读取命令的字段指示不传送数据并且包括移动属性信息ma时,存储装置1200从与逻辑地址相关联的源区域读取数据而不将读取数据传送到主机1100,并且将读取数据移动到目的地区域(例如,移动到turbo写入缓冲器)。
[0177]
然后,在操作s121中,主机1100可以将与用于读取与第一逻辑块地址lba1对应的数据的第二读取命令2nd rd cmd对应的cmd upiu传送到存储装置1200。当数据在操作s112期间被传送到主机1100时,第二读取命令2nd rd cmd的发送可以被省略。此外,即使在操作s112期间数据被传送,如果主机1100再次需要该数据,也可以执行操作s121。
[0178]
在操作s122中,存储装置1200对与移动属性信息ma对应的区域执行读取操作。例如,假设与第一逻辑块地址lba1对应的数据在与操作s101对应的写入操作中被存储在用户存储部ust中,并且与第一逻辑块地址lba1对应的数据通过操作s111和操作s113移动到固定turbo写入缓冲器twb-p。在这样的情况下,在主机1100与存储装置1200之间的写入操作中,即使与第一逻辑块地址lba1对应的数据存储在用户存储部ust中,然后,与第一逻辑块地址lba1对应的数据也可以根据主机1100的请求(例如,包括移动属性信息ma的第一读取命令1st rd cmd)而被移动到固定turbo写入缓冲器twb-p。这样,然后,在与第一逻辑块地址lba1相关联的第二读取命令2nd rd cmd被接收的情况下,存储装置1200通过对与第一逻辑块地址lba1对应的数据被移动到的区域(即,与先前移动属性信息对应的区域)执行读取操作来读取与第一逻辑块地址lba1对应的数据。在这样的情况下,因为从固定turbo写入缓冲器twb-p读取与第一逻辑块地址lba1对应的数据,所以高速操作(即,turbo读取操作)是可能的。
[0179]
然后,在操作s123中,存储装置1200通过data in upiu将读取数据传送到主机1100。在所有读取数据通过操作s123被传送之后,存储装置1200将response upiu传送到主机1100。response upiu可以指示读取数据的传送已经完成。
[0180]
如上所述,根据发明构思的示例性实施例的存储系统1000的主机1100将移动属性信息ma包括在读取命令rd cmd或包含读取命令rd cmd的cmd upiu中。存储装置1200可以响应于读取命令rd cmd或包括读取命令rd cmd的cmd upiu在各个区域之间执行数据移动。也就是说,根据发明构思的示例性实施例的存储系统1000支持在各个区域之间的数据移动,而不使用附加命令。
[0181]
图12a和图12b是用于描述根据图11的流程图的操作的示图。图12a是用于基于物理存储空间描述数据移动的示图,图12b是用于基于逻辑存储空间描述数据移动的示图。图12a和图12b中示出的各种附图标记与上述相同的附图标记相似,因此,将省略附加描述以避免冗余。
[0182]
参照图1、图8、图12a和图12b,根据来自主机1100的请求,存储装置1200可以使用
第一数据dt1执行写入操作。第一数据dt1可以与第一逻辑块地址lba1对应。为了便于描述,假设存储装置1200将第一数据dt1写入用户存储部ust中。然而,发明构思不限于此。例如,在存储装置1200执行turbo写入操作的情况下,第一数据dt1可以被写入固定turbo写入缓冲器twb-p或非固定turbo写入缓冲器twb-np中。
[0183]
然后,存储装置1200从主机1100接收包括第一逻辑块地址lba1和移动属性信息ma的第一读取命令1st rd cmd。在示例性实施例中,以cmd upiu的形式接收第一读取命令1st rd cmd。存储装置1200响应于包括移动属性信息ma的第一读取命令1st rd cmd而执行数据读取操作和数据移动操作。例如,存储装置1200可以从用户存储部ust读取与包括在第一读取命令1st rd cmd中的第一逻辑块地址lba1对应的第一数据dt1,并且将读取的第一数据dt1传送到主机1100。在示例性实施例中,将第一数据dt1传送到主机1100的操作根据第一读取命令1st rd cmd的特定字段值被省略。
[0184]
然后,存储装置1200将读取的第一数据dt1从用户存储部ust移动到与移动属性信息ma对应的固定turbo写入缓冲器twb-p。在这样的情况下,第一数据dt1的物理存储区域或逻辑存储区域可以被改变(即,可以从用户存储部ust被改变为固定turbo写入缓冲器twb-p),但与第一数据dt1对应的第一逻辑块地址lba1被保持而没有修改。例如,如图12b中所示,在数据移动之前,与第一逻辑块地址lba1对应的第一数据dt1被管理为存储在用户存储部ust中;在数据移动之后,与第一逻辑块地址lba1对应的第一数据dt1被管理为存储在固定turbo写入缓冲器twb-p中。在这样的情况下,第一数据dt1的逻辑块地址与第一逻辑块地址lba1相同。例如,映射表中的第一逻辑块地址lba1到用户存储部ust中的第一数据dt1的第一物理地址的映射可以被改变为第一逻辑块地址lba1到固定turbo写入缓冲器twb-p中的第一数据的第二物理地址的映射。在移动之后,存储在用户存储部ust中的第一数据dt1可以被无效或被标记为无效。例如,移动可以在固定turbo写入缓冲器twb-p的映射表中创建将第一逻辑块地址lba1映射到第二物理地址的新映射,并且使用户存储部ust的映射表中的将第一逻辑块地址映射到第一物理地址的先前映射无效。
[0185]
然后,存储装置1200从主机1100接收包括第一逻辑块地址lba1的第二读取命令2nd rd cmd。可以以cmd upiu的形式接收第二读取命令2nd rd cmd。因为与第一逻辑块地址lba1对应的第一数据dt1被移动到固定turbo写入缓冲器twb-p,所以存储装置1200从固定turbo写入缓冲器twb-p读取与第一逻辑块地址lba1对应的第一数据dt1,并且将读取的第一数据dt1传送到主机1100。
[0186]
如上所述,根据发明构思的示例性实施例的存储系统1000可以根据各种策略或各种方案将数据写入各种区域(例如,固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储部ust中的一个)中。
[0187]
图13是示出根据发明构思的示例性实施例的图1的存储装置的操作的流程图。参照图1、图8和图13,在操作s211中,存储装置1200接收包括第一逻辑块地址lba1和移动属性信息ma的第一读取命令1st rd cmd。在操作s212中,响应于第一读取命令1st rd cmd,存储装置1200将与第一逻辑块地址lba1对应的数据从第一区域移动到与移动属性信息ma对应的第二区域。例如,在与第一逻辑块地址lba1对应的数据存在于用户存储部ust中,并且移动属性信息ma指示固定turbo写入缓冲器twb-p的情况下,存储装置1200从用户存储部ust读取与第一逻辑块地址lba1对应的数据,并且将读取数据移动到固定turbo写入缓冲器
twb-p。
[0188]
然后,在操作s221中,存储装置1200接收包括第一逻辑块地址lba1的第二读取命令2nd rd cmd。在操作s222中,存储装置1200确定与操作s212对应的数据移动操作是否已经完成。
[0189]
当确定数据移动操作尚未完成时,在操作s223中,存储装置1200对第一区域执行读取操作。当确定数据移动操作已经完成时,在操作s224中,存储装置1200对与移动属性信息ma对应的第二区域执行读取操作。
[0190]
例如,如上所述,假设与第一逻辑块地址lba1对应的数据存在于用户存储部ust中,并且移动属性信息ma指示固定turbo写入缓冲器twb-p。在这样的假设下,当数据移动尚未完成时,存储装置1200可以通过对用户存储部ust执行读取操作来读取与第一逻辑块地址lba1对应的数据。当数据移动已经完成时,存储装置1200可以通过对固定turbo写入缓冲器twb-p执行读取操作来读取与第一逻辑块地址lba1对应的数据。在示例性实施例中,尽管在附图中未示出,但是在数据移动操作中,与第一逻辑块地址lba1对应的数据被临时地存储在单独的缓冲存储器中。在这样的情况下,可以将与第一逻辑块地址lba1对应的数据从单独的缓冲存储器提供给主机1100,而无需单独的读取操作。
[0191]
在操作s225中,存储装置1200将读取数据传送到主机1100。例如,存储装置1200可以通过data in upiu将读取数据传送到主机1100;在读取数据被全部传送之后,存储装置1200可以将resonse upiu发送到主机1100。
[0192]
以上主要描述了将与第一逻辑块地址lba1对应的数据从用户存储部ust移动到固定turbo写入缓冲器twb-p的实施例,但发明构思不限于此。例如,存储系统1000可以支持各种区域之间的数据移动。在这样的情况下,关于移动数据将被移动到的目标区域的信息可以通过移动属性信息ma来确定,并且移动属性信息ma可以是形成读取命令rd cmd的cmd upiu的特定字段。在示例性实施例中,通过将形成读取命令rd cmd的cmd upiu的另一特定字段的值设置为特定值,可以执行各个区域之间的数据移动而不将数据输出到主机1100。
[0193]
图14a至图14d是示出在图1的主机与存储装置之间交换的数据包的各种格式的示图。如上所述,主机1100和存储装置1200可以基于由jedec标准定义的通用闪存(ufs)接口彼此通信。ufs接口定义各种数据包。
[0194]
在示例性实施例中,下面讨论的数据结构可以与在jedec标准的ufs接口中定义的数据结构相似。为了使发明构思的实施例清楚,将省略关于对描述发明构思的实施例而言非必需的组件或字段的附加描述。然而,即使未描述该字段,本领域普通技术人员也可以基于具体实施方式中公开的发明构思的实施例实现发明构思的技术思想。
[0195]
例如,由ufs接口定义的cmd upiu可以具有图14a所示的包格式。例如,cmd upiu可以包括以下字段:传输类型、标志、逻辑单元号(lun)、任务标签、发起装置标识符/命令集类型(iid/cst)、错误历史源(ehs)长度、数据段长度、预期数据传输长度、命令描述符块(cdb)、头、保留等。
[0196]
根据发明构思的示例性实施例的存储系统1000的主机1100可以将图14a中示出的cmd upiu提供给存储装置1200。在这样的情况下,主机1100可以在cmd upiu的各种字段中的特定字段中设置移动属性信息ma。例如,主机1100可以在cmd upiu的“标志”字段中设置移动属性信息ma。也就是说,与包括在cmd upiu的命令描述符块cdb中的逻辑块地址对应的
数据可以在cmd upiu的“标志”字段的值为第一值时被移动到用户存储部ust,可以在cmd upiu的“标志”字段的值为第二值时被移动到固定turbo写入缓冲器twb-p,并且可以在cmd upiu的“标志”字段的值为第三值时被移动到非固定turbo写入缓冲器twb-np。换言之,主机1100可以在cmd upiu的“标志”字段中设置关于特定数据将被移动到的目标区域的移动属性信息ma。例如,移动属性信息ma可以位于cmd upiu的“标志”字段中。
[0197]
在示例性实施例中,出于在主机1100与存储装置1200之间没有数据传输的情况下在存储装置1200中移动数据的目的,可以将cmd upiu的特定字段设置为特定值。例如,cmd upiu的“预期数据传输长度”字段是指示主机1100与存储装置1200之间交换的数据的长度的字段。主机1100可以将cmd upiu的“预期数据传输长度”字段的值设置为特定值(例如,“0”)。在这样的情况下,存储装置1200仅基于设置在“标志”字段处的移动属性信息ma执行数据移动,而不向主机1100进行数据传送。例如,即使命令描述符块cdb指示将执行读取命令以读取数据,当“预期数据传输长度”为0时也不向主机1100传送读取数据。
[0198]
根据发明构思的示例性实施例的主机1100在包括在cmd upiu中的命令描述符块cdb的特定字段中设置移动属性信息ma,或者在该特定字段中设置用于防止数据传送的值。例如,图14b至图14d示出了能够包括在cmd upiu中的各种命令描述符块cdb1至cdb3。
[0199]
图14b的第一命令描述符块cdb1是与读取命令read(10)command对应的格式。第一命令描述符块cdb1可以包括以下字段:操作代码、rdprotect(读取保护)、禁用页输出(dpo)、强制单元访问(fua)、强制单元访问(fua_nv)、作废、逻辑块地址、组号、传输长度、控制、保留。作为读取命令的第一命令描述符块cdb1的“操作代码”字段的值可以为“28h”。
[0200]
在示例性实施例中,主机1100将移动属性信息ma设置在与读取命令对应的第一命令描述符块cdb1的“组号”字段中。在示例性实施例中,“组号”字段可以包括关于用于读取数据的上下文标识符context id的信息。数据将被移动到的区域(即,固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-p和用户存储部ust中的一个)可以基于设置在“组号”字段中的上下文标识符context id来确定。例如,与第一上下文标识符对应的数据可以被移动到固定turbo写入缓冲器twb-p,与第二上下文标识符对应的数据可以被移动到非固定turbo写入缓冲器twb-np,并且与第三上下文标识符对应的数据可以被移动到用户存储部ust。上下文标识符可以根据数据的属性来确定,或者可以由主机1100的各种策略确定。
[0201]
存储装置1200可以基于第一命令描述符块cdb1的“组号”字段的值确定数据将被移动到的区域,并且可以执行用于将与“逻辑块地址”字段的值对应的数据移动到确定的区域的移动操作。也就是说,关于与待移动的数据对应的逻辑块地址的信息可以被设置在“逻辑块地址”字段中。
[0202]
在示例性实施例中,与待移动的数据对应的逻辑块地址的范围可以基于第一命令描述符块cdb1的“逻辑块地址”字段和“传输长度”字段的值来确定。
[0203]
图14c的第二命令描述符块cdb2是与同步高速缓存命令synchronize cache(10)command对应的格式。第二命令描述符块cdb2可以包括以下字段:操作代码、同步(sync_nv)、立即(immed)、作废、逻辑块地址、组号、逻辑块数量、控制和保留。作为同步高速缓存命令的第二命令描述符块cdb2的“操作代码”字段的值可以为“35h”。
[0204]
如以上描述中一样,主机1100可以将移动属性信息ma设置在第二命令描述符块cdb2的“组号”字段中。也就是说,关于与待移动的数据对应的逻辑块地址的信息可以被设
字段、“保留”字段和多个取消映射块描述符unmap-bd。
[0218]
如图16c中所示,多个取消映射块描述符中的每个可以包括“取消映射逻辑块地址”字段、“逻辑块地址数量”字段和“保留”字段。与待移动的数据对应的逻辑块地址(例如,第一逻辑块地址lba1)可以被设置在“取消映射逻辑块地址”字段中。
[0219]
也就是说,如图16b和图16c中所示,在操作s330中从主机1100提供的data out upiu可以包括包含关于第一逻辑块地址lba1的信息的取消映射参数列表unmap-pl。
[0220]
在操作s340中,响应于接收的cmd upiu和接收的data out upiu,存储装置1200将与第一逻辑块地址lba1对应的数据移动到与移动属性信息ma对应的区域,并且对第一逻辑块地址lba1执行取消映射操作。在这样的情况下,与第一逻辑块地址lba1相关联的取消映射操作可以表示在数据被移动之后移除物理地址与第一逻辑块地址lba1之间的映射的操作。
[0221]
例如,假设在与第一逻辑块地址lba1对应的数据存在于用户存储部ust中的状态下接收与固定turbo写入缓冲器twb-p对应的移动属性信息ma。在这样的情况下,存储装置1200将与第一逻辑块地址lba1对应的数据从用户存储部ust移动到固定turbo写入缓冲器twb-p。然后,存储装置1200释放第一逻辑块地址lba1与用户存储部ust的物理地址之间的映射关系(即,对第一逻辑块地址lba1与用户存储部ust的物理地址之间的映射关系进行取消映射)。在这样的情况下,第一逻辑块地址lba1保持与固定turbo写入缓冲器twb-p的物理地址的映射关系。例如,映射信息的释放可以通过删除与用户存储部ust相关联的映射表的条目来执行,所述映射表的条目将逻辑块地址映射到用户存储部ust的物理地址。在示例性实施例中,当参数列表长度被设置为特定值(例如,0)时,跳过或省略释放或取消映射。
[0222]
然后,在操作s350中,存储装置1200将response upiu传送到主机1100。在示例实施例中,响应于response upiu,主机1100可以识别到数据移动已经完成。例如,response upiu可以指示取消映射和/或数据移动完成。
[0223]
根据发明构思的以上实施例,当基于ufs接口进行通信的主机1100和存储装置1200将移动属性信息ma设置在cmd upiu或命令描述符块cdb的无需附加命令的单独定义的特定字段中(例如,在cmd upiu的“标志”字段或命令描述符块cdb的“组号”字段中)时,存储装置1200可以在各种区域之间执行数据移动。当主机1100将cmd upiu或命令描述符块cdb的无需附加命令的单独定义的特定字段(例如,cmd upiu的“预期数据传输长度”字段)的值设置为特定值(例如,“0”)时,可以仅执行数据移动而没有来自存储装置1200的数据传送(例如,data in upiu的传送)。因此,可以支持存储装置中的各种区域之间的数据移动,而不增加ufs接口的复杂性。
[0224]
在以上实施例中,以存储装置1200的物理存储空间ps被划分为固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储部ust给出了描述,但发明构思不限于此。例如,存储装置1200的物理存储空间ps可以包括用户存储部ust和多个turbo写入缓冲器twb。多个turbo写入缓冲器twb可以根据可靠性、操作速度、寿命等具有不同的特性。多个turbo写入缓冲器twb中的每个可以包括固定turbo写入缓冲器和非固定turbo写入缓冲器。在这样的情况下,根据发明构思的实施例的存储系统1000的主机1100和存储装置1200可以通过使用与以上方案相似的方案来支持或执行包括在存储装置1200的物理存储空间ps中的各种区域之间的数据移动。
[0225]
图17是示出图1的存储系统1000的分层结构的示图。参照图17,存储系统1000包括主机1100和存储装置1200。主机1100包括应用ap-h、文件系统fs-h、装置管理器dm-h、ufs应用层uap-h、ufs传输协议层utp-h和ufs互连层uic-h。
[0226]
应用ap-h可以包括在主机1100处驱动的各种应用程序、进程等。作为上层的应用ap-h可以处理来自存储系统1000的用户的请求。应用ap-h可以处理针对读取操作和写入操作的正常命令。应用ap-h可以使用查询请求来提供装置级的控制。
[0227]
文件系统fs-h可以被配置为组织和管理由应用ap-h生成的各种数据(文件)。文件系统fs-h可以生成与对存储装置1200的访问请求(例如,写入请求、读取请求等)对应的逻辑地址。在一个实施例中,文件系统fs-h可以包括文件分配表(fat)、fat32、nt文件系统(ntfs)、分层文件系统(hfs)、日志文件系统2(jsf2)、xfs、盘上结构-5(ods-5)、udf、zfs、unix文件系统(ufs)、ext2、ext3、ext4、reiserfs、reiser4、iso 9660、gnome vfs,bfs、winfs等。
[0228]
ufs应用层uap-h被配置为支持主机1100和存储装置1200之间的各种命令。例如,ufs应用层uap-h可以包括输入/输出(i/o)流管理器iosm-h和ufs命令集ucs-h。i/o流管理器iosm-h被配置为管理来自应用ap-h或文件系统fs-h的请求。
[0229]
在示例实施例中,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读取功能。
[0230]
在示例实施例中,由主机1100或主机1100的用户指定的特定应用或特定进程可以使用turbo写入或turbo读取。i/o流管理器iosm-h可以响应于由关于存储装置1200的特定应用或特定进程做出的写入请求或读取请求来确定需要执行turbo写入或turbo读取。
[0231]
此外,由文件系统fs-h管理的特定数据可以使用turbo写入或turbo读取。i/o流管理器iosm-h可以响应于针对存储装置1200的关于特定数据(例如,元数据)的写入请求或读取请求来确定需要执行turbo写入或turbo读取。
[0232]
此外,i/o流管理器iosm-h可以指导写入存储装置1200中的数据的移动。i/o流管理器iosm-h可以通过将数据移动到固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np或用户存储部ust来调节写入存储装置1200中的数据的读取速度。
[0233]
在示例性实施例中,上述移动属性信息ma由i/o流管理器iosm-h确定。由i/o流管理器iosm-h确定的移动属性信息ma可以被提供给ufs命令集ucs-h或ufs传输协议层utp-h。
[0234]
ufs命令集ucs-h可以支持在主机1100与存储装置1200之间被支持的各种指令集。在示例性实施例中,ufs命令集ucs-h包括ufs本地命令集和ufs scsi命令集。ufs命令集ucs-h可以根据来自应用ap-h或文件系统fs-h的请求配置待传送到存储装置1200的命令。在示例性实施例中,如以上描述中一样,ufs命令集ucs-h基于由i/o流管理器iosm-h确定的移动属性信息ma设置命令描述符块cdb的特定字段(例如,“组号”字段)。在示例性实施例中,ufs命令集ucs-h通过命令描述符块cdb的特定字段(例如,“逻辑块地址”字段和“传输长度”字段)来设置待移动的数据的逻辑块地址范围。
[0235]
尽管在附图中未示出,但是ufs应用层uap-h还可以包括任务管理器,该任务管理
器处理用于命令队列的控制的命令。
[0236]
装置管理器dm-h可以管理装置级的操作和装置级的配置。在示例实施例中,装置管理器dm-h可以管理用于设置或检查存储装置1200的各种信息的查询请求。
[0237]
ufs传输协议层utp-h可以为上层提供服务。ufs传输协议层utp-h可以生成从ufs应用层uap-h提供的命令或信息,或者可以生成以upiu(ufs协议信息单元)包的形式从装置管理器dm-h提供的查询请求。在示例性实施例中,如以上描述中一样,ufs传输协议层utp-h基于从i/o流管理器iosm-h提供的移动属性信息ma设置cmd upiu的特定字段(例如,cmd upiu的“标志”字段)。在示例性实施例中,如以上描述中一样,出于防止来自存储装置1200的数据传送的目的,ufs传输协议层utp-h将特定值设置在cmd upiu的特定字段(例如,“预期数据传输长度”字段)中。
[0238]
在示例实施例中,ufs传输协议层utp-h和装置管理器dm-h可以通过udm服务接入点(udm-sap)彼此通信。ufs传输协议层utp-h和ufs应用层uap-h可以通过utp_cmd_sap或utp_tm_sap彼此通信。
[0239]
ufs互连层uic-h可以管理与存储装置1200的连接。在示例实施例中,ufs互连层uic-h可以包括与存储装置1200的ufs互连层uic-d物理连接的硬件配置(诸如,mipi unipro和mipi m-phy)。在示例实施例中,ufs互连层uic-h和ufs传输协议层utp-h可以通过uic-sap来通信,ufs互连层uic-h和装置管理器dm-h可以通过uio-sap来通信。
[0240]
虽然在附图中未示出,但是主机1100还可以包括装置驱动器。装置驱动器可以控制包括在主机1100中的装置和/或层。装置驱动器可以将由文件系统fs-h生成的针对存储装置1200的请求(例如,写入请求、读取请求等)转换为存储装置1200能够识别的命令。例如,文件系统fs-h和装置驱动器可以被包括在操作系统(os)中,并且应用ap-h可以被安装在os中。装置驱动器可以在管理硬件资源的同时控制与存储装置1200的通信。
[0241]
存储装置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相似并且允许对应的层彼此逻辑通信的配置,并且i/o流管理器iosm-d和ufs命令集ucs-d的配置与i/o流管理器iosm-h和ufs命令集ucs-h的配置相似,因此,将省略附加描述以避免冗余。
[0242]
存储装置1200的存储区域属性管理器mapm-d可以指定并管理将存储从主机1100接收的写入数据的区域。例如,如上所述,根据主机1100的明确请求或内部策略,从主机1100接收的写入数据可以被写入到固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储部ust中的至少一个的空间中。存储区域属性管理器mapm-d可以基于上述各种方案选择将存储从主机1100接收的写入数据的空间,并且可以将写入数据存储在选择的空间中。
[0243]
如上所述,根据主机1100的明确请求或内部策略,存储装置1200的存储区域管理器mam-d可以控制固定turbo写入缓冲器twb-p、非固定turbo写入缓冲器twb-np和用户存储部ust之间的数据移动/冲刷/迁移。例如,如以上描述中一样,存储装置1200可以响应于来自主机1100的设置有移动属性信息ma的cmd upiu而在各种区域之间执行数据移动。在示例实施例中,在特定值被设置在cmd upiu或包括在cmd upiu中的命令描述符块cdb的特定字
段处的情况下,存储装置1200可以省略将数据(例如,data in upiu)传送到主机1100的操作。
[0244]
存储装置1200的以上分层结构和功能可以在图1的控制器1210处被执行。主机1100和存储装置1200中的每个的以上分层结构和功能是示例性的,并且发明构思不限于此。
[0245]
图18是详细地示出根据发明构思的示例性实施例的存储系统1000的框图。参照图17和图18,存储系统1000包括主机1100和存储装置1200。主机1100和存储装置1200可以如参照图1至图17描述的一样操作。
[0246]
主机1100包括应用处理器1110、随机存取存储器(ram)1120、调制解调器1130、装置驱动器1140、扬声器1150、显示器1160、触摸面板1170、麦克风1180和图像传感器1190。
[0247]
应用处理器1110可以运行应用ap-h和文件系统fs-h。应用处理器1110可以使用ram 1120作为系统存储器。应用处理器1110可以通过调制解调器1130与外部装置进行有线通信或无线通信。例如,调制解调器1130可以嵌入在应用处理器1110中。
[0248]
应用处理器1110可以通过装置驱动器1140与外围装置通信。例如,应用处理器1110可以通过装置驱动器1140与扬声器1150、显示器1160、触摸面板1170、麦克风1180、图像传感器1190和存储装置1200通信。
[0249]
装置驱动器1140可以包括装置管理器dm-h、ufs应用层uap-h、ufs传输协议层utp-h和ufs互连层uic-h。例如,装置驱动器1140可以嵌入在应用处理器1110中。
[0250]
扬声器1150和显示器1160可以是向用户传送信息的用户输出接口。触摸面板1170、麦克风1180和图像传感器1190可以是从用户接收信息的用户输入接口。
[0251]
在示例实施例中,存储装置1200可以用作主机1100的高容量存储介质。存储装置1200可以是嵌入型的ufs装置或存储卡型的ufs装置。存储卡型的ufs装置可以插入到包括在主机1100中的ufs插槽中,或者可以从包括在主机1100中的ufs插槽中移除。
[0252]
存储系统1000的组件可以通过提供通信路径的系统总线来互相连接。例如,系统总线可以支持诸如以下各种接口协议中的一种或多种:外围组件互连快速(pcie)协议、非易失性存储器快速(nvme)协议、通用闪存(ufs)协议、串行高级技术附件(sata)协议、小型计算机系统接口(scsi)协议、串行连接scsi(sas)协议、z代(gen-z)协议、用于加速器的高速缓存一致性互连(ccix)协议和开放一致性加速器处理器接口(opencapi)协议。
[0253]
图19示出发明构思的实施例应用于存储系统1000的概念图。参照图18和图19,存储系统1000可以通过显示器1160提供设置屏幕。设置屏幕中的一个可以向用户提供加速模式的信息。
[0254]
存储系统1000可以通过显示器1160显示加速模式可适用的第一应用app1至第n应用appn的列表。此外,存储系统1000可以通过显示器1160来显示允许用户调节第一应用app1至第n应用appn的加速模式的开关(例如,图形切换开关)。
[0255]
在操作s1100中,用户可以触摸第三应用app3的加速模式的启用位置。例如,用户可以选择显示的图形元素,该显示的图形元素通知系统期望对第三应用app3进行加速。存储系统1000可以通过感测用户经由触摸面板1170的触摸来推断期望对第三应用app3进行加速。在操作s1200中,第三应用app3的信息或第三应用app3的进程的信息可以被传送到i/o流管理器iosm-h。
[0256]
当接收到第三应用程序app3的信息或第三应用程序app3的进程的信息时,在操作s1300中,i/o流管理器iosm-h可以保留第三应用程序app3或由此选择的进程的后续读取的移动操作。例如,当需要与第三应用app3相关联的读取操作时,i/o流管理器iosm-h可以通过查询请求upiu针对与第三应用app3相关联的数据设置移动属性(即,移动属性信息)ma,并且可以在cmd upiu中包括作为移动信息mv的移动标志。
[0257]
例如,当需要与第三应用app3相关联的读取操作时,i/o流管理器iosm-h可以在cmd upiu中包括移动标志和移动属性ma作为移动信息mv。例如,i/o流管理器iosm-h可以将固定turbo写入缓冲器twb-p或非固定turbo写入缓冲器twb-np指定为移动属性ma的目的地信息dst。
[0258]
根据发明构思的至少一个示例性实施例,可以支持存储装置中的各种区域之间的数据移动,而无需在基于ufs接口进行通信的主机与存储装置之间定义附加命令。因此,可以在主机与存储设备之间实现简单的接口。
[0259]
此外,根据发明构思的至少一个示例性实施例,存储装置可以包括支持高速操作的固定turbo写入缓冲器。因为能够保证以高的速度从固定turbo写入缓冲器读取数据的操作,所以可以改善存储装置的性能。因此,可以提供具有降低的成本和改善的性能的存储装置。
[0260]
尽管已经参照发明构思的示例性实施例描述了发明构思,但对本领域普通技术人员而言将明显的是,在不脱离发明构思的精神和范围的情况下,可以对其做出各种改变和修改。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜