CN112527694A - 碎片化程度告警方法及装置 - Google Patents
碎片化程度告警方法及装置 Download PDFInfo
- Publication number
- CN112527694A CN112527694A CN202011473131.3A CN202011473131A CN112527694A CN 112527694 A CN112527694 A CN 112527694A CN 202011473131 A CN202011473131 A CN 202011473131A CN 112527694 A CN112527694 A CN 112527694A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- memory device
- block
- blocks
- data
- 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.)
- Pending
Links
- 238000013467 fragmentation Methods 0.000 title claims abstract description 139
- 238000006062 fragmentation reaction Methods 0.000 title claims abstract description 139
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000004044 response Effects 0.000 claims description 5
- 238000013139 quantization Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Memory System (AREA)
Abstract
本发明涉及一种碎片化告警方法及装置,所述方法包括:获取所述闪存设备中当前空闲块的数量;获取所述闪存设备中有效页的分布情况;基于所述空闲块的数量和所述有效页的分布情况量化所述闪存设备的碎片化程度。上述告警方法基于空闲块的数量和有效页的分布情况量化闪存设备的碎片化程度,使得用户能够清楚直观的了解闪存设备的碎片化程度,评估存储的真实情况,从而避免由于闪存设备碎片化程度过高导致的数据丢帧,譬如闪存设备应用于行车记录仪时导致录像失败的情况。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种碎片化程度告警方法及装置。
背景技术
碎片是一个文件存贮在存储介质中时,分成了多个分散的区域,而不是一连串连续区域。机械硬盘磁头需要移动,如果有碎片,需要不断移动磁头寻道,速度就会变慢。而NAND闪存(Nand flash)是电子化的,不用寻道,好像碎片化对输入输出(IO)性能影响不大。其实不然,由于闪存本身的特点,碎片化同样会严重影响闪存的IO性能。
闪存设备(无论是NAND存储还是传统硬盘)只负责最底层的物理存储,并不知道所存储的数据到底有什么意义,而将物理设备中的数据组织成目录、文件并赋予它们意义的,是文件系统(File System)负责的工作。文件系统是操作系统的一部分,由操作系统负责管理,不同的操作系统支持的文件系统不一样,例如较古老的FAT16/32/exFAT、Windows的NTFS、OS X的HFS+、Linux的ext(ext2/3/4)等等。
一个文件在物理设备上是存放在多个数据块中的,这些块可以是不连续的,文件系统中会有一张表(例如文件分配表(FAT,File Allocation Table))来管理每个文件的数据所对应的存储位置。那么,在删除文件的时候,操作系统只要将该文件所对应的数据块在文件系统中标记为“空闲”就可以了,根本不需要实际去清除数据块中存放的数据。
对传统硬盘来说,当需要存放新文件时,那些已经标记为“空闲”的数据块就会被当作空的数据块来使用(尽管里面实际上不是空的),对于传统硬盘来说,“写入空白数据块”和“覆盖已有内容的数据块”所需要的操作是完全相同的。对于NAND存储来说,只有“空闲”数据块才能直接执行写入操作;而对于“非空闲”数据块,需要先执行擦除操作之后才能进行写入。
在NAND存储中,数据存储的最小单位是页面(page),若干个页面又被组合成块(block)。由于硬件方面的限制,可以单独对某个页面进行读/写的操作,但擦除操作却只能对整个块进行,也就是说,一旦擦除就必须一次性擦除整个块。这将给NAND存储带来巨大的性能和寿命上的损失。
闪存设备在使用过程中会写入大量的数据,一旦数据写满NAND的整个空间,其写入的速度明显下降,而出现这种情况的原因是由闪存本身的特点所决定的。此时块中将混合有效页和无效页,也就是我们前面提到的碎片化,这会导致频繁的垃圾回收机制GC(Garbage collection)。
以带有NAND存储的行车记录仪为例,当使用一段时间后,可能会出现数据丢帧甚至录像失败的情况,这往往是NAND存储的碎片化导致的,但用户却没有办法了解存储的真实情况。
发明内容
基于此,有必要针对上述问题,提供一种碎片化告警方法及装置。
一种碎片化程度告警方法,用于获取闪存设备的碎片化程度,所述方法包括:
获取所述闪存设备中当前空闲块的数量;
获取所述闪存设备中有效页的分布情况;
基于所述空闲块的数量和所述有效页的分布情况量化所述闪存设备的碎片化程度。
上述告警方法基于空闲块的数量和有效页的分布情况量化闪存设备的碎片化程度,使得用户能够清楚直观的了解闪存设备的碎片化程度,评估存储的真实情况,从而避免由于闪存设备碎片化程度过高导致的数据丢帧,譬如闪存设备应用于行车记录仪时导致录像失败的情况。
在其中一个实施例中,还包括:
将碎片化的各数据块中的有效页的数据分别拷贝到预设的空闲块中;拷贝完成后所述碎片化的数据块成为无效块;
对各所述无效块进行擦除使其重新成为所述空闲块。
在其中一个实施例中,所述获取所述闪存设备中当前空闲块的数量,包括:
建立空闲块链表;所述空闲块链表用于维护所述空闲块,在初始状态时,所述闪存设备中所有所述数据块均链接到所述空闲块链表结构;
当写入数据到所述空闲块时,将该空闲块从所述空闲块链表中移除;
当擦除所述无效块时,将被擦除的所述无效块重新链入所述空闲块链表;
根据所述空闲块链表得到当前所述空闲块的数量。
在其中一个实施例中,所述将碎片化的各数据块中的有效页的数据拷贝到预设的空闲块中的步骤后,至少部分所述预设的空闲块中所有页均为有效页。
在其中一个实施例中,所述将碎片化的各数据块中的有效页的数据分别拷贝到预设的空闲块中步骤之前,还包括:
当需要删除所述数据块中的部分数据时,将需要删除的数据所对应的页标记为无效页;该数据块中其余页为所述有效页。
在其中一个实施例中,所述基于所述空闲块的数量和所述有效页的分布情况量化所述闪存设备的碎片化程度包括:
基于当前所述空闲块的数量和所述闪存设备中数据块的总量,得到所述空闲块的占比;
基于所述有效页的分布情况和所述闪存设备中有效块的个数,得到所述有效块的碎片化值。
在其中一个实施例中,所述空闲块的占比Y满足下式:
Y=x/X
其中,x为当前所述空闲块的数量,X为所述闪存设备中数据块的总量。
在其中一个实施例中,所述有效块的碎片化值Vfragment满足下式:
其中,n为所述闪存设备中数据块的总量,Pi为第i个数据块中有效页的数量且大于零,PMax为数据块中所包含的页的数量,Bvalid为所述有效块的数量。
在其中一个实施例中,还包括:根据所述闪存设备的碎片化程度和预设标准判断所述闪存设备的碎片化程度属于碎片化程度低、碎片化程度中或碎片化程度高。
在其中一个实施例中,还包括:
在寄存器的一个域中记录所述闪存设备的碎片化程度;
接收宿主机发送的操作指令,并根据所述操作指令向所述宿主机发送包含所述寄存器信息的响应数据,以向所述宿主机输出所述闪存设备的碎片化程度。
一种碎片化程度告警装置,用于获取闪存设备的碎片化程度,所述装置包括:
第一获取模块,用于获取所述闪存设备中当前空闲块的数量;
第二获取模块,用于获取所述闪存设备中有效页的分布情况;
量化模块,用于基于所述空闲块的数量和所述有效页的分布情况量化所述闪存设备的碎片化程度。
上述告警装置基于空闲块的数量和有效页的分布情况量化闪存设备的碎片化程度,使得用户能够清楚直观的了解闪存设备的碎片化程度,评估存储的真实情况,从而避免由于闪存设备碎片化程度过高导致的数据丢帧,譬如闪存设备应用于行车记录仪时导致录像失败的情况。
在其中一个实施例中,还包括:
拷贝模块,用于将碎片化的各数据块中的有效页的数据分别拷贝到预设的空闲块中;拷贝完成后所述碎片化的数据块成为无效块;及
擦除模块,用于对各所述无效块进行擦除使其重新成为所述空闲块。
附图说明
图1为一实施例中的碎片化程度告警方法流程图;
图2为一实施例中的碎片化的数据块的示意图;
图3为一实施例中闪存设备经过一段时间的写入后碎片化程度告警方法中还包括的步骤流程图;
图4a为一实施例中数据块A、B及C在拷贝之前的示意图;
图4b为一实施例中数据块A、B及C在拷贝之后的示意图;
图5为一实施例中的步骤S12获取闪存设备中当前空闲块的数量的具体步骤流程图;
图6为一实施例中的空闲块链表示意图;
图7为一实施例中的步骤S16基于空闲块的数量和有效页的分布情况量化闪存设备的碎片化程度的具体步骤流程图;
图8为一实施例中的通过寄存器指定域来向系统级芯片传递闪存设备的碎片程度的具体步骤流程图;
图9为一实施例中的获取SD卡碎片化信息示意图;
图10为一实施例中的碎片化告警装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一实施例中的碎片化程度告警方法流程图。碎片化程度告警方法(以下简称告警方法)用于获取闪存设备的碎片化程度,使得用户了解闪存设备的存储情况,从而避免由于碎片化导致数据丢帧,行车记录仪路录像失败等情况。本实施例中的告警方法不仅适用于NAND闪存,也能够适用于其他电子化闪存设备。如图1所示,告警方法包括以下步骤:
步骤S12,获取闪存设备中当前空闲块的数量。
具体的,初始状态时,闪存设备中所有的数据块(block)中均没有存储数据,所有的数据块均为空闲块(Free block),此时不存在碎片化,读写速度比较稳定,不会出现降速的情况。当闪存设备经过一段时间的写入后,闪存设备中各数据块则会包括有效块、空闲块及无效块,有效块为存储有有效数据的数据块,无效块存储有无效数据的数据块,空闲块为未存储有数据的数据块或曾经存储有数据,一段时间后该数据块被标记为无效块并被执行擦除操作后也会重新成为空闲块。
步骤S14,获取闪存设备中有效页的分布情况。
具体的,初始状态时,闪存设备中所有的数据块(block)中均没有存储数据,所有数据块中的页(page)均为空闲页,空闲页为未存储数据的页,空闲块不存在有效页。参阅图2,当闪存设备经过一段时间的写入后,数据块可能同时包含有效页和无效页,图2中阴影页为无效页,空白页为有效页,有效页存储有有效数据,无效页存储有无效数据。数据块中产生无效页的过程是当需要删除数据块中部分数据时,需要删除的数据所对应的页被标记为无效页,但不需要清除该无效页中的数据,等待GC回收即可,该数据块中未标记为无效页的页即为有效页。获取闪存设备中有效页的分布情况,譬如可以包括各数据块中有效页的数量、分布位置等等。
步骤S16,基于空闲块的数量和有效页的分布情况量化闪存设备的碎片化程度。
具体的,根据空闲块的数量和有效页的分布情况将闪存设备的碎片化程度以量化的形式进行体现。譬如,可以根据空闲页的数量和有效页的分布情况直接将闪存设备的碎片化程度表示为百分比;也可以定义能够表示闪存设备的碎片化程度的参数,譬如空闲页的占比、有效块的碎片化值等,根据空闲页的数量和有效页的分布情况计算这些能够表示碎片化程度的参数,根据这些参数能够知晓闪存设备的碎片化程度。
上述告警方法基于空闲块的数量和有效页的分布情况量化闪存设备的碎片化程度,使得用户能够清楚直观的了解闪存设备的碎片化程度,评估存储的真实情况,从而避免由于闪存设备碎片化程度过高导致的数据丢帧,譬如闪存设备应用于行车记录仪时导致录像失败的情况。
在一实施例中,闪存设备经过一段时间的写入后,当需要删除一些文件时,由于这些文件可能分布在多个数据块中,因此,对于一些数据块只需要删除其中部分页中的数据即可,如图3所示,此时可以执行以下步骤S111。
步骤S111,当需要删除数据块中的部分数据时,将需要删除的数据所对应的页标记为无效页。
具体的,当需要删除数据块中的部分数据,即只需要删除其中部分页的数据时,并不需要实际执行删除数据的操作,只要将需要删除的数据所对应的页标记为无效页,该数据块中其余页为有效页。同时包含有效页和无效页的数据块为碎片化的数据块。
在一实施例中,告警方法还包括对闪存设备内部空间进行清理操作,仍然如图3所示,具体包括以下步骤:
步骤S112,将碎片化的各数据块中的有效页的数据分别拷贝到预设的空闲块中。
具体的,闪存设备经过一段时间的写入后,有些数据块中同时包含有效页和无效页,这些数据块为碎片化的数据块。当GC功能启动后,将碎片化的各数据块中的有效页的数据分别拷贝到预设的空闲块中。拷贝完成后,碎片化的数据块成为无效块,并且预设的空闲块成为有效块。
步骤S113,对各无效块进行擦除使其重新成为空闲块。
具体的,对各无效块进行擦除(Erase)使其重新成为空闲块,恢复空盘水平以准备写入新的数据,闪存设备的存储性能也就恢复了。
本实施例中,通过将各碎片化的数据块中的有效页整合到预设的空闲块中,能够合理利用闪存设备的内部空间,在相等的数据量下,能够占用更少的数据块,从而降低闪存设备的碎片化程度,提高闪存设备的运行速度,避免由于碎片化程度过高造成数据丢帧。
可选的,执行步骤S112将碎片化的各数据块中的有效页的数据分别拷贝到预设的空闲块中后,至少部分预设的空闲块中所有页均为有效页,以图4a和4b为例,数据块A和B均为碎片化的数据块,数据块C为预设的空闲块,假设数据块A、B和C中页的数量为4,数据块A和B中有效页的数量均为2,则将数据块A和B中的有效页的数量拷贝到数据块C中后,数据块A和B均成为无效块,数据块C中所有的页均为有效页,之后,再对数据块A和B进行擦除,使得数据块A和B重新成为空闲块以存储新的用户数据。如此,释放数据块A和B,并且能够更加合理利用数据块C的内部存储空间,从而进一步降低闪存设备的碎片化程度。
在一实施例中,如图5所示,上述步骤S12获取闪存设备中当前空闲块的数量,具体包括以下步骤:
步骤S121,建立空闲块链表。
具体的,如图6所示,建立空闲块链表(free_block_list),空闲块链表用于维护空闲块,空闲块中不存在有效页即有效页的数量为0。在初始状态时,闪存设备中所有数据块均为空闲块,则将所有的数据块均链接到空闲块链表结构。
步骤S122,当写入数据到空闲块时,将该空闲块从空闲块链表中移除。
具体的,当写入数据到任意一个空闲块时,该空闲块则包含了有效页,则该空闲块变为了有效块,将该空闲块(此时成为了有效块)从空闲块链表中移除。
步骤S123,当擦除无效块时,将被擦除的无效块重新链入空闲块链表。
具体的,当GC回收启动该擦除该无效块时,该无效块重新变为了空闲块,将被擦除的无效块重新链入空闲块链表。
步骤S124,根据空闲块链表得到当前空闲块的数量。
具体的,空闲块链表链接有闪存设备的数据块中所有的空闲块,根据空闲块链表容易统计出空闲块的数量。空闲块的数量越多,说明闪存设备的碎片化程度越低,对应的读写速度越稳定,空闲块的数量越少,说明闪存设备的碎片化程度越高,对应的读写速度可能存在降速问题。
在一实施例中,如图7所示,上述步骤S16基于空闲块的数量和有效页的分布情况量化闪存设备的碎片化程度包括以下步骤:
步骤S161,基于当前空闲块的数量和闪存设备中数据块的总量,得到空闲块的占比。
具体的,可以根据下式来计算空闲块的占比:
Y=x/X
其中,x为当前空闲块的数量,X为闪存设备中数据块的总量。
步骤S162,基于有效页的分布情况和闪存设备中有效块的个数,得到有效块的碎片化值。
具体的,有效块的碎片化值Vfragment可以以下式进行计算:
其中,n为闪存设备中数据块的总量,Pi为第i个数据块中有效页的数量且大于零,PMax为数据块中所包含的页的数量,Bvalid为有效块的数量。
n、Pi、PMax均就可以从有效页的分布情况中得到。初始状态下,由于所有的数据块均为空闲块,故所有的数据块中的所有页均为空闲页,当从空闲块链表中选择一个空闲块写入数据时,该空闲块从空闲块链表中脱链,数据被写入脱链的数据块中的空闲页,被写入数据的空闲页状态变为有效页。各有效块中可能混合有有效页和无效页,若有效块中有效页总量占该有效块的容量比例越大,则说明该有效快的碎片化程度越低,若有效块中有效页总量占该有效块的容量比例越小,说明该有效块的碎片化程度越高。最后计算得到的有效块的碎片化值越大说明有效块的碎片化程度越低,有效块的碎片化值越小说明有效块的碎片化程度越高。
本实施例中的空闲块的占比和有效块的碎片化值均为定义的能够表示闪存设备的碎片化的程度的参数。通过空闲块的占比和有效块的碎片化值将闪存设备的碎片化程度进行量化,方便用户直观的了解闪存设备的存储情况。
在一实施例中,告警方法还包括根据闪存设备的碎片化程度和预设标准判断闪存设备的碎片化程度属于碎片化程度低、碎片化程度中或碎片化程度高的步骤。
具体的,预设标准可以根据实际需求进行设置。譬如,在闪存设备的碎片化的程度的参数包括空闲块的占比时,预设标准可以包括5%、10%及1%,当空闲块的占比超过10%时,可以认为闪存设备的碎片化程度低;当空闲块的占比介于5%至10%之间时,可以认为闪存设备的碎片化程度中,即闪存设备的碎片化程度有加重的趋势,此时可以启动GC功能来释放更多的空闲块;当空闲块的占比小于1%时,可以认为闪存设备的碎片化程度高,其读写速度极有可能出现异常。类似的,在闪存设备的碎片化的程度的参数包括有效块的碎片化值时,同样可以设置对应的预设标准,根据有效块的碎片化值和预设标准判断闪存设备的碎片化程度属于碎片化程度低、碎片化程度中或碎片化程度高。
在其他实施例中,也可以将闪存设备的碎片化程度设置为一级碎片化程度、二级碎片化程度、三级碎片化程度、四级碎片化程度等等。
在一实施例中,如图8所示,告警方法还包括系统级芯片(SOC,System on chip)通过寄存器指定域来向宿主机(HOST)传递闪存设备的碎片程度的具体步骤:
步骤S81,在寄存器的一个域中记录闪存设备的碎片化程度。
具体的,闪存设备的寄存器和域均可以根据闪存设备的类型进行选取。譬如,当闪存设备为安全数码卡(SD,Secure Digital Memory Card)时,SD卡共有8个寄存器,用于设定或表示SD卡信息。这些寄存器只能通过对应的命令访问,对SD卡进行控制操作并不是像操作控制器通用型输入输出(GPIO,General-purpose input/output)相关寄存器那样一次读写一个寄存器的,它是通过命令提示符(CMD,Command Prompt)来控制,安全数字输入输出卡(SDIO,Secure Digital Input and Output)定义了若干个命令,每个命令都有特殊意义,可以实现某一特定功能,SD卡接收到命令后,根据命令要求对SD卡内部寄存器进行修改,程序控制中只需要发送组合命令就可以实现SD卡的控制以及读写操作。
因此我们可以选择一个寄存器用来在宿主机(HOST)和SD卡的SOC之间传递闪存设备的碎片化程度信息。譬如,可以选定描述数据寄存器(CSD)的revered域(29:30这2个bit)来记录NAND存储的碎片化程度信息。其中,00b可以标识碎片化程度低,01b可以标识碎片化程度中,10b可以标识碎片化程度高。
步骤S82,接收宿主机发送的操作指令,并根据操作指令向宿主机发送包含寄存器信息的响应数据,以向宿主机输出闪存设备的碎片化程度。
具体的,仍然以上述SD为例,如图9所示,首先HOST发送CMD9命令给SD的SOC,当SOC收到CMD9命令后,提前将对应的NAND存储碎片化程度信息记录到CSD寄存器的revered域,并向HOST发送包含CSD寄存器信息的响应数据。
需要说明的是,闪存设备并不限于SD,还可以是内嵌式存储器eMMC(EmbeddedMulti Media Card)、固态驱动器(SSD,Solid State Disk)等闪存设备。寄存器除了CSD也可以是其他寄存器。
本申请还提供一种碎片化程度告警装置,用于获取闪存设备的碎片化程度,如图10所示,碎片化程度告警装置100包括第一获取模块110、第二获取模块120及量化模块130。第一获取模块110用于获取闪存设备中当前空闲块的数量;第二获取模块120用于获取闪存设备中有效页的分布情况;量化模块130用于基于空闲块的数量和有效页的分布情况量化闪存设备的碎片化程度。
上述告警装置基于空闲块的数量和有效页的分布情况量化闪存设备的碎片化程度,使得用户能够清楚直观的了解闪存设备的碎片化程度,评估存储的真实情况,从而避免由于闪存设备碎片化程度过高导致的数据丢帧,譬如闪存设备应用于行车记录仪时导致录像失败的情况。
在一实施例中,告警装置110还包括拷贝模块和擦除模块。拷贝模块用于将碎片化的各数据块中的有效页的数据分别拷贝到预设的空闲块中;拷贝完成后所述碎片化的数据块成为无效块;擦除模块用于对各所述无效块进行擦除使其重新成为所述空闲块。
在一实施例中,第一获取模块110执行以下步骤:
建立空闲块链表;空闲块链表用于维护空闲块,在初始状态时,闪存设备中所有数据块均链接到空闲块链表结构;
当写入数据到所述空闲块时,将该空闲块从空闲块链表中移除;
当擦除无效块时,将被擦除的无效块重新链入空闲块链表;
根据空闲块链表得到当前空闲块的数量。
在一实施例中,将碎片化的各数据块中的有效页的数据拷贝到预设的空闲块中的步骤后,至少部分预设的空闲块中所有页均为有效页。
在一实施例中,将碎片化的各数据块中的有效页的数据分别拷贝到预设的空闲块中步骤之前,还包括:
当需要删除数据块中的部分数据时,将需要删除的数据所对应的页标记为无效页;该数据块中其余页为有效页。
在一实施例中,量化模块130执行以下步骤:
基于当前空闲块的数量和闪存设备中数据块的总量,得到空闲块的占比;
基于有效页的分布情况和闪存设备中有效块的个数,得到有效块的碎片化值。
在一实施例中,空闲块的占比Y满足下式:
Y=x/X
其中,x为当前空闲块的数量,X为闪存设备中数据块的总量。
在一实施例中,有效块的碎片化值Vfragment满足下式:
其中,n为闪存设备中数据块的总量,Pi为第i个数据块中有效页的数量且大于零,PMax为数据块中所包含的页的数量,Bvalid为有效块的数量。
在一实施例中,还包括:判断模块,用于根据所述闪存设备的碎片化程度和预设标准判断所述闪存设备的碎片化程度属于碎片化程度低、碎片化程度中或碎片化程度高。
在一实施例中,还包括传输模块,用于执行以下步骤:
在寄存器的一个域中记录闪存设备的碎片化程度;
接收宿主机发送的操作指令,并根据操作指令向宿主机发送包含寄存器信息的响应数据,以向宿主机输出所述闪存设备的碎片化程度。
上述碎片化告警方法和装置可以在闪存设备SOC(System on Chip)的固件(Firmware)中实现。固件接收到宿主机(HOST)发送的查询闪存碎片化程度的CMD命令,通过上述方法返回闪存碎片化程度的相应信息。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种碎片化程度告警方法,其特征在于,用于获取闪存设备的碎片化程度,所述方法包括:
获取所述闪存设备中当前空闲块的数量;
获取所述闪存设备中有效页的分布情况;
基于所述空闲块的数量和所述有效页的分布情况量化所述闪存设备的碎片化程度。
2.根据权利要求1所述的方法,其特征在于,还包括:
将碎片化的各数据块中的有效页的数据分别拷贝到预设的空闲块中;拷贝完成后所述碎片化的数据块成为无效块;
对各所述无效块进行擦除使其重新成为所述空闲块。
3.根据权利要求2所述的方法,其特征在于,所述获取所述闪存设备中当前空闲块的数量,包括:
建立空闲块链表;所述空闲块链表用于维护所述空闲块,在初始状态时,所述闪存设备中所有所述数据块均链接到所述空闲块链表;
当写入数据到所述空闲块时,将该空闲块从所述空闲块链表中移除;
当擦除所述无效块时,将被擦除的所述无效块重新链入所述空闲块链表;
根据所述空闲块链表得到当前所述空闲块的数量。
4.根据权利要求1所述的方法,其特征在于,所述基于所述空闲块的数量和所述有效页的分布情况量化所述闪存设备的碎片化程度包括:
基于当前所述空闲块的数量和所述闪存设备中数据块的总量,得到所述空闲块的占比;
基于所述有效页的分布情况和所述闪存设备中有效块的个数,得到所述有效块的碎片化值。
5.根据权利要求4所述的方法,其特征在于,所述空闲块的占比Y满足下式:
Y=x/X
其中,x为当前所述空闲块的数量,X为所述闪存设备中数据块的总量。
7.根据权利要求1所述的方法,其特征在于,还包括:根据所述闪存设备的碎片化程度和预设标准判断所述闪存设备的碎片化程度属于碎片化程度低、碎片化程度中或碎片化程度高。
8.根据权利要求1所述的方法,其特征在于,还包括:
在寄存器的一个域中记录所述闪存设备的碎片化程度;
接收宿主机发送的操作指令,并根据所述操作指令向所述宿主机发送包含所述寄存器信息的响应数据,以向所述宿主机输出所述闪存设备的碎片化程度。
9.一种碎片化程度告警装置,其特征在于,用于获取闪存设备的碎片化程度,所述装置包括:
第一获取模块,用于获取所述闪存设备中当前空闲块的数量;
第二获取模块,用于获取所述闪存设备中有效页的分布情况;
量化模块,用于基于所述空闲块的数量和所述有效页的分布情况量化所述闪存设备的碎片化程度。
10.根据权利要求9所述的装置,其特征在于,还包括:
拷贝模块,用于将碎片化的各数据块中的有效页的数据分别拷贝到预设的空闲块中;拷贝完成后所述碎片化的数据块成为无效块;及
擦除模块,用于对各所述无效块进行擦除使其重新成为所述空闲块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011473131.3A CN112527694A (zh) | 2020-12-15 | 2020-12-15 | 碎片化程度告警方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011473131.3A CN112527694A (zh) | 2020-12-15 | 2020-12-15 | 碎片化程度告警方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112527694A true CN112527694A (zh) | 2021-03-19 |
Family
ID=74999847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011473131.3A Pending CN112527694A (zh) | 2020-12-15 | 2020-12-15 | 碎片化程度告警方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527694A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115168298A (zh) * | 2022-06-09 | 2022-10-11 | 荣耀终端有限公司 | 文件系统碎片化的评估方法及电子设备 |
CN116701298A (zh) * | 2022-11-22 | 2023-09-05 | 荣耀终端有限公司 | 一种文件系统管理方法及电子设备 |
WO2024020707A1 (en) * | 2022-07-25 | 2024-02-01 | Micron Technology, Inc. | Memory performance evaluation using address mapping information |
CN116701298B (zh) * | 2022-11-22 | 2024-06-07 | 荣耀终端有限公司 | 一种文件系统管理方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120239899A1 (en) * | 2011-03-16 | 2012-09-20 | International Business Machines Corporation | Leasing Fragmented Storage Between Processes |
US20150143030A1 (en) * | 2013-11-21 | 2015-05-21 | Sandisk Technologies Inc. | Update Block Programming Order |
CN106527971A (zh) * | 2016-10-08 | 2017-03-22 | 华中科技大学 | 一种提升ssd在垃圾回收器件期间读性能的方法 |
CN111258972A (zh) * | 2020-01-10 | 2020-06-09 | Oppo广东移动通信有限公司 | 闪存文件系统碎片化的评估方法、装置以及电子设备 |
CN111433752A (zh) * | 2017-11-09 | 2020-07-17 | 美光科技公司 | 基于ufs的空闲时间废弃项目收集管理 |
-
2020
- 2020-12-15 CN CN202011473131.3A patent/CN112527694A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120239899A1 (en) * | 2011-03-16 | 2012-09-20 | International Business Machines Corporation | Leasing Fragmented Storage Between Processes |
US20150143030A1 (en) * | 2013-11-21 | 2015-05-21 | Sandisk Technologies Inc. | Update Block Programming Order |
CN106527971A (zh) * | 2016-10-08 | 2017-03-22 | 华中科技大学 | 一种提升ssd在垃圾回收器件期间读性能的方法 |
CN111433752A (zh) * | 2017-11-09 | 2020-07-17 | 美光科技公司 | 基于ufs的空闲时间废弃项目收集管理 |
CN111258972A (zh) * | 2020-01-10 | 2020-06-09 | Oppo广东移动通信有限公司 | 闪存文件系统碎片化的评估方法、装置以及电子设备 |
Non-Patent Citations (2)
Title |
---|
CHAO SUN .ETC: "LBA Scrambler:A NAND Flash Aware Data Management Scheme for High-Performance Solid-State Drives", 《IEEE TRANSACTION ON VERY LARGE SCALE INTEGRATION》, vol. 24, no. 1, pages 115 - 128, XP011596273, DOI: 10.1109/TVLSI.2015.2396515 * |
方才华等: "全程优化的固态硬盘垃圾回收方法", 《计算机应用》, vol. 37, pages 1257 - 1262 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115168298A (zh) * | 2022-06-09 | 2022-10-11 | 荣耀终端有限公司 | 文件系统碎片化的评估方法及电子设备 |
WO2024020707A1 (en) * | 2022-07-25 | 2024-02-01 | Micron Technology, Inc. | Memory performance evaluation using address mapping information |
CN116701298A (zh) * | 2022-11-22 | 2023-09-05 | 荣耀终端有限公司 | 一种文件系统管理方法及电子设备 |
CN116701298B (zh) * | 2022-11-22 | 2024-06-07 | 荣耀终端有限公司 | 一种文件系统管理方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10007468B2 (en) | Method and apparatus for erasing data in data section in flash memory | |
US5235695A (en) | Apparatus for efficient utilization of removable data recording media | |
EP2631916B1 (en) | Data deletion method and apparatus | |
EP0406189B1 (en) | A method for efficient utilization of removable data recording media | |
US7805584B2 (en) | Method and system for restoring data | |
US9489297B2 (en) | Pregroomer for storage array | |
US8626996B2 (en) | Solid state memory (SSM), computer system including an SSM, and method of operating an SSM | |
US9256542B1 (en) | Adaptive intelligent storage controller and associated methods | |
US7694087B2 (en) | Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device | |
US9940040B2 (en) | Systems, solid-state mass storage devices, and methods for host-assisted garbage collection | |
US9639275B2 (en) | Managing data within a storage device based on file system metadata | |
US8332581B2 (en) | Stale track initialization in a storage controller | |
WO2003088044A1 (fr) | Dispositif de stockage de donnees | |
US11204864B2 (en) | Data storage devices and data processing methods for improving the accessing performance of the data storage devices | |
CN112527694A (zh) | 碎片化程度告警方法及装置 | |
US11176033B2 (en) | Data storage devices and data processing methods | |
KR20140038110A (ko) | 파일 시스템 관리 방법 및 이를 이용하는 장치 | |
US7120766B2 (en) | Apparatus and method to initialize information disposed in an information storage and retrieval system | |
KR101247388B1 (ko) | 하이브리드-매핑 ftl에서 trim 명령어를 처리하기 위한 방법 및 장치 | |
JP2008262452A (ja) | 記録デバイスのキャッシュ方法および記録装置 | |
CN109725853B (zh) | 一种数据回收方法及装置 | |
CN110389706B (zh) | 一种指纹回收方法以及存储系统 | |
KR102491776B1 (ko) | 데이터 삭제 방법 및 장치 | |
US20090049226A1 (en) | Stale track initialization in a storage controller | |
CN113778337B (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 |