CN113032288A - 冷热数据阈值的确定方法、装置及设备 - Google Patents
冷热数据阈值的确定方法、装置及设备 Download PDFInfo
- Publication number
- CN113032288A CN113032288A CN201911355841.3A CN201911355841A CN113032288A CN 113032288 A CN113032288 A CN 113032288A CN 201911355841 A CN201911355841 A CN 201911355841A CN 113032288 A CN113032288 A CN 113032288A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- cold
- hot
- value
- memory block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种冷热数据阈值的确定方法、装置及设备,属于数据存储技术领域。所述方法包括:基于冷热数据阈值,确定当前闪存块的第一冷热属性,当前闪存块为闪存颗粒对应的多个闪存块中被选中的一个闪存块。确定当前闪存块的更新参数。根据更新参数,确定当前闪存块的第二冷热属性。若第二冷热属性与第一冷热属性不同,则对冷热数据阈值进行更新。本申请通过在第一冷热属性和第二冷热属性不同时对冷热数据阈值进行更新,可以实现对冷热数据阈值的动态更新。
Description
技术领域
本申请涉及数据存储技术领域,特别涉及一种冷热数据阈值的确定方法、装置及设备。
背景技术
随着数据存储技术的发展,SSD(固态硬盘,Solid State Drives)得到了广泛应用,SSD中包括多个闪存颗粒,每个闪存颗粒一般对应有多个闪存块。通常情况下,数据存储过程中可能需要对数据进行垃圾回收,由于数据一般以闪存块为单位进行擦除,如此,需要以闪存块为单位进行数据迁移。为了减少垃圾回收时数据的迁移量,可以确定闪存块的冷热数据属性,譬如,当该闪存块被写入第一个数据到该闪存块被选中进行垃圾回收之间的时长小于或等于冷热数据阈值时,确定该闪存块为数据更新频率较高的热闪存块,当该闪存块被写入第一个数据到该闪存块被选中进行垃圾回收之间的时长大于冷热数据阈值时,确定该闪存块为数据更新频率较低的冷闪存块。
上述确定的冷热数据阈值一般是固定的,然而,用户每次写入的数据中热数据和冷数据的比例可能不同,相应的,闪存块从被写入第一个数据到闪存块被选中进行垃圾回收之间的时长也就有所不同,如此,以固定的冷热数据阈值去判断闪存块的冷热属性,得到的判断结果可能会不准确。
发明内容
本申请提供了一种冷热数据阈值的确定方法、装置及设备,可以解决相关技术的冷热数据阈值的确定问题。所述技术方案如下:
一方面,提供了一种冷热数据阈值的确定方法,所述方法包括:
基于冷热数据阈值,确定当前闪存块的第一冷热属性,所述当前闪存块为闪存颗粒对应的多个闪存块中被选中的一个闪存块;
确定所述当前闪存块的更新参数;
根据所述更新参数,确定所述当前闪存块的第二冷热属性;
若所述第二冷热属性与所述第一冷热属性不同,则对所述冷热数据阈值进行更新。
在本申请一种可能的实现方式中,所述更新参数是指更新速度,所述确定所述当前闪存块的更新参数,包括:
获取所述当前闪存块内包括的无效逻辑页数据的总数量,所述无效逻辑页数据是指所述当前闪存块内包括的多个逻辑页数据中被置为无效的逻辑页数据;
统计第一闪存块个数,所述第一闪存块个数是指从所述当前闪存块被写入第一个数据时至所述当前闪存块被选中的期间,所述多个闪存块中被用户已写满数据的闪存块个数;
将所述无效逻辑页数据的总数量与所述第一闪存块个数之间的比值确定为所述当前闪存块的更新速度。
在本申请一种可能的实现方式中,所述方法还包括:
获取所述闪存颗粒的平均更新速度,所述平均更新速度是指所述闪存颗粒中一个闪存块内包括的多个逻辑页数据的总数量与所述多个闪存块的总数量之间的比值;
相应地,所述根据所述更新参数,确定所述当前闪存块的第二冷热属性,包括:
当所述更新速度大于所述平均更新速度时,确定所述当前闪存块为热闪存块;和/或
当所述更新速度小于所述平均更新速度时,确定所述当前闪存块确定为冷闪存块;和/或
当所述更新速度等于所述平均更新速度时,确定所述当前闪存块确定为热闪存块。
在本申请一种可能的实现方式中,所述对所述冷热数据阈值进行更新,包括:
获取热数值集合中的最大值,所述热数值集合中包括已选中的热闪存块对应的第二闪存块个数,所述第二闪存块个数是指从对应的闪存块中写入第一个数据时至所述对应的闪存块被选中的期间,所述多个闪存块中已写满数据的闪存块个数;
获取冷数值集合中的最小值,所述冷数值集合中包括已选中的冷闪存块对应的第二闪存块个数;
基于所述最大值和所述最小值,对所述冷热数据阈值进行更新。
在本申请一种可能的实现方式中,所述基于所述最大值和所述最小值,对所述冷热数据阈值进行更新,包括:
当所述最大值小于所述最小值时,将所述冷热数据阈值更新为所述最大值与所述最小值的均值;和/或,
当所述最大值等于所述最小值时,将所述冷热数据阈值更新为所述最大值与所述最小值的均值。
在本申请一种可能的实现方式中,所述热数值集合中包括的元素个数小于或等于指定数量阈值,所述冷数值集合中包括的元素个数小于或等于所述指定数量阈值。
在本申请一种可能的实现方式中,所述方法还包括:
当所述最大值大于所述最小值时,获取所述热数值集合中大于或等于所述最小值的元素,得到第一元素集合,以及获取所述冷数值集合中小于或等于所述最大值的元素,得到第二元素集合;
将所述第一元素集合和所述第二元素集合中的元素按照从大至小的顺序进行排序;
确定排序后每相邻两个元素的均值,得到多个备选值;
基于所述多个备选值,对所述冷热数据阈值进行更新。
在本申请一种可能的实现方式中,所述基于所述多个备选值,对所述冷热数据阈值进行更新,包括:
确定所述多个备选值中的每个备选值对应的第一元素个数和第二元素个数,所述第一元素个数是指所述第一元素集合中大于对应备选值的元素个数,所述第二元素个数是指所述第二元素集合中小于或等于对应备选值的元素个数;
将所述多个备选值中同一备选值对应的第一元素个数与第二元素个数相加,得到与所述多个备选值一一对应的多个错误分类数;
将所述冷热数据阈值更新为所述多个错误分类数中的最小错误分类数对应的备选值。
在本申请一种可能的实现方式中,所述对所述冷热数据阈值进行更新之前,还包括:
当所述第二冷热属性的属性值为第一属性值时,将所述当前闪存块对应的第二闪存块个数存入所述热数值集合中,所述第一属性值用于指示所述当前闪存块为热闪存块;
当所述第二冷热属性的属性值为第二属性值时,将所述当前闪存块对应的第二闪存块个数存入所述冷数值集合中,所述第二属性值用于指示所述当前闪存块为冷闪存块。
另一方面,提供了一种冷热数据阈值的确定装置,所述装置包括:
第一确定模块,用于基于冷热数据阈值,确定当前闪存块的第一冷热属性,所述当前闪存块为闪存颗粒对应的多个闪存块中被选中的一个闪存块;
第二确定模块,用于确定所述当前闪存块的更新参数;
第三确定模块,用于根据所述更新参数,确定所述当前闪存块的第二冷热属性;
更新模块,用于若所述第二冷热属性与所述第一冷热属性不同,则对所述冷热数据阈值进行更新。
在本申请一种可能的实现方式中,所述更新参数是指更新速度,所述第二确定模块用于:
获取所述当前闪存块内包括的无效逻辑页数据的总数量,所述无效逻辑页数据是指所述当前闪存块内包括的多个逻辑页数据中被置为无效的逻辑页数据;
统计第一闪存块个数,所述第一闪存块个数是指从所述当前闪存块被写入第一个数据时至所述当前闪存块被选中的期间,所述多个闪存块中被用户已写满数据的闪存块个数;
将所述无效逻辑页数据的总数量与所述第一闪存块个数之间的比值确定为所述当前闪存块的更新速度。
在本申请一种可能的实现方式中,所述第三确定模块还用于:
获取所述闪存颗粒的平均更新速度,所述平均更新速度是指所述闪存颗粒中一个闪存块内包括的多个逻辑页数据的总数量与所述多个闪存块的总数量之间的比值;
当所述更新速度大于所述平均更新速度时,确定所述当前闪存块为热闪存块;和/或
当所述更新速度小于所述平均更新速度时,确定所述当前闪存块确定为冷闪存块;和/或
当所述更新速度等于所述平均更新速度时,确定所述当前闪存块确定为热闪存块。
在本申请一种可能的实现方式中,所述更新模块用于:
获取热数值集合中的最大值,所述热数值集合中包括已选中的热闪存块对应的第二闪存块个数,所述第二闪存块个数是指从对应的闪存块中写入第一个数据时至所述对应的闪存块被选中的期间,所述多个闪存块中已写满数据的闪存块个数;
获取冷数值集合中的最小值,所述冷数值集合中包括已选中的冷闪存块对应的第二闪存块个数;
基于所述最大值和所述最小值,对所述冷热数据阈值进行更新。
在本申请一种可能的实现方式中,所述更新模块用于:
当所述最大值小于所述最小值时,将所述冷热数据阈值更新为所述最大值与所述最小值的均值;和/或,
当所述最大值等于所述最小值时,将所述冷热数据阈值更新为所述最大值与所述最小值的均值。
在本申请一种可能的实现方式中,所述热数值集合中包括的元素个数小于或等于指定数量阈值,所述冷数值集合中包括的元素个数小于或等于所述指定数量阈值。
在本申请一种可能的实现方式中,所述更新模块还用于:
当所述最大值大于所述最小值时,获取所述热数值集合中大于或等于所述最小值的元素,得到第一元素集合,以及获取所述冷数值集合中小于或等于所述最大值的元素,得到第二元素集合;
将所述第一元素集合和所述第二元素集合中的元素按照从大至小的顺序进行排序;
确定排序后每相邻两个元素的均值,得到多个备选值;
基于所述多个备选值,对所述冷热数据阈值进行更新。
在本申请一种可能的实现方式中,所述更新模块用于:
确定所述多个备选值中的每个备选值对应的第一元素个数和第二元素个数,所述第一元素个数是指所述第一元素集合中大于对应备选值的元素个数,所述第二元素个数是指所述第二元素集合中小于或等于对应备选值的元素个数;
将所述多个备选值中同一备选值对应的第一元素个数与第二元素个数相加,得到与所述多个备选值一一对应的多个错误分类数;
将所述冷热数据阈值更新为所述多个错误分类数中的最小错误分类数对应的备选值。
在本申请一种可能的实现方式中,所述更新模块还用于:
当所述第二冷热属性的属性值为第一属性值时,将所述当前闪存块对应的第二闪存块个数存入所述热数值集合中,所述第一属性值用于指示所述当前闪存块为热闪存块;
当所述第二冷热属性的属性值为第二属性值时,将所述当前闪存块对应的第二闪存块个数存入所述冷数值集合中,所述第二属性值用于指示所述当前闪存块为冷闪存块。
另一方面,提供了一种电子设备,所述电子设备包括:
硬盘的控制器;
存储器,所述存储器存储有所述处理器可执行的指令;
其中,所述硬盘的控制器被配置为执行所述指令并实现上述一方面所述的任一项方法的步骤。
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述所述冷热数据阈值的确定方法的步骤。
另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的冷热数据阈值的确定方法的步骤。
本申请提供的技术方案至少可以带来以下有益效果:
基于冷热数据阈值,确定当前闪存块的第一冷热属性,也就是通过当前的冷热数据阈值确定当前闪存块为热闪存块还是冷闪存块,当前闪存块为闪存颗粒对应的多个闪存块中被选中的一个闪存块。确定当前闪存块的更新参数,根据更新参数,确定当前闪存块的第二冷热属性,也就是根据更新参数确定当前闪存块为热闪存块还是冷闪存块,由于当前闪存块的更新参数能够更准确地体现实时更新情况,所以确定的第二冷热属性能够更准确地反映当前闪存块的冷热属性。若第二冷热属性与第一冷热属性不同,也就说明该冷热数据阈值不再适用于确定当前闪存块的冷热属性,则对冷热数据阈值进行更新,如此,可以实现对冷热数据阈值的动态更新,以更加准确地确定当前闪存块的冷热属性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种冷热数据阈值的确定方法的流程图;
图2是本申请实施例提供的一种冷热数据阈值的示意图;
图3是本申请实施例提供的另一种冷热数据阈值的示意图;
图4是本申请实施例提供的一种冷热数据阈值的确定装置的结构示意图;
图5是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例提供的冷热数据阈值的确定方法进行详细的解释说明之前,先对本申请实施例涉及的实施环境进行介绍。
本申请实施例提供的冷热数据阈值的确定方法可以由电子设备来执行,该电子设备中包括固态硬盘,该电子设备可以与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互,作为一种示例,该电子设备可以为PC(PersonalComputer,个人计算机)、手机、智能手机、PDA(Personal Digital Assistant,个人数字助手)、可穿戴设备、掌上电脑PPC(Pocket PC)、平板电脑、智能车机、智能电视、智能音箱等,本申请实施例对此不做限定。
在介绍完本申请实施例涉及的实施环境后,接下来将结合附图对本申请实施例提供的冷热数据阈值的确定方法进行详细介绍。
图1是本申请实施例提供的一种冷热数据阈值的确定方法的流程图,该方法可以应用于上述电子设备中。请参考图1,该方法包括如下步骤。
步骤101:基于冷热数据阈值,确定当前闪存块的第一冷热属性,当前闪存块为闪存颗粒对应的多个闪存块中被选中的一个闪存块。
其中,冷热数据阈值可以根据经验值进行设置,也可以是上一次更新后的冷热数据阈值。
通常情况下,闪存颗粒中对应有多个闪存块,该多个闪存块都有可能被选中。在本实施例中,以闪存块被选中进行垃圾回收为例进行说明。电子设备可以按照一定的规律在多个闪存块中选择闪存块进行垃圾回收,譬如,可以采用Greedy、CAT(Cost Age Times)等算法来进行选择。其中CAT算法是一种根据闪存块的有效逻辑页数据的数量、闪存块写入数据的时间以及闪存块被擦除的次数选择闪存块进行垃圾回收的算法。每次被电子设备选中进行垃圾回收的闪存块的数量可能是一个,也可能是多个,针对每个被选中进行垃圾回收的闪存块,都可以按照本申请实施例提供的方法确定其冷热属性。
其中,每个闪存块可以存储有一定数量的逻辑页数据,逻辑页数据通常存储在闪存块的物理页中,根据生产厂商的不同,每个闪存块可以存储的逻辑页数据的数量也会有所不同。
一般情况下,在逻辑页数据写入一个闪存位置后,当要对该逻辑页数据进行更新时,将更新后的数据写入其他没有被写入数据的闪存位置。如此,原闪存位置上的数据被认为是无效逻辑页数据,新的闪存位置上的数据被认为是有效逻辑页数据。无效逻辑页数据往往是由于数据更新产生的,所以通常认为当前闪存块中的无效逻辑页数据能够表示当前闪存块中进行更新的逻辑页数据。
譬如,当第2闪存块中第3物理页在被写入逻辑页1对应的数据之后,当要对逻辑页1对应的数据进行更新时,将更新后的数据写入其他没有被写入数据的闪存位置,如将更新后的数据写入第2闪存块中第4物理页中,如此,原闪存位置上的数据被认为是无效逻辑页数据,新闪存位置上的数据被认为是有效逻辑页数据。
需要说明的是,更新后的数据还可以写入到其他闪存块中的物理页中。
还需要说明的是,垃圾回收是一种将无效逻辑页数据和有效逻辑页数据混杂的闪存块中有效逻辑页数据迁移到其他闪存块中,从而可以使得该闪存块重新被利用的数据迁移技术。也就是说,被选中进行垃圾回收的闪存块往往对应有较多的无效逻辑页数据,若一个闪存块被选中进行垃圾回收,那么该一个闪存块对应的有效数据将被迁移到其他闪存块上,如此该一个闪存块中存储的便都是无效逻辑页数据了,进而对该一个闪存块进行擦除操作,也就是擦除该一个闪存块上的所有数据,使得该一个闪存块可以被重新写入数据,提高了闪存块的利用率。
在本实施例中,可以通过冷热数据阈值,确定被选中的闪存块是冷闪存块还是热闪存块,其具体实现可以包括:确定当前闪存块对应的第一个数和第二个数,第一个数是指当前闪存块被选中时多个闪存块中写满数据的闪存块的个数,第二个数是指当前闪存块中的写入第一个数据时多个闪存块中写满数据的闪存块的个数,确定第一个数和第二个数的差值,得到第二闪存块个数。当第二闪存块个数小于或等于冷热数据阈值时,确定当前闪存块的第一冷热属性的属性值为第一属性值,第一属性值用于指示当前闪存块为热闪存块。当第二闪存块个数大于冷热数据阈值时,确定当前闪存块的第一冷热属性的属性值为第二属性值,第二属性值用于指示当前闪存块为冷闪存块。
其中,闪存块中写满数据指的是闪存块中写入的逻辑页数据的数量已经达到闪存块可以存储的逻辑页数据的数量。
其中,第一个数可以表示在当前闪存块被选中进行垃圾回收的时刻有多少个闪存块已经写满数据。一般来说,多个闪存块中写满数据的闪存块的个数会随着时间的变化逐渐增加,即不同时刻被选中进行垃圾回收的闪存块对应的第一个数可能会不同。
其中,第二个数可以表示当前闪存块被写入第一个数据的时刻有多少个闪存块已经写满数据。需要说明的是,当前闪存块中的第一个数据为可以为从其他闪存块迁移入的第一个数据,也可以为用户写入的第一个数据,即用户通过主机写入的第一数据。
确定第一个数和第二个数之后,可以通过Δage=age_tick-age来确定第二闪存块个数,其中,Δage为第二闪存块个数,age_tick为第一个数,age为第二个数。也就是用第一个数减去第二个数得到第二闪存块个数,第二闪存块个数也就可以表示在当前闪存块写入第一个数据到当前闪存块被选中进行垃圾回收这段时间内,有多少闪存块写满数据。
设定冷热数据阈值为θ,当Δage≤θ,即第二闪存块个数小于或等于冷热数据阈值,也就说明在当前闪存块写入第一个数据到当前闪存块被选中进行垃圾回收的这段时间内,有小于或等于冷热数据阈值个闪存块写满数据了,说明当前闪存块的数据更新频率相对于其他闪存块来说比较高,可以确定当前闪存块为热闪存块。
当Δage>θ,即第二闪存块个数大于冷热数据阈值时,也就说明在当前闪存块写入第一个数据到当前闪存块被选中进行垃圾回收的这段时间内,有大于冷热数据阈值个闪存块写满数据了,也就说明当前闪存块的数据更新频率相对于其他闪存块来说比较低,可以确定当前闪存块为冷闪存块。
譬如,设置冷热数据阈值为3,当前闪存块被选中进行垃圾回收的时刻对应的第一个数为7,当前闪存块被写入第一个数据的时刻对应的第二个数为2,也就是在当前闪存块写入第一个数据到当前闪存块被选中进行垃圾回收的这段时间内,有5个闪存块写满数据了,即第二闪存块个数为5,由于第二闪存块个数大于冷热数据阈值,可以确定当前闪存块为冷闪存块,此时,确定当前闪存块的第一冷热属性为第二属性值。
在根据当前设置的冷热数据阈值确定当前闪存块的第一冷热属性之后,再通过其他方式对当前闪存块的冷热属性进行进一步确定,以判断当前设置的冷热数据阈值是否需要更新,具体如下文所述。
步骤102:确定当前闪存块的更新参数。
其中,更新参数可以为更新时间、更新速度和更新频率等等,本实施例以更新速度为例进行说明。
也就是,可以基于当前闪存块的更新速度,对当前闪存块的冷热属性进行进一步确定。
具体地,确定当前闪存块的更新参数的实现方式可以为:获取当前闪存块内包括的无效逻辑页数据的总数量,无效逻辑页数据是指当前闪存块内包括的多个逻辑页数据中被置为无效的逻辑页数据。统计第一闪存块个数,第一闪存块个数是指从当前闪存块被写入第一个数据时至当前闪存块被选中的期间,多个闪存块中被用户写满数据的闪存块个数。将无效逻辑页数据的总数量与第一闪存块个数之间的比值确定为当前闪存块的更新速度。
其中,第一闪存块个数可以表示从当前闪存块写入第一个数据开始到当前闪存块被选中进行垃圾回收的这段时间内,有多少个闪存块被用户写满数据。
之后,将当前闪存块中的无效逻辑页数据的总数量除以第一闪存块个数,得到当前闪存块的更新速度。需要说明的是,当前闪存块中的无效逻辑页数据的总数量可以通过计数器来记录,也就是当前闪存块中每当有一个逻辑页数据进行更新时,计数器计数加一。
示例性的,可以通过公式(1)来计算当前闪存块的更新速度:
其中,v为闪存块的更新速度,block_size为当前闪存块中可存储的逻辑页数据的数量,block_vdf为当前闪存块中有效逻辑页数据的数量,host_age_tick为当前闪存块被选中进行垃圾回收的时刻被用户写满数据的闪存块个数,host_age为当前闪存块写入第一个数据的时刻被用户写满数据的闪存块个数。
譬如,假设一个闪存块可以存储40个逻辑页数据,其中有24个是无效逻辑页数据,也就是有24个更新的逻辑页数据,第一闪存块个数为4,用无效逻辑页数据的总数量除以第一闪存块个数,可以得到当前闪存块的更新速度为6。
步骤103:根据更新参数,确定当前闪存块的第二冷热属性。
作为一种示例,当更新参数为更新速度时,可以在确定当前闪存块的更新速度之后,根据更新速度确定当前闪存块是热闪存块还是冷闪存块。当然,在更新参数为更新时间或更新频率时,也可以按照下述实现方式确定当前闪存块的第二冷热属性。
具体地,根据更新速度,确定当前闪存块的第二冷热属性的实现方式可以为:当更新速度大于平均更新速度时,确定当前闪存块为热闪存块。和/或,当更新速度小于平均更新速度时,确定当前闪存块确定为冷闪存块。和/或,当更新速度等于平均更新速度时,确定当前闪存块确定为热闪存块。
通常情况下,在根据更新速度确定当前闪存块的第二冷热属性时,可以获取闪存颗粒的平均更新速度,平均更新速度是指闪存颗粒中一个闪存块内包括的多个逻辑页数据的总数量与多个闪存块的总数量之间的比值。
也就是,通过当前闪存块可以存储的逻辑页数据的总数量除以闪存颗粒对应的多个闪存块的总数量,得到一个比值,将这个比值确定为闪存颗粒的平均更新速度。需要说明的是,不同生产厂商生产的闪存颗粒对应的多个闪存块的总数量会有所不同,因此,根据生产厂商的不同,闪存块的平均更新速度也会有所不同。
示例性的,可以通过公式(2)来计算闪存颗粒的平均更新速度:
譬如,当闪存颗粒包括10个闪存块,每个闪存块可以存储20个逻辑页数据时,可以确定当前闪存块的平均更新速度为2。
也就是,确定闪存颗粒的平均更新速度,通过对比当前闪存块的平均更新速度与当前闪存块的更新速度之间的大小关系,确定当前闪存块是热闪存块还是冷闪存块。
譬如,当平均更新速度为2,当前闪存块的更新速度为6时,也就说明当前闪存块相对于其他闪存块而言更新速度较快,可以确定当前闪存块为热闪存块。
譬如,当平均更新速度为2,当前闪存块的更新速度为2时,也就说明当前闪存块相对于其他闪存块而言更新速度较快,可以确定当前闪存块为热闪存块。
譬如,当平均更新速度为4,当前闪存块的更新速度为3时,也就说明当前闪存块相对于其他闪存块而言更新速度较慢,可以确定当前闪存块为冷闪存块。
如此,便通过当前闪存块的更新速度确定了当前闪存块的第二冷热属性。
步骤104:若第二冷热属性与第一冷热属性不同,则对冷热数据阈值进行更新。
也就是,可以根据冷热数据阈值确定当前闪存块的第一冷热属性,根据当前闪存块的更新速度确定当前闪存块的第二冷热属性,再对当前闪存块的第一冷热属性和第二冷热属性进行对比,以确定是否需要对冷热数据阈值进行更新。
由于当前闪存块的更新速度能够更准确地体现实时更新情况,也就是确定的第二冷热属性能够更加准确地反映当前闪存块的冷热属性,若第二冷热属性与第一冷热属性不同,这说明该冷热数据阈值不再适用于确定当前闪存块的冷热属性,则对冷热数据阈值进行更新。
譬如,当根据冷热数据阈值确定出当前闪存块为冷闪存块,而根据当前闪存块确定出当前闪存块为热闪存块时,可以确定当前闪存块的第一冷热属性和第二冷热属性不同,则对该冷热数据阈值进行更新。
具体地,对冷热数据阈值进行更新的实现方式可以为:获取热数值集合中的最大值,热数值集合中包括已选中的热闪存块对应的第二闪存块个数,第二闪存块个数是指从对应的闪存块中写入第一个数据时至对应的闪存块被选中的期间,多个闪存块中已写满数据的闪存块个数。获取冷数值集合中的最小值,冷数值集合中包括已选中的冷闪存块对应的第二闪存块个数。基于最大值和最小值,对冷热数据阈值进行更新。
其中,热数值集合包括多个第二闪存块个数,通常,当根据更新速度确定一个闪存块为热闪存块时,可以将该闪存块对应的第二闪存块个数存入热数值集合中。进而,热数值集合中便可以包括所有根据更新速度确定的热闪存块对应的第二闪存块个数。
其中,冷数值集合包括多个第二闪存块个数,通常,当根据更新速度确定一个闪存块为冷闪存块时,可以将该闪存块对应的第二闪存块个数存入冷数值集合中。进而,冷数值集合中便可以包括所有根据更新速度确定的冷闪存块对应的第二闪存块个数。
在一种可能的实现方式中,热数值集合中包括的元素个数小于或等于指定数量阈值,冷数值集合中包括的元素个数小于或等于指定数量阈值。
其中,指定数量阈值可以根据实际情况进行设置,譬如可以设置指定数量阈值为50,也就是热数值集合中最多包括50个第二闪存块个数,冷数值集合中最多包括50个第二闪存块个数。
一般来说,热数值集合中包括少于或等于指定数量阈值个第二闪存块个数,当热数值集合中的第二闪存块个数的数量达到指定数量阈值时,如果有新的第二闪存块个数要被存入该热数值集合,就将该热数值集合中存入时间最早的一个第二闪存块个数删除,如此,保持热数值集合中第二闪存块个数的数量等于指定数量阈值。
类似的,冷数值集合中包括少于或等于指定数量阈值个第二闪存块个数,当冷数值集合中的第二闪存块个数的数量达到指定数量阈值时,如果有新的第二闪存块个数要被存入该冷数值集合,就将该冷数值集合中存入时间最早的一个第二闪存块个数删除,如此,保持冷数值集合中第二闪存块个数的数量等于指定数量阈值。
作为一种示例,基于最大值和最小值,对冷热数据阈值进行更新的实现方式可以为:当最大值小于最小值时,将冷热数据阈值更新为最大值与最小值的均值。和/或,当最大值等于最小值时,将冷热数据阈值更新为最大值与最小值的均值。
示例性的,可以通过公式(3)来计算更新后的冷热数据阈值:
其中,θnew为更新后的冷热数据阈值,min_cold_age为冷数值集合中的最小值,max_hot_age为热数值集合中的最大值。
其中,获取热数值集合中的最大值和冷数值集合中的最小值,通过对该最大值和该最小值作对比,可以确定该多个闪存块对应的多个第二闪存块个数是否线性可分,也就是确定是否存在冷热数据阈值,能够使得多个热闪存块对应的多个第二闪存块个数均小于或等于该冷热数据阈值,多个冷闪存块对应的多个第二闪存块个数均大于该冷热数据阈值,若该最大值小于该最小值,即max_hot_age<min_cold_age,可以将冷热数据阈值更新为该最大值和最小值的均值,若该最大值等于该最小值,即max_hot_age=min_cold_age,可以将冷热数据阈值更新为该最大值和最小值的均值。
示例性的,如图2所示,图2中圆形图标用来表示热闪存块对应的第二闪存块个数,方形图标用来表示冷闪存块对应的第二闪存块个数,当最大值小于最小值时,将冷热数据阈值更新为最大值和最小值的均值,当最大值等于最小值时,同样将冷热数据阈值更新为最大值和最小值的均值。
譬如,当热数值集合中的最大值为3,冷数值集合中的最小值为4时,可以将冷热数据阈值更新为3.5,当热数值集合中的最大值为3,冷数值集合中的最小值为3时,可以将冷热数据阈值更新为3。
需要说明的是,上述仅是以将冷热数据阈值更新为最大值和最小值的均值为例进行说明。在另一实施例中,当最大值小于或等于最小值时,可以将冷热数据阈值更新为大于或等于最大值,且小于最小值的范围内的任一个数值。
作为一种示例,基于最大值和最小值,对冷热数据阈值进行更新的实现方式还可以为:当最大值大于最小值时,获取热数值集合中大于或等于最小值的元素,得到第一元素集合,以及获取冷数值集合中小于或等于最大值的元素,得到第二元素集合。将第一元素集合和第二元素集合中的元素按照从大至小的顺序进行排序。确定排序后每相邻两个元素的均值,得到多个备选值。基于多个备选值,对冷热数据阈值进行更新。
当最大值大于最小值,即max_hot_age>min_cold_age,可以确定该多个闪存块对应的多个第二闪存块个数线性不可分,也就是不存在冷热数据阈值,能够使得多个热闪存块对应的多个第二闪存块个数均小于或等于该冷热数据阈值,多个冷闪存块对应的多个第二闪存块个数均大于该冷热数据阈值时,这种情况下,相应的更新冷热数据阈值的方法又有所不同。
也就是说,确定热数值集合中大于或等于最小值的第二闪存块个数,将确定出来的热数值集合hot_age_list中大于或等于最小值min_cold_age的第二闪存块个数作为第一元素集合hot_wrong_list,该第一元素集合中第二闪存块个数的数量为hot_cnt,确定冷数值集合cold_age_list中小于或等于最大值max_hot_age的第二闪存块个数,将确定出来的冷数值集合中小于或等于最大值的第二闪存块个数作为第二元素集合cold_wrong_list,该第二元素集合中第二闪存块个数的数量为cold_cnt,将第一元素集合和第二元素集合中的第二闪存块个数按照从小至大的顺序进行排序,也就是将(hot_cnt+cold_cnt)个第二闪存块个数按照从小至大的顺序进行排序,计算相邻两个第二闪存块个数的均值,将计算得到的均值作为冷热数据阈值θ的多个备选值,该多个备选值的数量最多可以为(hot_cnt+cold_cnt+1),进而在该多个备选值中选择一个作为更新的冷热数据阈值。
示例性的,如图3所示,图3中圆形图标用来表示热闪存块对应的第二闪存块个数,方形图标用来表示冷闪存块对应的第二闪存块个数,当最大值大于最小值时,如图3(a)所示,确定冷数值集合中小于或等于最大值的第二闪存块个数,确定热数值集合中大于或等于最小值的第二闪存块个数,按从小到大的顺序进行排列,计算相邻两个第二闪存块个数的均值,将得到的均值作为多个备选值,如图3(b)所示。
譬如,当热数值集合中的第二闪存块个数分别为2、3、6、7,冷数值集合中的第二闪存块个数分别为4、8,即热数值集合中的最大值为7,冷数值集合中的最小值为4,由此可以确定第一元素集合包括6、7,第二元素集合包括4,由于4和6的均值为5,6和7的均值为6.5,也就可以将5和6.5作为冷热数据阈值的备选值。
需要说明的是,当最大值大于最小值时,在大于最小值,且小于或等于最大值范围内的任一个数值均可以作为冷热数据阈值的备选值,本实施例仅以取第一元素集合和第二元素集合中相邻两个第二闪存块个数的均值作备选值为例进行说明。
在确定多个备选值之后,再基于该多个备选值进行一些操作,以在该多个备选值中选择一个备选值作为更新后的冷热数据阈值。
具体地,基于多个备选值,对冷热数据阈值进行更新的实现方式可以为:确定多个备选值中的每个备选值对应的第一元素个数和第二元素个数,第一元素个数是指第一元素集合中大于对应备选值的元素个数,第二元素个数是指第二元素集合中小于或等于对应备选值的元素个数。将多个备选值中同一备选值对应的第一元素个数与第二元素个数相加,得到与多个备选值一一对应的多个错误分类数。将冷热数据阈值更新为多个错误分类数中的最小错误分类数对应的备选值。
即根据多个备选值对应的错误分类数在多个备选值中确定一个备选值,将冷热数据阈值更新为该备选值。
也就是,确定多个备选值中的一个备选值,当这个备选值作为冷热数据阈值时,确定第一元素集合中大于这个备选值的第二闪存块个数的数量,即多个热闪存块中被错误分类的个数,再确定第二元素集合中小于或等于这个备选值的第二闪存块个数的数量,即多个冷闪存块中被错误分类的个数,如此,将多个热闪存块中被错误分类的个数与多个冷闪存块中被错误分类的个数相加,得到这个备选值对应的错误分类数J(θ)。如此,通过对比多个备选值对应的错误分类数J(θ),选择一个对应的错误分类数J(θ)最少的备选值,即可以通过确定一个备选值,进而将冷热数据阈值更新为该备选值。
譬如,当第一元素集合包括7、9,第二元素集合包括4、5、6、8时,备选值分别为4.5、5.5、6.5、7.5和8.5。当备选值为4.5时,第一元素集合中大于4.5的第二闪存块个数的个数为2,第二元素集合中小于等于4.5的第二闪存块个数的个数为1,因此确定备选值为4.5时的错误分类数为3。当备选值为5.5时,第一元素集合中大于5.5的第二闪存块个数的个数为2,第二元素集合中小于等于5.5的第二闪存块个数的个数为2,因此确定备选值为5.5时的错误分类数为4。当备选值为6.5时,第一元素集合中大于6.5的第二闪存块个数的个数为2,第二元素集合中小于等于6.5的第二闪存块个数的个数为3,因此确定备选值为6.5时的错误分类数为5。当备选值为7.5时,第一元素集合中大于7.5的第二闪存块个数的个数为1,第二元素集合中小于等于7.5的第二闪存块个数的个数为3,因此确定备选值为7.5时的错误分类数为4。当备选值为8.5时,第一元素集合中大于8.5的第二闪存块个数的个数为1,第二元素集合中小于等于8.5的第二闪存块个数的个数为4,因此确定备选值为8.5时的错误分类数为5。因此,可以将冷热数据阈值更新为备选值4.5。
需要说明的是,当同时有多个备选值对应的错误分类数最小时,可以将冷热数据阈值更新为多个最小错误分类数对应的多个备选值中的任意一个。
进一步地,在对冷热数据阈值进行更新之前,还可以进行如下操作:当第二冷热属性的属性值为第一属性值时,将当前闪存块对应的第二闪存块个数存入热数值集合中,第一属性值用于指示当前闪存块为热闪存块。当第二冷热属性的属性值为第二属性值时,将当前闪存块对应的第二闪存块个数存入冷数值集合中,第二属性值用于指示当前闪存块为冷闪存块。
也就是在根据更新速度确定当前闪存块的第二冷热属性之后,基于确定的第二冷热属性对当前闪存块对应的第二闪存块个数进行分类。
在当前闪存块通过更新速度被确定为热闪存块,也就是当前闪存块的第二冷热属性的属性值为第一属性值时,确定当前闪存块对应的第二闪存块个数Δage属于热数值集合hot_age_list,在当前闪存块通过更新速度被确定为冷闪存块,也就是当前闪存块的第二冷热属性的属性值为第二属性值时,确定当前闪存块对应的第二闪存块个数Δage属于冷数值集合cold_age_list。
在本申请实施例中,基于冷热数据阈值,确定当前闪存块的第一冷热属性,也就是通过当前的冷热数据阈值确定当前闪存块为热闪存块还是冷闪存块,当前闪存块为闪存颗粒对应的多个闪存块中被选中的一个闪存块。确定当前闪存块的更新参数,根据更新参数,确定当前闪存块的第二冷热属性,也就是根据更新参数确定当前闪存块为热闪存块还是冷闪存块,由于当前闪存块的更新参数能够更准确地体现实时更新情况,所以确定的第二冷热属性能够更准确地反映当前闪存块的冷热属性。若第二冷热属性与第一冷热属性不同,也就说明该冷热数据阈值不再适用于确定当前闪存块的冷热属性,则对冷热数据阈值进行更新,如此,可以实现对冷热数据阈值的动态更新,以更加准确地确定当前闪存块的冷热属性。
图4是根据一示例性实施例示出的一种冷热数据阈值的确定装置的结构示意图,该冷热数据阈值的确定装置可以由软件、硬件或者两者的结合实现。该冷热数据阈值的确定装置可以包括:
第一确定模块410,用于基于冷热数据阈值,确定当前闪存块的第一冷热属性,所述当前闪存块为闪存颗粒对应的多个闪存块中被选中的一个闪存块;
第二确定模块420,用于确定所述当前闪存块的更新参数;
第三确定模块430,用于根据所述更新参数,确定所述当前闪存块的第二冷热属性;
更新模块440,用于若所述第二冷热属性与所述第一冷热属性不同,则对所述冷热数据阈值进行更新。
在本申请一种可能的实现方式中,所述更新参数是指更新速度,所述第二确定模块420用于:
获取所述当前闪存块内包括的无效逻辑页数据的总数量,所述无效逻辑页数据是指所述当前闪存块内包括的多个逻辑页数据中被置为无效的逻辑页数据;
统计第一闪存块个数,所述第一闪存块个数是指从所述当前闪存块被写入第一个数据时至所述当前闪存块被选中的期间,所述多个闪存块中被用户已写满数据的闪存块个数;
将所述无效逻辑页数据的总数量与所述第一闪存块个数之间的比值确定为所述当前闪存块的更新速度。
在本申请一种可能的实现方式中,所述第三确定模块430还用于:
获取所述闪存颗粒的平均更新速度,所述平均更新速度是指所述闪存颗粒中一个闪存块内包括的多个逻辑页数据的总数量与所述多个闪存块的总数量之间的比值;
当所述更新速度大于所述平均更新速度时,确定所述当前闪存块为热闪存块;和/或
当所述更新速度小于所述平均更新速度时,确定所述当前闪存块确定为冷闪存块;和/或
当所述更新速度等于所述平均更新速度时,确定所述当前闪存块确定为热闪存块。
在本申请一种可能的实现方式中,所述更新模块440用于:
获取热数值集合中的最大值,所述热数值集合中包括已选中的热闪存块对应的第二闪存块个数,所述第二闪存块个数是指从对应的闪存块中写入第一个数据时至所述对应的闪存块被选中的期间,所述多个闪存块中已写满数据的闪存块个数;
获取冷数值集合中的最小值,所述冷数值集合中包括已选中的冷闪存块对应的第二闪存块个数;
基于所述最大值和所述最小值,对所述冷热数据阈值进行更新。
在本申请一种可能的实现方式中,所述更新模块440用于:
当所述最大值小于所述最小值时,将所述冷热数据阈值更新为所述最大值与所述最小值的均值;和/或,
当所述最大值等于所述最小值时,将所述冷热数据阈值更新为所述最大值与所述最小值的均值。
在本申请一种可能的实现方式中,所述热数值集合中包括的元素个数小于或等于指定数量阈值,所述冷数值集合中包括的元素个数小于或等于所述指定数量阈值。
在本申请一种可能的实现方式中,所述更新模块440还用于:
当所述最大值大于所述最小值时,获取所述热数值集合中大于或等于所述最小值的元素,得到第一元素集合,以及获取所述冷数值集合中小于或等于所述最大值的元素,得到第二元素集合;
将所述第一元素集合和所述第二元素集合中的元素按照从大至小的顺序进行排序;
确定排序后每相邻两个元素的均值,得到多个备选值;
基于所述多个备选值,对所述冷热数据阈值进行更新。
在本申请一种可能的实现方式中,所述更新模块440用于:
确定所述多个备选值中的每个备选值对应的第一元素个数和第二元素个数,所述第一元素个数是指所述第一元素集合中大于对应备选值的元素个数,所述第二元素个数是指所述第二元素集合中小于或等于对应备选值的元素个数;
将所述多个备选值中同一备选值对应的第一元素个数与第二元素个数相加,得到与所述多个备选值一一对应的多个错误分类数;
将所述冷热数据阈值更新为所述多个错误分类数中的最小错误分类数对应的备选值。
在本申请一种可能的实现方式中,所述更新模块440还用于:
当所述第二冷热属性的属性值为第一属性值时,将所述当前闪存块对应的第二闪存块个数存入所述热数值集合中,所述第一属性值用于指示所述当前闪存块为热闪存块;
当所述第二冷热属性的属性值为第二属性值时,将所述当前闪存块对应的第二闪存块个数存入所述冷数值集合中,所述第二属性值用于指示所述当前闪存块为冷闪存块。
在本申请实施例中,基于冷热数据阈值,确定当前闪存块的第一冷热属性,也就是通过当前的冷热数据阈值确定当前闪存块为热闪存块还是冷闪存块,当前闪存块为闪存颗粒对应的多个闪存块中被选中的一个闪存块。确定当前闪存块的更新参数,根据更新参数,确定当前闪存块的第二冷热属性,也就是根据更新参数确定当前闪存块为热闪存块还是冷闪存块,由于当前闪存块的更新参数能够更准确地体现实时更新情况,所以确定的第二冷热属性能够更准确地反映当前闪存块的冷热属性。若第二冷热属性与第一冷热属性不同,也就说明该冷热数据阈值不再适用于确定当前闪存块的冷热属性,则对冷热数据阈值进行更新,如此,可以实现对冷热数据阈值的动态更新,以更加准确地确定当前闪存块的冷热属性。
需要说明的是:上述实施例提供的冷热数据阈值的确定装置在冷热数据阈值的确定时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的冷热数据阈值的确定装置与冷热数据阈值的确定方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本申请实施例提供的一种电子设备500的结构框图。该电子设备500可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。电子设备500还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,电子设备500包括有:硬盘的控制器501和存储器502。
硬盘的控制器501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。硬盘的控制器501可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable LogicArray,可编程逻辑阵列)中的至少一种硬件形式来实现。硬盘的控制器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,硬盘的控制器501可以在集成有GPU(GraphicsProcessing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,硬盘的控制器501还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被硬盘的控制器501所执行以实现本申请中方法实施例提供的冷热数据阈值的确定方法。
本领域技术人员可以理解,图5中示出的结构并不构成对电子设备500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在一些实施例中,还提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中冷热数据阈值的确定方法的步骤。例如,所述计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
值得注意的是,本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。所述计算机指令可以存储在上述计算机可读存储介质中。
也即是,在一些实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的冷热数据阈值的确定方法的步骤。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (19)
1.一种冷热数据阈值的确定方法,其特征在于,所述方法包括:
基于冷热数据阈值,确定当前闪存块的第一冷热属性,所述当前闪存块为闪存颗粒对应的多个闪存块中被选中的一个闪存块;
确定所述当前闪存块的更新参数;
根据所述更新参数,确定所述当前闪存块的第二冷热属性;
若所述第二冷热属性与所述第一冷热属性不同,则对所述冷热数据阈值进行更新。
2.如权利要求1所述的方法,其特征在于,所述更新参数是指更新速度,所述确定所述当前闪存块的更新参数,包括:
获取所述当前闪存块内包括的无效逻辑页数据的总数量,所述无效逻辑页数据是指所述当前闪存块内包括的多个逻辑页数据中被置为无效的逻辑页数据;
统计第一闪存块个数,所述第一闪存块个数是指从所述当前闪存块被写入第一个数据时至所述当前闪存块被选中的期间,所述多个闪存块中被用户写满数据的闪存块个数;
将所述无效逻辑页数据的总数量与所述第一闪存块个数之间的比值确定为所述当前闪存块的更新速度。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
获取所述闪存颗粒的平均更新速度,所述平均更新速度是指所述闪存颗粒中一个闪存块内包括的多个逻辑页数据的总数量与所述多个闪存块的总数量之间的比值;
相应地,所述根据所述更新参数,确定所述当前闪存块的第二冷热属性,包括:
当所述更新速度大于所述平均更新速度时,确定所述当前闪存块为热闪存块;和/或,
当所述更新速度小于所述平均更新速度时,确定所述当前闪存块确定为冷闪存块;和/或,
当所述更新速度等于所述平均更新速度时,确定所述当前闪存块确定为热闪存块。
4.如权利要求1所述的方法,其特征在于,所述对所述冷热数据阈值进行更新,包括:
获取热数值集合中的最大值,所述热数值集合中包括已选中的热闪存块对应的第二闪存块个数,所述第二闪存块个数是指从对应的闪存块中写入第一个数据时至所述对应的闪存块被选中的期间,所述多个闪存块中已写满数据的闪存块个数;
获取冷数值集合中的最小值,所述冷数值集合中包括已选中的冷闪存块对应的第二闪存块个数;
基于所述最大值和所述最小值,对所述冷热数据阈值进行更新。
5.如权利要求4所述的方法,其特征在于,所述基于所述最大值和所述最小值,对所述冷热数据阈值进行更新,包括:
当所述最大值小于所述最小值时,将所述冷热数据阈值更新为所述最大值与所述最小值的均值;和/或,
当所述最大值等于所述最小值时,将所述冷热数据阈值更新为所述最大值与所述最小值的均值。
6.如权利要求4所述的方法,其特征在于,
所述热数值集合中包括的元素个数小于或等于指定数量阈值,所述冷数值集合中包括的元素个数小于或等于所述指定数量阈值。
7.如权利要求4所述的方法,其特征在于,所述方法还包括:
当所述最大值大于所述最小值时,获取所述热数值集合中大于或等于所述最小值的元素,得到第一元素集合,以及获取所述冷数值集合中小于或等于所述最大值的元素,得到第二元素集合;
将所述第一元素集合和所述第二元素集合中的元素按照从大至小的顺序进行排序;
确定排序后每相邻两个元素的均值,得到多个备选值;
基于所述多个备选值,对所述冷热数据阈值进行更新。
8.如权利要求7所述的方法,其特征在于,所述基于所述多个备选值,对所述冷热数据阈值进行更新,包括:
确定所述多个备选值中的每个备选值对应的第一元素个数和第二元素个数,所述第一元素个数是指所述第一元素集合中大于对应备选值的元素个数,所述第二元素个数是指所述第二元素集合中小于或等于对应备选值的元素个数;
将所述多个备选值中同一备选值对应的第一元素个数与第二元素个数相加,得到与所述多个备选值一一对应的多个错误分类数;
将所述冷热数据阈值更新为所述多个错误分类数中的最小错误分类数对应的备选值。
9.如权利要求4所述的方法,其特征在于,所述对所述冷热数据阈值进行更新之前,还包括:
当所述第二冷热属性的属性值为第一属性值时,将所述当前闪存块对应的第二闪存块个数存入所述热数值集合中,所述第一属性值用于指示所述当前闪存块为热闪存块;
当所述第二冷热属性的属性值为第二属性值时,将所述当前闪存块对应的第二闪存块个数存入所述冷数值集合中,所述第二属性值用于指示所述当前闪存块为冷闪存块。
10.一种冷热数据阈值的确定装置,其特征在于,所述装置包括:
第一确定模块,用于基于冷热数据阈值,确定当前闪存块的第一冷热属性,所述当前闪存块为闪存颗粒对应的多个闪存块中被选中的一个闪存块;
第二确定模块,用于确定所述当前闪存块的更新参数;
第三确定模块,用于根据所述更新参数,确定所述当前闪存块的第二冷热属性;
更新模块,用于若所述第二冷热属性与所述第一冷热属性不同,则对所述冷热数据阈值进行更新。
11.如权利要求10所述的装置,其特征在于,所述更新参数是指更新速度,所述第二确定模块用于:
获取所述当前闪存块内包括的无效逻辑页数据的总数量,所述无效逻辑页数据是指所述当前闪存块内包括的多个逻辑页数据中被置为无效的逻辑页数据;
统计第一闪存块个数,所述第一闪存块个数是指从所述当前闪存块被写入第一个数据时至所述当前闪存块被选中的期间,所述多个闪存块中被用户写满数据的闪存块个数;
将所述无效逻辑页数据的总数量与所述第一闪存块个数之间的比值确定为所述当前闪存块的更新速度。
12.如权利要求10或11所述的装置,其特征在于,所述第三确定模块还用于:
获取所述闪存颗粒的平均更新速度,所述平均更新速度是指所述闪存颗粒中一个闪存块内包括的多个逻辑页数据的总数量与所述多个闪存块的总数量之间的比值;
当所述更新速度大于所述平均更新速度时,确定所述当前闪存块为热闪存块;和/或,
当所述更新速度小于所述平均更新速度时,确定所述当前闪存块确定为冷闪存块;和/或,
当所述更新速度等于所述平均更新速度时,确定所述当前闪存块确定为热闪存块。
13.如权利要求10所述的装置,其特征在于,所述更新模块用于:
获取热数值集合中的最大值,所述热数值集合中包括已选中的热闪存块对应的第二闪存块个数,所述第二闪存块个数是指从对应的闪存块中写入第一个数据时至所述对应的闪存块被选中的期间,所述多个闪存块中已写满数据的闪存块个数;
获取冷数值集合中的最小值,所述冷数值集合中包括已选中的冷闪存块对应的第二闪存块个数;
基于所述最大值和所述最小值,对所述冷热数据阈值进行更新。
14.如权利要求13所述的装置,其特征在于,所述更新模块用于:
当所述最大值小于所述最小值时,将所述冷热数据阈值更新为所述最大值与所述最小值的均值;和/或,
当所述最大值等于所述最小值时,将所述冷热数据阈值更新为所述最大值与所述最小值的均值。
15.如权利要求13所述的装置,其特征在于,
所述热数值集合中包括的元素个数小于或等于指定数量阈值,所述冷数值集合中包括的元素个数小于或等于所述指定数量阈值。
16.如权利要求13所述的装置,其特征在于,所述更新模块还用于:
当所述最大值大于所述最小值时,获取所述热数值集合中大于或等于所述最小值的元素,得到第一元素集合,以及获取所述冷数值集合中小于或等于所述最大值的元素,得到第二元素集合;
将所述第一元素集合和所述第二元素集合中的元素按照从大至小的顺序进行排序;
确定排序后每相邻两个元素的均值,得到多个备选值;
基于所述多个备选值,对所述冷热数据阈值进行更新。
17.如权利要求16所述的装置,其特征在于,所述更新模块用于:
确定所述多个备选值中的每个备选值对应的第一元素个数和第二元素个数,所述第一元素个数是指所述第一元素集合中大于对应备选值的元素个数,所述第二元素个数是指所述第二元素集合中小于或等于对应备选值的元素个数;
将所述多个备选值中同一备选值对应的第一元素个数与第二元素个数相加,得到与所述多个备选值一一对应的多个错误分类数;
将所述冷热数据阈值更新为所述多个错误分类数中的最小错误分类数对应的备选值。
18.如权利要求13所述的装置,其特征在于,所述更新模块还用于:
当所述第二冷热属性的属性值为第一属性值时,将所述当前闪存块对应的第二闪存块个数存入所述热数值集合中,所述第一属性值用于指示所述当前闪存块为热闪存块;
当所述第二冷热属性的属性值为第二属性值时,将所述当前闪存块对应的第二闪存块个数存入所述冷数值集合中,所述第二属性值用于指示所述当前闪存块为冷闪存块。
19.一种电子设备,其特征在于,包括:
硬盘的控制器;
存储器,所述存储器存储有所述处理器可执行的指令;
其中,所述硬盘的控制器被配置为执行所述指令并实现权利要求1-9所述的任一项方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911355841.3A CN113032288B (zh) | 2019-12-25 | 2019-12-25 | 冷热数据阈值的确定方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911355841.3A CN113032288B (zh) | 2019-12-25 | 2019-12-25 | 冷热数据阈值的确定方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113032288A true CN113032288A (zh) | 2021-06-25 |
CN113032288B CN113032288B (zh) | 2023-02-28 |
Family
ID=76458144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911355841.3A Active CN113032288B (zh) | 2019-12-25 | 2019-12-25 | 冷热数据阈值的确定方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032288B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104362A1 (en) * | 2006-10-25 | 2008-05-01 | Buros William M | Method and System for Performance-Driven Memory Page Size Promotion |
CN102222046A (zh) * | 2011-06-09 | 2011-10-19 | 清华大学 | 一种磨损均衡方法及装置 |
CN102508785A (zh) * | 2011-11-02 | 2012-06-20 | 清华大学 | 一种磨损均衡方法及装置 |
US20130311698A1 (en) * | 2012-05-18 | 2013-11-21 | Silicon Motion, Inc. | Data storage device and method for flash block management |
CN104834609A (zh) * | 2015-05-31 | 2015-08-12 | 上海交通大学 | 基于历史升降级频率的多级缓存方法 |
CN109218211A (zh) * | 2017-07-06 | 2019-01-15 | 阿里巴巴集团控股有限公司 | 数据流的控制策略中阈值的调整方法、装置和设备 |
CN110554999A (zh) * | 2018-05-31 | 2019-12-10 | 华为技术有限公司 | 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 |
-
2019
- 2019-12-25 CN CN201911355841.3A patent/CN113032288B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104362A1 (en) * | 2006-10-25 | 2008-05-01 | Buros William M | Method and System for Performance-Driven Memory Page Size Promotion |
CN102222046A (zh) * | 2011-06-09 | 2011-10-19 | 清华大学 | 一种磨损均衡方法及装置 |
CN102508785A (zh) * | 2011-11-02 | 2012-06-20 | 清华大学 | 一种磨损均衡方法及装置 |
US20130311698A1 (en) * | 2012-05-18 | 2013-11-21 | Silicon Motion, Inc. | Data storage device and method for flash block management |
CN104834609A (zh) * | 2015-05-31 | 2015-08-12 | 上海交通大学 | 基于历史升降级频率的多级缓存方法 |
CN109218211A (zh) * | 2017-07-06 | 2019-01-15 | 阿里巴巴集团控股有限公司 | 数据流的控制策略中阈值的调整方法、装置和设备 |
CN110554999A (zh) * | 2018-05-31 | 2019-12-10 | 华为技术有限公司 | 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 |
Non-Patent Citations (1)
Title |
---|
拓晶: "基于多阈值的闪存磨损均衡算法", 《微电子学与计算机》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113032288B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4109230A1 (en) | Storage system, file storage and reading method, and terminal device | |
US9417794B2 (en) | Including performance-related hints in requests to composite memory | |
CN105637470B (zh) | 用于脏数据管理的方法和计算设备 | |
KR102490908B1 (ko) | 자원 스케줄링 방법 및 단말 장치 | |
US9652382B1 (en) | Look-ahead garbage collection for NAND flash based storage | |
US20140013032A1 (en) | Method and apparatus for controlling writing data in storage unit based on nand flash memory | |
CN103677654A (zh) | 一种存储数据的方法及电子设备 | |
CN105335099A (zh) | 一种内存清理方法及终端 | |
CN103077121B (zh) | 一种闪存存储设备中数据管理的方法及装置 | |
CN109697468B (zh) | 样本图像的标注方法、装置及存储介质 | |
CN111881135A (zh) | 一种数据聚合方法、装置、设备及计算机可读存储介质 | |
CN110069219A (zh) | 一种数据存储方法、系统及电子设备和存储介质 | |
US20190370009A1 (en) | Intelligent swap for fatigable storage mediums | |
WO2024061327A1 (zh) | 矢量地图生成方法、装置、电子设备和可读存储介质 | |
KR102502569B1 (ko) | 시스템 리소스 관리를 위한 방법 및 장치 | |
CN112711387B (zh) | 缓冲区容量的调整方法、装置、电子设备及可读存储介质 | |
CN103412698B (zh) | 触摸屏坐标去抖动方法、系统及触摸屏终端 | |
CN113051317B (zh) | 一种数据挖掘模型更新方法、系统、计算机设备及可读介质 | |
CN114996173B (zh) | 一种管理存储设备写操作的方法和装置 | |
CN109416621B (zh) | 利用支持共享对象的计算机存储系统来恢复非易失性存储中的空闲空间 | |
CN112698793B (zh) | 一种数据存储方法、装置、机器可读介质及设备 | |
CN106055280B (zh) | 一种元数据回写方法和电子设备 | |
CN113032288B (zh) | 冷热数据阈值的确定方法、装置及设备 | |
KR20150142250A (ko) | 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법 | |
CN113625935B (zh) | 减少读干扰影响的方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |