存储设备和存储设备的操作方法与流程

文档序号:32840864发布日期:2023-01-06 20:46阅读:68来源:国知局
存储设备和存储设备的操作方法与流程
存储设备和存储设备的操作方法
1.相关申请的交叉引用
2.本技术基于并要求于2021年6月21日在韩国知识产权局提交的第10-2021-0080371号韩国专利申请的优先权,该韩国专利申请的公开内容通过引用全部合并于此。
技术领域
3.本发明构思涉及存储设备,更具体地,涉及包括存储器件和存储器控制器的存储设备和/或存储设备的操作方法。


背景技术:

4.使用非易失性存储器件(诸如固态驱动器(ssd)、快速非易失性存储器(nvme)、嵌入式多媒体卡(emmc)和通用闪存(ufs))的存储设备已经被广泛使用。
5.随着数据被连续写入闪存,有效数据可以分散在整个闪存上,并且为了确保空闲存储块(即,可以写入数据的数据存储空间),可以对存储块执行垃圾收集操作(通过垃圾收集操作将至少一个存储块的有效页移动到另一存储块)以及擦除操作。存储器件的块可以包括各种特征的数据,如果不经受频繁更新的冷数据(cold data)以及经受频繁更新的热数据(hot data)存储在同一存储块中,那么随着热数据可以被频繁更新以执行垃圾收集,冷数据也可以被移动到其它存储块且被复制若干次。因此,垃圾收集的效率可能下降,并且随着垃圾收集被执行得越频繁,存储设备的寿命会减少得越多,因此需要根据数据的特征来准确地对数据进行分类。


技术实现要素:

6.本发明构思提供了一种被配置为对数据进行分类以高效地执行垃圾收集的存储设备以及存储设备的操作方法。
7.根据本发明构思的一方面,提供一种存储设备,所述存储设备包括:存储器件,所述存储器件包括多个存储块,所述多个存储块包括多个页;数据控制器,所述数据控制器被配置为从主机接收要写入到所述多个页的数据以及与所述数据对应的流标识符,并且基于所述数据的年龄来确定是否要改变所述流标识符,所述数据的年龄表示以页或块为基础(针对所述多个存储块中的一个存储块或所述多个页中的一个页)的所述数据的更新频率;以及垃圾收集控制器,所述垃圾收集控制器被配置为基于所述流标识符对所述数据进行分类并且基于分类结果控制所述存储器件的垃圾收集操作。
8.根据本发明构思的另一方面,提供一种存储设备,所述存储设备包括:存储器件,所述存储器件包括多个存储块,所述多个存储块包括多个页;数据管理器,所述数据管理器被配置为从主机接收要写入到所述多个页的数据以及与所述数据对应的n个流标识符,并且将所述流标识符分组成m个新流标识符,其中,m小于n;数据控制器,所述数据控制器被配置为基于所述数据的年龄来改变所述新流标识符,所述数据的年龄表示以页或块为基础的所述数据的更新频率;以及垃圾收集控制器,所述垃圾收集控制器被配置为基于所改变的
新流标识符对所述数据进行分类,并且基于分类结果控制所述存储器件的垃圾收集操作。
9.根据本发明构思的另一方面,提供了一种包括存储器件的存储设备的操作方法,所述操作方法包括:从主机接收数据以及与所述数据对应的流标识符;基于表示所述数据的更新频率的所述数据的年龄来确定是否要改变所述流标识符;基于所述流标识符来确定是否要对所述数据进行分类,以及对所述数据进行分类;以及基于分类结果执行所述存储器件的垃圾收集操作。
附图说明
10.根据以下结合附图的详细描述,将更清楚地理解本发明构思的实施例,在附图中:
11.图1是根据示例实施例的存储设备的框图;
12.图2是根据示例实施例的存储器控制器的框图;
13.图3是用于说明根据示例实施例的存储设备的配置的框图;
14.图4是示出根据示例实施例的存储在存储器件中的数据的结构的概念图;
15.图5和图6是用于说明根据示例实施例的改变流标识符的操作的图;
16.图7是用于说明根据示例实施例的以块为基础的流标识符的图;
17.图8是用于说明根据示例实施例的分配流标识符的操作的图;
18.图9是用于说明根据示例实施例的改变新流标识符的操作的图;
19.图10是用于说明根据示例实施例的对数据进行分类的操作的图;
20.图11是示出根据示例实施例的在存储器件中执行的垃圾收集的概念图;
21.图12是用于说明根据示例实施例的存储设备的操作方法的流程图;
22.图13是示出根据示例实施例的使用存储设备的实验结果的曲线图;以及
23.图14是根据示例实施例的存储器系统的框图。
具体实施方式
24.在下文中,将参照附图详细描述本发明构思的实施例。
25.图1是根据示例实施例的存储设备的框图。
26.参照图1,存储设备100可以包括存储器控制器110和存储器件120。存储设备100可以存储从主机接收的数据。根据示例实施例,存储设备100可以对要存储的数据的特征进行分类,并基于分类的数据重新布置存储的数据。
27.存储设备100可以基于数据的更新频率对来自主机的分类的数据进行重新分类。存储设备100可以将重新分类的数据存储在相同或相邻的数据存储区域中。存储区域可以指存储设备100内部的逻辑存储空间或物理存储空间(诸如扇区、页、块等)。
28.在示例实施例中,存储设备100可以是设置在存储系统中的嵌入式存储器。在示例实施例中,存储设备100可以是嵌入式多媒体卡(emmc)或嵌入式通用闪存(ufs)存储器件。在示例实施例中,存储设备100可以是可从存储系统移除的外部存储器。例如,存储设备100可以是ufs存储卡、紧凑型闪存(cf)存储卡、安全数字(sd)存储卡、微型sd存储卡、迷你sd存储卡、极限数字(xd)存储卡或记忆棒,但是本发明构思不限于此。
29.存储设备100可以包括存储器控制器110和存储器件120。存储器件120可以包括多个存储块blk 121。
30.存储器控制器110可以总体控制存储设备100。存储器控制器110可以响应于来自主机的读取请求或写入请求,来控制存储器件120以读取存储在存储器件120中的数据或将数据编程到存储器件120。在示例实施例中,存储器控制器110可以通过将地址、命令和控制信号提供给存储器件120来控制对存储器件120的编程操作、读取操作和擦除操作。另外,可以在存储器控制器110与存储器件120之间发送和接收用于根据来自主机的请求将数据编程到存储器件120的数据和读取数据。
31.存储器控制器110可以从主机接收数据以及与数据对应的流标识符。流标识符stream id可以由主机根据预期寿命、使用频率等来分配。例如,存储器控制器110可以从主机接收包括数据和流标识符的写入请求。
32.存储器控制器110可以基于表示数据的更新频率的数据的年龄来确定是否要改变流标识符。数据的年龄越大,数据被更新的频率越低,这样的数据可以被称为冷数据。数据的年龄越小,数据被更新的频率越高,这样的数据可以被称为热数据。例如,存储器控制器110可以将分别与具有相似年龄的每条数据对应的流标识符改变为相同的流标识符。即使已经从主机接收到与数据对应的流标识符,存储器控制器110也可以基于数据的年龄改变流标识符。由于存储器控制器110可以基于数据的年龄来改变从主机分配的流标识符,因此由主机分类的数据可以被存储器控制器110更准确地分类。
33.存储器控制器110可以基于关于是否要改变流标识符的确定,来对数据进行分类。存储器控制器110可以收集具有相同的流标识符的数据。例如,存储器控制器110可以将具有与冷数据对应的流标识符的多条数据存储在同一块中。存储器控制器110可以基于分类结果控制存储器件120的垃圾收集操作。例如,通过几乎不对存储有具有与冷数据对应的流标识符的数据的块执行垃圾收集,存储在该块中的数据可以不被频繁地复制到另一块,并且可以降低垃圾收集成本。下面参照图3详细描述存储器控制器110。
34.存储器件120可以包括非易失性存储器件。在示例实施例中,存储器件120可以是采用各种类型的存储器的器件,诸如,nand型闪存、磁性随机存取存储器(mram)、自旋转移矩mram、导电桥接ram(cbram)、铁电ram(feram)、相位ram(pram)、电阻ram、纳米管ram、聚合物ram(poram)、纳米浮栅存储器(nfgm)、全息存储器、分子电子器件存储器、绝缘体电阻变化存储器等。
35.在示例实施例中,存储器件120可以包括闪存,闪存可以包括二维(2d)nand存储器阵列或3d nand(或垂直nand:vnand)存储器阵列。3d存储器阵列可以以单片方式形成在存储单元阵列处,该存储单元阵列具有布置在硅衬底上的有源区域,或者形成在衬底上或衬底中并且与存储单元的操作相关的至少一个物理级电路。术语“单片”可以指构成阵列的每个层级的层直接堆叠在阵列的每个较低层级上。在一个实施例中,3d存储器阵列可以包括布置在垂直方向上的vnand串,从而允许至少一个存储单元布置在另一个存储单元上。至少一个存储单元可以包括电荷捕获层。
36.存储器件120可以包括多个存储块blk 121。多个存储块blk 121中的每一者可以包括至少一个页,每个页可以包括连接到多条字线的多个存储单元。数据可以写入到页。在示例实施例中,存储器件120可以包括包含多个存储块blk 121的多个平面,具体地,分别包含多个平面的多个存储器裸片(die)。
37.存储器件120可以包括存储1位数据的单阶单元(single level cell)slc或存储
多位数据(例如,2位或更多位的数据)的多阶单元(multi-level cell)mlc。例如,存储器件120可以包括可以存储3位数据的三阶单元(triple level cell)tlc、能够存储4位数据的四阶单元(quadruple level cell)qlc、或能够存储5位或更多位的数据的存储单元。
38.在示例实施例中,主机可以将命令提供给存储设备100并且与存储设备100进行数据的发送和接收。在示例实施例中,主机可以将写入命令和写入数据提供给存储设备100。在示例实施例中,主机可以将读取命令发送到存储设备100并且从存储设备100接收读取数据。
39.主机可以包括至少一个处理器核,或者可以被实现为片上系统(soc)。例如,主机可以包括通用处理器和专用处理器。主机可以是处理器本身,或者可以对应于包括处理器的电子设备或系统。在示例实施例中,主机可以对应于中央处理单元(cpu)、处理器、微处理器或应用处理器(ap)等。
40.主机和存储器件120可以彼此发送和接收数据(即,根据指定标准彼此交互)。例如,各种交互方法(诸如,高级技术附件(ata)、串行ata(sata)、外部sata(e-sata)、小型计算机系统接口(scsi)、串行附接scsi(sas)、并行高级技术附件(pata)、外围组件互连(pci)、快速pci(pci-e)、ieee 1394、通用串行总线(usb)、安全数字(sc)卡、多媒体卡(mmc)、emmc、紧凑型闪存(cf)卡接口、增强型小磁盘接口(esdi)、集成驱动电子设备(ide)、移动工业处理器接口(mipi)等)可以应用于存储器件120与主机之间的通信接口,但本发明构思不限于此。
41.存储器控制器110和存储器件120可以通过一个或更多个通道发送和接收命令、地址和数据。可以由从主机发送的逻辑地址来确定将要通过哪一通道从主机发送命令以及在存储器件120的哪一存储区域中执行从主机发送的命令。在下文中,逻辑块地址lba可以被称为逻辑地址。
42.图2是根据示例实施例的存储器控制器的框图。
43.存储器控制器200可以包括主机接口(i/f)210、处理器220、ram 230、只读存储器(rom)240和nand接口250。由于图2的存储器控制器200对应于图1的存储器控制器110,因此省略了对其的冗余描述。
44.存储器控制器200可以接收从主机提供的命令,存储器控制器200可以响应于命令来访问存储器件(例如,图1的存储器件120)。存储器控制器200可以响应于从主机输入的命令来控制存储器件的读取操作、编程操作和擦除操作。命令可以包括读取请求、写入请求等。根据主机的写入请求,存储器控制器200可以控制存储器件立即编程数据,或者擦除先前编程的数据然后编程数据。
45.主机接口210、处理器220、ram 230、rom 240和nand接口250可以经由总线电连接。总线可以指用于在存储器控制器200的组件之间传输信息的传输线。存储器控制器200还可以包括除上述组件之外的其它组件。
46.主机接口210可以具有主机与存储器控制器200之间的数据交换协议。因此,各种设备可以作为主机连接到主机接口210。在示例实施例中,主机接口210可以依据主机的总线格式向存储器控制器200提供接口。主机的总线格式可以包括usb、scsi、pci-e、ata、pata、sata、sas等。在示例实施例中,主机接口210可以采用应用于通过pci-e方法交换数据的主机设备的nvme协议。
47.处理器220可以控制存储设备(例如,图1的存储设备100)的整体操作。具体地,处理器220可以对从主机接收的命令进行解码,并根据解码的结果控制存储设备执行操作。
48.处理器220可以响应于读取请求在读取操作期间将读取命令和地址提供给存储器件,并且响应于写入请求在写入操作期间将写入命令、地址和写入数据提供给存储器件。
49.处理器220可以使用存储在存储器控制器200中的元数据来执行将从主机接收的逻辑地址转换成物理页地址的处理。这里,元数据可以被理解为由存储设备生成以管理存储器件的管理信息。在下文中,物理页地址或物理块地址可以被称为物理地址。
50.处理器220可以控制闪存转换层(ftl)231,使得与来自主机的读取/写入请求一起发送的逻辑地址可以被转换为用于读取/写入操作的物理地址。将逻辑地址转换为物理地址的处理可以由ftl 231执行。处理器220可以在ftl 231中执行垃圾收集、地址映射、耗损均衡等,以通过执行加载到rom 240的固件来管理存储器件。下面参照图3对ftl 231进行详细描述。
51.ram 230可以临时存储从主机发送的数据、由处理器220产生的数据和/或从存储器件读取的数据。用于存储设备的操作的软件或固件可以从rom 240加载到ram 230。另外,ram 230可以存储从存储器件读取的元数据。ram 230可以被实现为动态ram(dram)、静态ram(sram)等。
52.ram 230可以包括ftl 231。ftl 231可以为能够在文件系统与存储器件之间映射每一地址的组件。在示例实施例中,ftl 231可以将主机的逻辑块地址(lba)转换成存储器件的物理块地址(pba)。
53.rom 240可以是用于存储由处理器220执行的程序的只读存储器。rom 240可以存储用于实现存储器控制器200的操作方法的程序或记录有这样程序的固件。
54.nand接口250可以控制用于驱动存储器件的信号,并且根据处理器220的控制来访问存储器件。nand接口250可以通过至少一个通道选择性地执行软件和硬件交织操作。
55.图3是根据示例实施例的存储设备的框图。
56.参照图3,ftl 311可以包括数据管理器312、数据控制器313和垃圾收集控制器(gc控制器)314。由于图3的存储设备300和存储器件320分别对应于图1的存储设备100和存储器件120,图3的存储器控制器310和ftl311分别对应于图2的存储器控制器200和ftl 231,因此省略了对其的冗余描述。在下文中,存储器件320可以被描述为闪存器件(即,nvm)。
57.ftl 311可以在主机的文件系统与存储器件320之间提供用于隐藏存储器件320的擦除操作的接口。可以由ftl 311补偿存储器件320的弱点(其是写入前擦除以及擦除单位(erase unit)和写入单位(write unit)之间的差异)和闪存的弱点(其是对最大擦除次数的限制)等。ftl 311的以下操作可以通过由处理器运行ftl 311的至少一部分来执行。
58.在存储器件320的写入操作期间将由主机的文件系统产生的lba分配到存储器件320的pba的映射可以在ftl 311中执行。通过ftl 311,可以对存储器件320的每块的写入次数进行计数,并且可以执行耗损均衡来分布写入使得写入程度可以在多个块之间相等。此外,通过ftl 311,可以执行用于重新布置数据的垃圾收集,以解决由于对存储区域执行的重复数据写入/擦除而导致的无效区域invalid(即,垃圾)增加的问题。根据示例实施例,可以基于写入数据data、存储器件320的时间戳信息和与写入数据data对应的流标识符hid来对写入数据data进行分类,并且基于分类结果,可以对存储器件320执行垃圾收集。因此,无
效区域invalid可以被转换为有效区域valid。
59.数据管理器312可以响应于来自主机的写入请求接收写入数据data和写入数据data的lba,并且基于存储在ram(例如,图2的ram 230)或rom(例如,图2的rom 240)中的映射表将针对lba的pba提供给存储器件320。
60.根据示例实施例,数据管理器312可以接收从主机连续接收的数据以及与数据对应的流标识符hid。例如,数据管理器312可以接收写入数据data。
61.在一个实施例中,数据管理器312可以将n个流标识符hid分组为m个新流标识符nid。m可以是小于n的正整数。流标识符hid可以指主机根据写入数据data的特征分配的流标识符,新流标识符nid可以指通过对由主机分配的流标识符hid进行分组而重新分配的流标识符。从主机分配的流标识符hid的数目可以不同于存储设备300可以管理的流标识符hid的数目。数据管理器312可以将n个流标识符hid分组为可以由存储设备300管理的m个流标识符hid,m可以指存储设备300可以管理的流的数目。数据管理器312可以基于写入数据data和关于流标识符hid的信息,将流标识符hid分组为新流标识符nid。因此,存储设备300可以有效地管理流。
62.例如,数据管理器312可以基于写入数据data的文件扩展名将流标识符hid分组为新流标识符nid。可以基于新流标识符nid将数据布置在存储块blk中。相同的新流标识符nid的数据可以存储在相同的存储块blk中。例如,如果从主机接收的流标识符hid是0至5,则对于0、1或2的流标识符hid,新流标识符nid可以被分组为“a”,对于3、4或5的流标识符hid,新流标识符nid可以被分组为“b”。新流标识符nid对应于“a”的数据可以存储在第一块中,新流标识符nid对应于“b”的数据可以存储在第二块中。
63.数据管理器312可以将第一信息info1提供给数据控制器313。第一信息info1可以包括写入数据data、流标识符hid和新流标识符nid中的至少一个,但是本发明构思不必限于此。
64.数据控制器313可以接收写入数据data和流标识符hid,并且基于数据的年龄来确定是否要改变流标识符hid。数据控制器313可以从数据管理器312接收第一信息info1,并且从存储器件320接收第二信息info2。数据的年龄可以表示以页或块为基础的写入数据data的更新频率,并且可以基于第二信息info2来生成。
65.第二信息info2可以指存储器件320的时间戳信息。第二信息info2可以包括第一时间戳信息和第二时间戳信息,第一时间戳信息是写入数据data被存储在存储器件320中的时间点处的存储器件320的时间戳信息,第二时间戳信息是数据控制器313访问存储在存储器件320中的写入数据data的当前写入时间点处的存储器件320的时间戳信息。时间戳信息可以包括关于存储器件320的主机写入量、块blk的擦除计数和时间信息中的至少一个。
66.可以通过使用写入数据data被存储在存储器件320中的时间点处的第一时间戳信息以及当前写入时间点处的第二时间戳信息,来生成写入数据data的年龄。可以基于第一时间戳信息与第二时间戳信息之间的差来生成写入数据data的年龄。例如,写入数据data的年龄可以由数据控制器313基于写入数据data被存储在存储器件320中的时间点与当前写入时间点之间的时间差来生成,但是本发明构思不限于此,写入数据data的年龄可以通过各种方法来生成。写入数据data的年龄越大,写入数据data被更新的频率可以越低,写入数据data的年龄越小,写入数据data被更新的频率可以越高。
67.如果(或基于)写入数据data的年龄大于或等于阈值,则数据控制器313可以改变流标识符hid。在一个实施例中,如果(或基于)写入数据data的年龄大于或等于阈值,则数据控制器313可以将流标识符hid改变为与冷数据对应的第一流标识符。如果写入数据data的年龄大于或等于阈值,则写入数据data可以是不经受频繁更新的冷数据。在这种情况下,数据控制器313可以通过将写入数据data的年龄与阈值进行比较,将从主机分配的流标识符hid改变为与冷数据对应的流标识符。
68.如果写入数据data的年龄小于阈值,则数据控制器313可以维持流标识符hid。然而,本发明构思不必限于此,如果写入数据data的年龄小于阈值,则数据控制器313可以将流标识符hid改变为与热数据对应的流标识符。
69.数据控制器313可以根据写入数据data的年龄范围来改变流标识符hid。例如,写入数据data的年龄可以被划分为三个子范围,由于流标识符hid分别对应于写入数据data的每个子范围,因此可以存在三种类型的流标识符hid。流标识符hid可以被改变为与包括数据data的年龄的范围对应的流标识符。然而,流标识符hid的类型的数目不必限于此,根据写入数据data的年龄范围,可以存在五种或六种类型的对应流标识符。
70.在一个实施例中,数据控制器313可以基于当前写入时间点处的主机写入量与写入数据data被存储在存储器件320中的时间点处的主机写入量之间的差,来确定是否要改变流标识符hid。主机写入量可以指响应于来自主机的写入请求而存储在存储器件320中的写入数据data的量。可以基于写入数据data被存储在存储器件320中的时间点处的主机写入量与当前写入时间点处的主机写入量之间的差,来生成写入数据data的年龄。例如,当在写入数据data被存储在存储器件320中的时间点处以20gb的量生成主机写入量,并且在当前写入时间点处以100gb的量生成主机写入量时,写入数据data的年龄可以对应于80gb。假设阈值是70gb,当写入数据data的年龄是80gb(其大于阈值)时,数据控制器313可以将流标识符hid改变为第一流标识符。
71.在一个实施例中,数据控制器313可以基于当前写入时间点处的擦除计数与写入数据data被存储在存储器件320中的时间点处的擦除计数之间的差,来确定是否要改变流标识符hid。擦除计数可以指存储有写入数据data的块blk的擦除次数。例如,如果当前写入时间点处的擦除计数是1000,并且写入数据data被存储在存储器件320中的时间点处的擦除计数是30(其中,阈值是800),则由于擦除计数之间的差是970(其大于阈值),因此数据控制器313可以将流标识符hid改变为与冷数据对应的第一流标识符。
72.在一个实施例中,数据控制器313可以基于当前写入时间点与写入数据data被存储在存储器件320中的时间点之间的时间差,来确定是否要改变流标识符hid。例如,如果当前写入时间点与写入数据data被存储在存储器件320中的时间点之间的时间差是两年,并且阈值是一年,则由于时间差大于阈值,因此数据控制器313可以将流标识符hid改变为第一流标识符。
73.如果流标识符hid被数据管理器312分组成新流标识符nid,则数据控制器313可以基于写入数据data的年龄来确定是否要改变新流标识符nid。数据控制器313可以以与如上所述确定是否要改变流标识符hid相同的方式来确定是否要改变新流标识符nid。
74.如果写入数据data的年龄大于或等于阈值,则数据控制器313可以将新流标识符nid改变为与冷数据对应的第一新流标识符。
75.数据控制器313可以基于通过使用第一时间戳信息和第二时间戳信息生成的写入数据data的年龄来确定是否要改变新流标识符nid。
76.gc控制器314可以基于流标识符hid对写入数据data进行分类,并且基于分类结果来控制存储器件320的垃圾收集操作。垃圾收集控制器314可以通过从数据控制器313接收第一信息info1对写入数据data进行分类。包括在第一信息info1中的流标识符hid可以由数据控制器313改变。
77.垃圾收集控制器314可以收集具有相同的流标识符hid的数据。垃圾收集控制器314可以通过将具有相同的流标识符hid的写入数据data存储在相同存储块blk中,来分类具有相同的流标识符hid的数据。垃圾收集控制器314可以收集与第一流标识符对应的写入数据data。垃圾收集控制器314可以将与第一流标识符对应的写入数据data分类为第一数据组。例如,垃圾收集控制器314可以通过将与第一流标识符对应的写入数据data存储在没有写入数据的空闲块中,将它们分类为第一数据组。
78.垃圾收集控制器314可以基于流标识符hid来确定是否要对写入数据data进行分类。在一个实施例中,存储块blk中的每一者可以包括至少一个页,如果存储有与第一流标识符对应的数据的页的数目大于或等于阈值,则垃圾收集控制器314可以将存储有与第一流标识符对应的数据的页重新布置在存储块blk中的至少一者中。
79.垃圾收集控制器314可以对存储有与第一流标识符对应的写入数据data的页的数目进行计数,如果计数的页的数目大于或等于阈值,则垃圾收集控制器314可以将存储有与第一流标识符对应的数据的页重新布置在存储块blk中的至少一者中。存储有与第一流标识符对应的数据的页可以被理解为写入了冷数据的页(即,冷页)。例如,垃圾收集控制器314可以对存储有与第一流标识符对应的数据的页的数目进行计数,如果计数的页的数目大于或等于阈值,则垃圾收集控制器314可以将存储有与第一流标识符对应的数据的页收集在至少一个空闲块中。
80.垃圾收集控制器314可以通过从数据控制器313接收包括新流标识符nid的第一信息info1,对写入数据data进行分类。垃圾收集控制器314可以收集具有相同的新流标识符nid的数据。垃圾收集控制器314可以通过将具有相同的新流标识符nid的写入数据data存储在相同的存储块blk中,来分类具有相同的新流标识符nid的数据。垃圾收集控制器314可以基于新流标识符nid来确定是否要对写入数据data进行分类。
81.垃圾收集控制器314可以基于写入数据data的分类结果,将垃圾收集信号gc提供给存储器件320。响应于垃圾收集信号gc,可以在存储器件320中执行垃圾收集,并且可以重新布置存储在存储块blk中的数据。存储器件320可以将存储有不与第一流标识符对应的写入数据data的存储块blk的有效数据复制到另一存储块blk中的空闲页,并且擦除前述存储有不与第一流标识符对应的写入数据data的存储块blk。以这种方式,可以重新布置存储块blk。
82.可以通过选择具有最小数目的有效页的块并将有效页布置为一个块,来执行垃圾收集。根据比较示例,可以执行基于最小数目的有效页的垃圾收集,而不管数据的特征如何。因此,如果不频繁改变的冷数据广泛分布在存储器件的存储区域中,则会重复执行垃圾收集。考虑到将电子存储在存储单元中的晶体管中以存储数据的物理特性,存储器件对写入次数具有限制,因此,如果重复执行垃圾收集,那么会减少存储器件的寿命。
83.根据本发明构思的技术思想,可以基于数据的年龄来改变流标识符hid,可以基于改变的流标识符hid来对数据进行分类,可以基于分类结果来执行垃圾收集。因此,根据本发明构思的技术思想的存储设备300可以通过基于根据数据的年龄的数据分类结果执行垃圾收集,来减少垃圾收集的执行次数,因此,写入放大因子(waf)也可以减小。
84.因此,可以改善包括存储器件320的存储设备300的寿命或性能。此外,可以预期存储设备300的写入操作性能的改善和寿命延长。在下文中,waf可以指基于由主机请求的数据与实际写入到存储器件320的数据的比而计算的值。
85.图4是示出根据示例实施例的存储在存储器件中的数据的结构的概念图。
86.存储器件(例如,图3的存储器件320)可以包括多个存储块blk。多个存储块blk中的每一者可以包括至少一个页,每个页可以包括连接到多条字线的多个存储单元。存储单元可以包括至少一个晶体管,晶体管可以通过存储电子来存储数据。
87.例如,存储器件可以包括m个存储块(blk 0至blk m-1,m是自然数)。在存储设备(例如,图1的存储设备100)中,可以以页(或扇区)为基础执行读取操作和写入操作,但是可以以块为基础执行擦除操作。
88.一个存储块blk可以包括n个页(page 0至page n-1)。输入到存储设备的写入数据data可以存储在存在于存储器件的至少一个存储块blk之一中的有效页或空闲页中。
89.一个页可以被划分为存储数据的数据区域以及不存储数据的备用区域。在示例实施例中,可以将2kb(千字节)分配给数据区域,可以将64b(字节)分配给备用区域,但是本发明构思不限于此。
90.图5和图6是用于说明根据示例实施例的改变流标识符的操作的图。
91.为了便于说明,假设存储器件的存储区域的第一存储块至第三存储块blk1、blk2和blk3中的每一者具有第一页page 0至第四页page 3。
92.图5和图6示出了基于数据的年龄来改变由主机分配的流标识符的方法。
93.参照图5,如果数据的年龄大于或等于阈值,则数据控制器(例如,图3的数据控制器313)可以将流标识符改变为与冷数据对应的第一流标识符stream id a。
94.在下文中,假设数据data 1、数据data 2、数据data 3、数据data 4和数据data 7的年龄大于或等于阈值。数据data 1可以存储在存储块blk1的页page 0中,数据data 2可以存储在页page 2中,数据data 3可以存储在页page 3中,页page 1可以是空闲区域。由于数据data 1、数据data 2和数据data 3中的每一者的年龄大于或等于阈值,因此流标识符stream id 1可以改变为第一流标识符stream id a。
95.数据data 4可以存储在存储块blk 2的页page 2中,数据data 5可以存储在页page 3中,页page 0可以是空闲区域,页page 1可以是由于重复的数据读取/写入而导致的无效区域。由于数据data 4的年龄大于或等于阈值,因此流标识符stream id 3可以改变为第一流标识符stream id a。
96.类似地,数据data 6可以存储在存储块blk 3的页page 1中,数据data 7可以存储在页page 2中,数据data 8可以存储在页page 3中,页page 0可以是空闲区域。由于数据data 7的年龄大于或等于阈值,因此流标识符stream id 5可以改变为第一流标识符stream id a。
97.参照图6,如果数据的年龄大于或等于第一阈值,则数据控制器(例如,图3的数据
控制器313)可以将流标识符改变为第一流标识符stream id a,如果数据的年龄小于第一阈值并且大于或等于第二阈值,则数据控制器将流标识符改变为第二流标识符stream id b,如果数据的年龄小于第二阈值,则数据控制器将流标识符改变为第三流标识符stream id c。可以根据数据的年龄范围来改变流标识符。可以通过使用两个阈值将数据的年龄范围划分为三个子范围;然而,数据的年龄范围不必限于此。
98.第一流标识符stream id a、第二流标识符stream id b和第三流标识符stream id c可以按该叙述的顺序对应于具有更高的更新频率的数据。与第一流标识符stream id a对应的数据可以比与第二流标识符stream id b对应的数据旧,与第二流标识符stream id b对应的数据可以比与第三流标识符stream id c对应的数据旧。例如,第一流标识符stream id a可以对应于不频繁改变的冷数据,第二流标识符stream id b可以对应于比冷数据更频繁改变的温数据(warm data),第三流标识符stream id c可以对应于比温数据更频繁改变的热数据。
99.参照图6,数据data 1可以存储在存储块blk 1的页page 0中,数据data 2可以存储在页page 2中,数据data 3可以存储在页page 3中,页page 1可以是空闲区域。如果(或基于)数据data 1、数据data 2和数据data 3中的每一者的年龄大于或等于第一阈值,则流标识符stream id 1可以改变为第一流标识符stream id a。
100.数据data 4可以存储在存储块blk 2的页page 2中,数据data 5可以存储在页page 3中,页page 0是空闲区域,页page 1可以是无效区域。如果数据data 4的年龄大于或等于第一阈值,则流标识符stream id 3可以改变为第一流标识符stream id a,如果数据data 5的年龄小于第一阈值并且大于或等于第二阈值,则流标识符stream id 3可以改变为第二流标识符stream id b。
101.类似地,数据data 6可以存储在存储块blk 3的页page1中,数据data 7可以存储在页page 2中,数据data 8可以存储在页page 3中,页page 0可以是空闲区域。如果数据data 6的年龄小于第二阈值,则流标识符stream id 5可以改变为第三流标识符stream id c,如果数据data 7和数据data 8的年龄小于第一阈值并且大于或等于第二阈值,则流标识符stream id 5可以改变为第二流标识符stream id b。
102.图7是用于说明根据示例实施例的以块为基础的流标识符的图。
103.参照图7,存储在存储块blk 1中的所有数据可以具有流标识符stream id 0,存储在存储块blk 2中的所有数据可以具有流标识符stream id 1。具有由主机分配的相同的流标识符的数据可以被收集在相同的存储块中。数据控制器可以以存储块为基础来改变流标识符。如果存储在存储块中的数据的年龄全都大于或等于阈值,则可以一次全部改变与存储在存储块中的数据对应的流标识符。
104.在存储块blk1中,如果数据data 1、数据data 2和数据data 3的年龄全都大于或等于阈值,则流标识符stream id 0可以一次全部改变为第一流标识符stream id a。
105.在存储块blk2中,如果数据data 4、数据data 5和数据data 6的年龄中的至少一个小于阈值,则流标识符stream id 1可以不改变。
106.图8是用于说明根据示例实施例的分配流标识符的操作的图。
107.参照图8,存储设备820可以包括数据管理器821和存储器件822,由于图8的存储设备820对应于图3的存储设备300,因此省略了对其的冗余描述。
108.主机810可以将流标识符分配给数据。数据管理器821可以将n个流标识符分组成m个新流标识符。可以基于新流标识符将数据布置在存储块中。图8示出了将九个流标识符分组成三个新流标识符的操作。
109.数据管理器821可以将第一新流标识符new stream id a分配给与数据data 1对应的流标识符stream id 0、与数据data 2对应的流标识符stream id 1以及与数据data 5对应的流标识符stream id 1。例如,数据data 1、数据data 2和数据data 5可以作为元数据存储在存储块blk1中。
110.数据管理器821可以将第二新流标识符new stream id b分配给与数据data 4对应的流标识符stream id 2、与数据data 8对应的流标识符stream id 2、与数据data 3对应的流标识符stream id 3以及与数据data 9对应的流标识符stream id 3。例如,数据data 4、数据data 8、数据data 3和数据data 9可以作为临时数据存储在存储块blk 2中。
111.数据管理器可以将第三新流标识符new stream id c分配给与数据data 6对应的流标识符stream id 4以及与数据data 7对应的流标识符stream id 5。例如,数据data 6和数据data 7可以作为用户数据存储在存储块blk 7中。
112.图9是用于说明根据示例实施例的改变新流标识符的操作的图。图9在图8之后,省略了对其的冗余描述。
113.图9示出了通过基于数据的年龄改变对由主机分配的流标识符stream id进行分组而获得的新流标识符new stream id的方法。
114.参照图9,存储在存储块blk 1中的数据data 1、数据data 2和数据data 5可以对应于第一新流标识符new stream id a,存储在存储块blk 2中的数据data 4、数据data 8、数据data 3和数据data 9可以对应于第二新流标识符new stream id b。存储在存储块blk 3中的数据data 6和数据data 7可以对应于第三新流标识符new stream id c。
115.如果数据的年龄大于或等于阈值,则数据控制器(例如,图3的数据控制器313)可以改变新流标识符。
116.如果数据data 4存储在存储块blk 2的页page 0中,数据data 8存储在页page 1中,数据data 3存储在页page 2中,数据data 9存储在页page 3中,并且数据data 4和数据data 8的年龄大于或等于阈值,则与数据data 4和数据data 8对应的第二新流标识符new stream id b可以改变为第一新流标识符new stream id a。第一新流标识符new stream id a可以指与冷数据对应的新流标识符。
117.如果数据data 6存储在存储块blk 3的页page 0中,数据data 7存储在页page 1中,页page 2是无效区域,页page 3是空闲区域,并且数据data 6和数据data 7的年龄大于或等于阈值,则第三新流标识符new stream id c可以改变为第一新流标识符new stream id a。
118.图10是用于说明根据示例实施例的对数据进行分类的操作的图。
119.参照图10,可以收集具有相同的流标识符的数据。垃圾收集控制器(例如,图3的垃圾收集控制器314)可以通过将具有相同的流标识符的数据存储在相同的存储块中,来分类具有相同的流标识符的数据。然后,基于分类的数据,可以执行垃圾收集。
120.在一个实施例中,垃圾收集控制器可以识别存储有与第一流标识符对应的数据的页的数目,并对存储有与第一流标识符对应的数据的页的数目进行计数,如果计数的页的
数目大于或等于阈值,则垃圾收集控制器可以将存储有与第一流标识符对应的数据的页重新布置在至少一个存储块中。在下文中,在假设阈值为3的情况下进行描述。
121.与第一流标识符stream id a对应的数据data 1、数据data 8、数据data 7和数据data 6可以存储在四个页中,由于页的数目(即,4)大于或等于阈值(即,3),因此与第一流标识符stream id a对应的数据可以存储在存储块blk k中。通过将与第一流标识符stream id a对应的数据存储在存储块blk k中,可以对数据进行分类。
122.如果第一流标识符stream id a对应于冷数据,则冷数据可以被收集在存储块blk k中。通过基于分类结果执行垃圾收集,冷数据可以不被频繁地复制到空闲区域,并且可以降低垃圾收集成本。
123.图11是示出根据示例实施例的在存储器件中执行的垃圾收集的概念图。
124.参照图11,存储块blk k的页page 0可以是可以向其有效地写入数据的有效区域,页page 1可以是空闲区域,页page 2和页page 3可以是由于重复的数据写入/擦除而不能向其写入数据的无效区域。
125.类似地,存储块blk k+1的页page 0可以是有效区域,页page 1至页page 3可以是无效区域。
126.存储块blk k+2的页page 0和页page 1可以是空闲区域,页page 2和页page 3可以是有效区域。与第一流标识符对应的冷数据可以存储在存储块blk k+2中,不与第一流标识符对应的热数据可以存储在存储块blk k和blk k+1中。
127.响应于垃圾收集信号,可以在存储器件中执行垃圾收集,并且可以重新布置存储在存储块中的数据。具体地,存储在存储块blk k+1的页page 0中的数据可以是热数据,并且可以被复制到存储块blk k的页page 1。因此,存储在存储块blk k+1中的数据可以被认为是无意义的。因此,存储设备可以通过擦除存储块blk k+1,再次使整个存储块blk k+1可写。另外,存储设备可以不擦除存储块blk k+2。换句话说,可以执行垃圾收集。数据可以被划分为频繁改变的热数据和不频繁改变的冷数据。与热数据相比,冷数据不太可能是无效块,这是因为数据擦除和写入不会像热数据那样重复。如果冷数据分散在存储块blk中,则可能导致数据的碎片化。
128.如果对存储块执行覆写(overwrite),则可以擦除先前写入的数据,并且可以写入新数据。此时,根据数据的特征,可能存在一些未被完全擦除的块。也就是说,由于可能存在无效块,因此可能抑制空闲块的生成。因此,会需要垃圾收集操作。
129.根据本发明构思的技术思想的存储设备(例如,图3的存储设备300)可以基于表示数据的更新频率的数据年龄来改变流标识符,并且基于流标识符根据数据的更新频率来对数据进行分类。可以基于分类结果来执行垃圾收集。当具有相似更新频率的数据被写入相同的存储块时,可以通过之后执行的垃圾收集或擦除操作来完全擦除数据,并且可以生成更多的空闲块。空闲块的生成可以最终减少垃圾收集次数或waf。
130.图12是用于说明根据示例实施例的存储设备的操作方法的流程图。
131.在操作s1210中,存储设备可以从主机接收数据和与数据对应的流标识符。
132.在操作s1220中,存储设备可以基于表示数据的更新频率的数据的年龄来确定是否要改变流id。在一个实施例中,存储设备可以将数据的年龄与第一阈值进行比较,并且基于比较结果来确定是否要改变流标识符。如果数据的年龄大于或等于第一阈值,则存储设
备可以将流标识符改变为与冷数据对应的第一流标识符。
133.可以通过使用数据被存储在存储器件中的时间点处的存储器件的时间戳信息以及数据控制器访问存储在存储器件中的数据的当前写入时间点处的存储器件的时间戳信息,来生成数据的年龄。
134.在操作s1230中,存储设备可以基于流标识符确定是否要对数据进行分类,以及对数据进行分类。存储设备可以对存储有与第一流标识符对应的数据的页的数目进行计数,并将计数的页的数目与第二阈值进行比较。如果计数的页的数目大于或等于第二阈值,则存储设备可以重新布置存储有与第一流标识符对应的数据的页。
135.在操作s1240中,存储设备可以基于分类结果对存储器件执行垃圾收集操作。
136.图13是示出根据示例实施例的使用存储设备的实验结果的曲线图。
137.参照图13,曲线图的水平轴可以表示天,垂直轴可以表示waf。第一曲线图a表示在没有流标识符分类的情况下执行垃圾收集的waf,第二曲线图b表示基于由主机分配的流标识符执行垃圾收集的waf,第三曲线图c表示基于由根据本发明构思的存储设备分类的数据执行垃圾收集的waf。
138.第二曲线图b可以具有比第一曲线图a小的waf,第三曲线图c可以具有比第二曲线图b小的waf。此外,由于第三曲线图c示出了waf的减小,因此应当理解,使用根据本发明构思的存储设备可以促使waf改善。
139.图14是根据示例实施例的存储器系统的框图。
140.主机系统1000和存储系统2000可以构成存储器系统1。例如,存储器系统1可以构成超移动pc(umpc)、工作站、上网本、个人数字助理(pda)、便携式计算机、网络平板计算机、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(pmp)、便携式游戏机、导航、黑匣子、数码相机、数字多媒体广播(dmb)播放器、3d电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够发送和接收信息的设备、构成家庭网络的各种电子设备之一、构成计算机网络的各种电子设备之一、构成远程信息处理网络的各种电子设备之一、射频识别(rfid)设备、或构成计算系统的各种组件之一等。
141.主机系统1000可以包括至少一个操作系统1100,操作系统1100可以管理和控制主机的整体功能和操作,并且提供使用存储器系统1的用户与主机之间的交互。
142.这里,操作系统1100可以支持与用户的使用的对象和目的对应的功能和操作,并且根据主机的移动性被划分为,例如,通用操作系统和移动操作系统。此外,操作系统1100的通用操作系统可以根据用户环境被划分为个人操作系统和企业操作系统,例如,特征在于支持一般用户的服务提供功能的个人操作系统包括windows、chrome等,特征在于确保和支持高性能的企业操作系统包括windows server、linux、unix等。
143.操作系统1100的移动操作系统可以是特征在于支持用户的移动服务提供功能和系统节能功能且包括安卓、ios、windows mobile等的系统。在示例实施例中,主机可以包括多个操作系统,并且还执行操作系统以与存储器系统1执行对应于用户请求的操作。在此,主机可以将多个命令(即,用户请求)发送到存储器系统1,存储器系统1可以执行对应于命令(即,用户请求)的操作。
144.可以以文件为基础执行主机系统1000的读取请求和写入请求。也就是说,通过文
件读取read_f请求和文件写入write_f请求,可以将数据从主机系统1000存储在存储系统2000中,或者可以将存储在存储系统2000中的数据读取到主机系统1000。
145.存储系统2000可以被实现为,例如,个人计算机(pc)、数据服务器、网络附接存储(nas)、物联网(iot)设备或便携式电子设备。便携式电子设备可以包括:膝上型计算机、移动电话、智能电话、平板pc、pda、企业数字助理(eda)、数字静态相机、数字视频相机、音频设备、pmp、个人导航设备(pnd)、mp3播放器、手持游戏机、电子书、可穿戴设备等。
146.存储系统2000可以包括主机接口层2100、闪存转换层2200、闪存接口层2300和非易失性存储器2400。
147.主机接口层2100可以是发生主机系统1000与存储系统2000之间的接口通信的逻辑区域。
148.闪存转换层2200可以被理解为图3的ftl 311的另一种形式,由于图14的数据管理器2210、数据控制器2220和垃圾收集控制器2230分别对应于图3的数据管理器312、数据控制器313和垃圾收集控制器314,因此省略了对其的冗余描述。
149.主机接口层2100和闪存转换层2200可以以扇区为基础写入或读取数据。也就是说,根据主机系统的读取/写入请求,主机接口层2100可以以扇区为基础从闪存转换层2200请求读取/写入请求。
150.闪存接口层2300可以提供闪存转换层2200与非易失性存储器2400之间的接口。根据示例实施例,可以以页为基础执行数据的读取read_p和写入write_p,但是可以以块为基础执行数据的擦除erase_b,这可以是闪存设备的特性。
151.非易失性存储器2400可以被理解为图3的存储器件320,省略了对其的冗余描述。
152.可以通过使用各种类型的封装来安装根据本发明构思的存储器系统1。例如,根据本发明构思的存储器系统可以以包括以下项的各种形式被安装:叠层封装(pop)、球栅阵列(bga)、芯片级封装(csp)、塑料引线芯片载体(plcc)、塑料双列直插式封装(pdip)、窝伏尔组件中裸片、晶片形式裸片、板上芯片(cob)、陶瓷双列直插式封装(cerdip)、塑料公制四方扁平封装(mqfp)、薄四方扁平封装(tqfp)、小外形ic(soic)、收缩小外形封装(ssop)、薄小外形封装(tsop)、系统级封装(sip)、多芯片封装等。
153.虽然已经参照本发明构思的实施例具体示出和描述了本发明构思,但是将理解的是,在不脱离所附权利要求的精神和范围的情况下,可以对其进行形式和细节上的各种改变。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1