CN110688325B - 一种固态硬盘的垃圾回收方法、装置、设备及存储介质 - Google Patents
一种固态硬盘的垃圾回收方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110688325B CN110688325B CN201910838332.XA CN201910838332A CN110688325B CN 110688325 B CN110688325 B CN 110688325B CN 201910838332 A CN201910838332 A CN 201910838332A CN 110688325 B CN110688325 B CN 110688325B
- Authority
- CN
- China
- Prior art keywords
- reading
- task
- read
- unit data
- tasks
- 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.)
- Active
Links
- 239000010813 municipal solid waste Substances 0.000 title claims abstract description 68
- 239000007787 solid Substances 0.000 title claims abstract description 53
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000004064 recycling Methods 0.000 title claims abstract description 20
- 230000000977 initiatory effect Effects 0.000 claims abstract description 18
- 238000011084 recovery Methods 0.000 claims abstract 3
- 238000004590 computer program Methods 0.000 claims description 11
- 230000001737 promoting effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004904 shortening Methods 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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)
- Memory System (AREA)
Abstract
本发明公开了一种固态硬盘的垃圾回收方法、装置、设备及计算机可读存储介质,该方法包括:读取L2P表,获取需要读的单位数据对应的读任务;其中,单位数据为预设单位大小的数据;判断当前读任务之后n个的读任务中,是否存在当前读任务对应的同批读任务;其中,同批读任务对应的单位数据与当前读任务对应的单位数据同属于一个存储页;若是,则发起当前读任务和同批读任务对应的单位数据共同的读操作;本发明通过发起同属于一个存储页的多个单位数据共同的读操作,使固态硬盘的垃圾回收中的读操作的单位由一个单位数据提升到多个单位数据,可以减少读操作的个数,增大命中cache的概率,从而提升垃圾回收的效率,提高固态硬盘的随机写性能。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种固态硬盘的垃圾回收方法、装置、设备及计算机可读存储介质。
背景技术
随着现代社会科技的发展,计算机中越来越多的使用固态硬盘进行数据存储。
现有技术中,由于固态硬盘中的l2p表(逻辑物理映射表)是以4k为单位的,对应的垃圾回收(garbage collection,gc)也是以4k为单位执行flash read(或nand read)操作,而实际flash read操作是以page为单位进行。当执行flash read操作时,均读取1个page(存储页,如16k)的数据到其本地cache(高速缓冲存储器),然后从cache中选取实际需要的4k数据提供出去。每个lun(逻辑单元号)都有独立的cache,供读/写/擦操作使用,更换操作类型时,写->读,会有cache清空动作。如果读操作完,没有写/擦操作的话,cache中的数据会一直保留,如果后续还有读操作,会首先check(检查)数据有没有在cache里,如果在,直接从cache里取,如果没有,则执行flash read到cache,也即cache中的数据刷新成了新的page数据。当前垃圾回收的读操作(gc read)以4k为单位,如果第2个读操作和第1个读操作同属于一个page,如果期间没有写/擦操作,那么会命中cache,即从cache中读取数据,省去了flash read的时间(如100us)。
从固态硬盘的垃圾回收的各阶段效率来看,flash read相较于flash write效率较低,也即组gc条带时间较长,影响了垃圾回收整体效率。因此,如何能够提高固态硬盘的垃圾回收效率,从而提高固态硬盘的随机写性能,是现今急需解决的问题。
发明内容
本发明的目的是提供一种固态硬盘的垃圾回收方法、装置、设备及计算机可读存储介质,以通过增大垃圾回收的读操作的数据量,提升命中cache的概率,提高固态硬盘的垃圾回收效率。
为解决上述技术问题,本发明提供一种固态硬盘的垃圾回收方法,包括:
读取L2P表,获取需要读的单位数据对应的读任务;其中,所述单位数据为预设单位大小的数据;
判断当前读任务之后n个的所述读任务中,是否存在当前读任务对应的同批读任务;其中,所述同批读任务对应的单位数据与当前读任务对应的单位数据同属于一个存储页;n大于或等于1,且小于或等于m减1的差;m为存储页大小除以所述预设单位大小的商;
若是,则发起当前读任务和所述同批读任务对应的单位数据共同的读操作;
若否,则发起当前读任务对应的单位数据的读操作。
可选的,所述读取L2P表,获取需要读的单位数据对应的读任务,包括:
读取所述L2P表,依次判断每个所述单位数据是否需要读;
生成需要读的所述单位数据对应的读任务,并将所述读任务挂接到待处理链表。
可选的,当前读任务为待处理链表中的第一个所述读任务时,所述判断当前读任务之后第一预设数量的所述读任务中,是否存在当前读任务对应的同批读任务,包括:
判断所述待处理链表中的第二个所述读任务至第n+1个所述读任务中,是否存在第一个所述读任务对应的同批读任务;
若是,则执行所述当前读任务和所述同批读任务对应的单位数据共同的读操作的步骤,并更新所述待处理链表;
若否,则执行所述发起当前读任务对应的单位数据的读操作的步骤,并更新所述待处理链表。
可选的,所述判断所述待处理链表中的第二个所述读任务至第n+1个所述读任务中,是否存在第一个所述读任务对应的同批读任务之前,还包括:
判断所述待处理链表中的所述读任务的数量是否大于或等于n+1;
若是,则执行所述判断所述待处理链表中的第二个所述读任务至第n+1个所述读任务中,是否存在第一个所述读任务对应的同批读任务的步骤。
可选的,所述预设单位大小为4K,所述存储页大小为16K。
可选的,n为3。
本发明还提供了一种固态硬盘的垃圾回收装置,包括:
读取模块,用于读取L2P表,获取需要读的单位数据对应的读任务;其中,所述单位数据为预设单位大小的数据;
判断模块,用于判断当前读任务之后n个的所述读任务中,是否存在当前读任务对应的同批读任务;其中,所述同批读任务对应的单位数据与当前读任务对应的单位数据同属于一个存储页;n大于或等于1,且小于或等于m减1的差;m为存储页大小除以所述预设单位大小的商;
读操作模块,用于若存在当前读任务对应的同批读任务,则发起当前读任务和所述同批读任务对应的单位数据共同的读操作;若不存在当前读任务对应的同批读任务,则发起当前读任务对应的单位数据的读操作。
本发明还提供了一种固态硬盘的垃圾回收设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述的固态硬盘的垃圾回收方法的步骤。
此外,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的固态硬盘的垃圾回收方法的步骤。
本发明所提供的一种固态硬盘的垃圾回收方法,包括:读取L2P表,获取需要读的单位数据对应的读任务;其中,单位数据为预设单位大小的数据;判断当前读任务之后n个的读任务中,是否存在当前读任务对应的同批读任务;其中,同批读任务对应的单位数据与当前读任务对应的单位数据同属于一个存储页;n大于或等于1,且小于或等于m减1的差;m为存储页大小除以预设单位大小的商;若是,则发起当前读任务和同批读任务对应的单位数据共同的读操作;若否,则发起当前读任务对应的单位数据的读操作;
可见,本发明通过发起同属于一个存储页的多个单位数据共同的读操作,使得固态硬盘的垃圾回收中的读操作的单位由一个单位数据提升到了多个单位数据,可以减少读操作的个数,增大命中cache的概率,从而缩短了组gc条带时间,提升了垃圾回收的效率,提高了固态硬盘的随机写性能。此外,本发明还提供了一种固态硬盘的垃圾回收装置、设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种固态硬盘的垃圾回收方法的流程图;
图2为本发明实施例所提供的一种固态硬盘的垃圾回收装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种固态硬盘的垃圾回收方法的流程图。该方法可以包括:
步骤101:读取L2P表,获取需要读的单位数据对应的读任务;其中,单位数据为预设单位大小的数据。
其中,本步骤可以为固态硬盘的垃圾回收过程中,处理器读取固体硬盘中的L2P表(逻辑物理映射表),确定需要读的单位数据,从而获取对应的读任务,即本实施例中可以通过处理读任务,对需要读的单位数据进行读操作。具体的,对于本实施例中的读任务的具体内容,可以由设计人员自行设置,只要保证处理器可以通过读任务查找到对应的需要读的单位数据,从而对该单位数据进行读操作,本实施例对此不做任何限制。
具体的,本步骤中的需要读的单位数据可以为垃圾回收过程中需要进行读操作(gc read)的预设单位大小的数据。对于单位数据的具体大小,即预设单位大小的具体数值设置,可以由设计人员根据实用场景和用户需求自行设置,如可以根据L2P表的单位大小对应进行设置,例如L2P表以4k为单位时,单位数据可以为4K的数据,即预设单位大小为4K。预设单位大小也可以为其他大小,2K或512字节等,本实施例对此不做任何限制。
需要说明的是,对于本步骤中处理器读取L2P表,获取需要读的单位数据对应的读任务的具体方式,可以由设计人员自行设置,如为了方便后续对读任务的处理,可以将读任务挂接到待处理链表(pending_list),也就是说,本步骤中处理器可以在垃圾回收过程中,读取L2P表,依次判断每个单位数据是否需要读;生成需要读的单位数据对应的读任务,并将读任务挂接到待处理链表,即待处理链表中的读任务的存储顺序与读任务的生成顺序和后续的处理顺序相对应。
步骤102:判断当前读任务之后n个的读任务中,是否存在当前读任务对应的同批读任务;若是,则进入步骤103;若否,则进入步骤104;其中,同批读任务对应的单位数据与当前读任务对应的单位数据同属于一个存储页。
可以理解的是,本步骤中的n可以为大于或等于1且小于或等于m-1的正整数;m为存储页大小除以预设单位大小的商,如存储页(page)大小为16K,预设单位大小为4K时,m为4,n大于或等于1且小于或等于3的正整数。本步骤中的当前读任务可以为当前时刻需要进行处理的读任务。
对应的,由于垃圾回收过程中通过读取L2P表确定需要读的单位数据,因此,若需要读的多个单位数据同属于一个存储页,则对应获取的多个读任务必然连续。也就是说,本步骤中通过判断判断当前读任务之后n个的读任务中,是否存在当前读任务对应的同批读任务,可以确定当前读任务之后n个的读任务中是否存在可以与当前读任务共同处理的读任务(同批读任务),从而可以对当前读任务对应的单位数据和同批读任务对应的与该单位数据同属于一个存储页的单位数据共同进行读操作,使得仅需一次flash read将存储页大小的数据(page数据)缓存到cache中,便可以读取到当前读任务和同批读任务各自对应的单位数据,减少了读操作的个数,且减少了现有技术中一次flash read后cache中的数据被刷新的情况,提高了命中cache的概率。
具体的,对于本步骤中n的具体数值设置,即每次读操作的读取的最大数据量的大小,可以由设计人员根据实用场景和用户需求自行设置,如n可以设置为m-1,即每次读操作的读取的最大数据量为存储页大小,从而保证一次读操作可以读取同属于一个存储页的全部单位数据,例如存储页大小为16K,预设单位大小为4K时,n可以设置为3,本步骤可以判断当前读任务之后3个的读任务中,是否存在当前读任务对应的同批读任务,即当前读任务之后3个的读任务对应的3个4K数据中是否存在与当前读任务对应的4K数据同属于一个存储页的4K数据。n也可以为小于m-1且大于或等于1的数据,即每次读操作的读取的最大数据量为n+1个单位数据的大小,例如存储页大小为16K,预设单位大小为4K时,n可以设置为1,本步骤可以判断当前读任务之后1个的读任务是否为当前读任务对应的同批读任务,即当前读任务之后1个的读任务对应的4K数据是否与当前读任务对应的4K数据同属于一个存储页。
需要说明的是,对于本步骤中判断当前读任务之后n个的读任务中,是否存在当前读任务对应的同批读任务的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如处理器每次均对待处理链表中的第一个读任务进行处理时,即当前读任务为待处理链表中的第一个读任务时,本步骤可以判断待处理链表中的第二个读任务至第n+1个读任务中,是否存在第一个读任务对应的同批读任务;例如存储页大小为16K,预设单位大小为4K,n为3时,处理器可以待处理链表中的第2个读任务至第4个读任务中,是否存在第1个读任务对应的同批读任务。
对应的,对于本步骤的具体启动时间,可以由设计人员自行设置,如本步骤进行之前可以包括判断已经获取的未处理的读任务的数量大于或等于预设数值的步骤;若是,则进入本步骤;其中,预设数值大于或等于n+1,即通过预设数值的设置保证已经获取的未处理的读任务的数量大于或等于n+1,从而保证本步骤可以顺利进行;例如读任务在待处理链表中存储时,本步骤之前可以判断待处理链表中的读任务的数量是否大于或等于n+1;若是,则执行本步骤判断待处理链表中的第二个读任务至第n+1个读任务中,是否存在第一个读任务对应的同批读任务;若否,则可以继续进行步骤101或等待步骤101中读任务的生成。也可以按预设时间间隔进行本步骤,即预设时间间隔的具体数值设置保证本步骤进行之前已经获取的未处理的读任务的数量大于或等于n+1。本实施例对此不做任何限制。
具体的,本实施例并不限定本步骤与步骤101的先后顺序,可以先进行步骤101再进行本步骤,如可以每将一个读任务挂接到待处理链表后,判断待处理链表中的读任务的数量是否大于或等于n+1;若是,则进入本步骤;若否,则返回步骤101进行将下一个读任务挂接到待处理链表。也可以同时进行本步骤与步骤101,如步骤101持续将读任务挂接到待处理链表;在待处理链表中的读任务的数量大于或等于n+1时,进行本步骤;在待处理链表中的读任务的数量小于n+1时,等待步骤101的进行。
步骤103:发起当前读任务和同批读任务对应的单位数据共同的读操作。
可以理解的是,本步骤的目的可以为通过发起当前读任务和同批读任务对应的单位数据共同的读操作,使得一次读操作可以读取当前读任务和同批读任务对应的多个单位数据,同时完成当前读任务和同批读任务的处理,从而读操作的个数,增大命中cache的概率。例如存储页大小为16K,预设单位大小为4K,n为3时,垃圾回收的读操作(gc read)能够以16K为单位,即读操作一次最多可以读取4个4K数据(如同批读任务的数量为3),即16K数据。
具体的,本步骤中当前读任务为待处理链表中的第1个读任务时,若同批读任务数量为3,本步骤中可以发起待处理链表中的第1个读任务至第4个读任务对应的单位数据共同的读操作;并通过将前4个读任务从待处理链表中移除,将之后的读任务前移的操作,更新待处理链表,即将原本第5个读任务前移至第1个读任务,以便进行下一次的读任务处理。
步骤104:发起当前读任务对应的单位数据的读操作。
具体的,当前读任务为待处理链表中的第1个读任务时,本步骤中可以发起待处理链表中的第1个读任务对应的单位数据的读操作;并通过将第1个读任务从待处理链表中移除,将之后的读任务前移的操作,更新待处理链表,即将原本第2个读任务前移至第1个读任务,以便进行下一次的读任务处理。
可以理解的是,本实施例是为增加固态硬盘的垃圾回收过程中的读操作读取的同属于一个存储页的单位数据的数量,对于本步骤与步骤103发起读操作之后的垃圾回收过程,可以采用与现有技术中固态硬盘的垃圾回收过程相同或相似的方式进行,本实施例对此不做任何限制。
本实施例中,本发明实施例通过发起同属于一个存储页的多个单位数据共同的读操作,使得固态硬盘的垃圾回收中的读操作的单位由一个单位数据提升到了多个单位数据,可以减少读操作的个数,增大命中cache的概率,从而缩短了组gc条带时间,提升了垃圾回收的效率,提高了固态硬盘的随机写性能。
请参考图2,图2为本发明实施例所提供的一种固态硬盘的垃圾回收装置的结构框图。该装置可以包括:
读取模块10,用于读取L2P表,获取需要读的单位数据对应的读任务;其中,单位数据为预设单位大小的数据;
判断模块20,用于判断当前读任务之后n个的读任务中,是否存在当前读任务对应的同批读任务;其中,同批读任务对应的单位数据与当前读任务对应的单位数据同属于一个存储页;n大于或等于1,且小于或等于m减1的差;m为存储页大小除以预设单位大小的商;
读操作模块30,用于若存在当前读任务对应的同批读任务,则发起当前读任务和同批读任务对应的单位数据共同的读操作;若不存在当前读任务对应的同批读任务,则发起当前读任务对应的单位数据的读操作。
可选的,读取模块10,包括:
读取子模块,用于读取L2P表,依次判断每个单位数据是否需要读;
挂接子模块,用于生成需要读的单位数据对应的读任务,并将读任务挂接到待处理链表。
可选的,判断模块20,包括:
判断子模块,用于判断待处理链表中的第二个读任务至第n+1个读任务中,是否存在第一个读任务对应的同批读任务。
可选的,该装置还包括:
数量判断模块,用于判断待处理链表中的读任务的数量是否大于或等于n+1;若是,则向判断模块20发送启动信号。
本实施例中,本发明实施例通过读操作模块30发起同属于一个存储页的多个单位数据共同的读操作,使得固态硬盘的垃圾回收中的读操作的单位由一个单位数据提升到了多个单位数据,可以减少读操作的个数,增大命中cache的概率,从而缩短了组gc条带时间,提升了垃圾回收的效率,提高了固态硬盘的随机写性能。
本发明实施例还提供了一种固态硬盘的垃圾回收设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述实施例所提供的固态硬盘的垃圾回收方法的步骤。
其中,本实施例中的存储器至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器在一些实施例中可以是固态硬盘的垃圾回收设备的内部存储单元,例如固态硬盘的垃圾回收设备的硬盘。存储器在另一些实施例中也可以是固态硬盘的垃圾回收设备的外部存储设备,例如固态硬盘的垃圾回收设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digita,SD)卡,闪存卡(Flash Card)等。进一步地,存储器还可以既包括固态硬盘的垃圾回收设备的内部存储单元也包括外部存储设备。存储器不仅可以用于存储安装于固态硬盘的垃圾回收设备的应用软件及各类数据,例如:执行固态硬盘的垃圾回收方法的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
本实施例中的处理器在一些实施例中可以是一中央处理器(Central ProcessingUnit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器中存储的程序代码或处理数据,例如执行固态硬盘的垃圾回收方法的程序的代码等。
此外,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述实施例所提供的固态硬盘的垃圾回收方法的步骤。
其中,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种固态硬盘的垃圾回收方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (9)
1.一种固态硬盘的垃圾回收方法,其特征在于,包括:
读取L2P表,获取需要读的单位数据对应的读任务;其中,所述单位数据为预设单位大小的数据;
判断当前读任务之后n个的所述读任务中,是否存在当前读任务对应的同批读任务;其中,所述同批读任务对应的单位数据与当前读任务对应的单位数据同属于一个存储页;n大于或等于1,且小于或等于m减1的差;m为存储页大小除以所述预设单位大小的商;
若是,则发起当前读任务和所述同批读任务对应的单位数据共同的读操作;
若否,则发起当前读任务对应的单位数据的读操作。
2.根据权利要求1所述的固态硬盘的垃圾回收方法,其特征在于,所述读取L2P表,获取需要读的单位数据对应的读任务,包括:
读取所述L2P表,依次判断每个所述单位数据是否需要读;
生成需要读的所述单位数据对应的读任务,并将所述读任务挂接到待处理链表。
3.根据权利要求2所述的固态硬盘的垃圾回收方法,其特征在于,当前读任务为待处理链表中的第一个所述读任务时,所述判断当前读任务之后第一预设数量的所述读任务中,是否存在当前读任务对应的同批读任务,包括:
判断所述待处理链表中的第二个所述读任务至第n+1个所述读任务中,是否存在第一个所述读任务对应的同批读任务;
若是,则执行所述当前读任务和所述同批读任务对应的单位数据共同的读操作的步骤,并更新所述待处理链表;
若否,则执行所述发起当前读任务对应的单位数据的读操作的步骤,并更新所述待处理链表。
4.根据权利要求3所述的固态硬盘的垃圾回收方法,其特征在于,所述判断所述待处理链表中的第二个所述读任务至第n+1个所述读任务中,是否存在第一个所述读任务对应的同批读任务之前,还包括:
判断所述待处理链表中的所述读任务的数量是否大于或等于n+1;
若是,则执行所述判断所述待处理链表中的第二个所述读任务至第n+1个所述读任务中,是否存在第一个所述读任务对应的同批读任务的步骤。
5.根据权利要求1所述的固态硬盘的垃圾回收方法,其特征在于,所述预设单位大小为4K,所述存储页大小为16K。
6.根据权利要求5所述的固态硬盘的垃圾回收方法,其特征在于,n为3。
7.一种固态硬盘的垃圾回收装置,其特征在于,包括:
读取模块,用于读取L2P表,获取需要读的单位数据对应的读任务;其中,所述单位数据为预设单位大小的数据;
判断模块,用于判断当前读任务之后n个的所述读任务中,是否存在当前读任务对应的同批读任务;其中,所述同批读任务对应的单位数据与当前读任务对应的单位数据同属于一个存储页;n大于或等于1,且小于或等于m减1的差;m为存储页大小除以所述预设单位大小的商;
读操作模块,用于若存在当前读任务对应的同批读任务,则发起当前读任务和所述同批读任务对应的单位数据共同的读操作;若不存在当前读任务对应的同批读任务,则发起当前读任务对应的单位数据的读操作。
8.一种固态硬盘的垃圾回收设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的固态硬盘的垃圾回收方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的固态硬盘的垃圾回收方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910838332.XA CN110688325B (zh) | 2019-09-05 | 2019-09-05 | 一种固态硬盘的垃圾回收方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910838332.XA CN110688325B (zh) | 2019-09-05 | 2019-09-05 | 一种固态硬盘的垃圾回收方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110688325A CN110688325A (zh) | 2020-01-14 |
CN110688325B true CN110688325B (zh) | 2021-12-03 |
Family
ID=69108756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910838332.XA Active CN110688325B (zh) | 2019-09-05 | 2019-09-05 | 一种固态硬盘的垃圾回收方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688325B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136121A (zh) * | 2013-03-25 | 2013-06-05 | 中国人民解放军国防科学技术大学 | 一种固态盘的缓存管理方法 |
CN107423229A (zh) * | 2017-03-16 | 2017-12-01 | 杭州电子科技大学 | 一种面向页级ftl的缓冲区改进方法 |
CN109086008A (zh) * | 2018-07-26 | 2018-12-25 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据处理方法以及固态硬盘 |
CN109697170A (zh) * | 2017-10-20 | 2019-04-30 | 慧荣科技股份有限公司 | 存取闪存模块的方法及相关的闪存控制器与电子装置 |
CN109783398A (zh) * | 2019-01-18 | 2019-05-21 | 上海海事大学 | 一种基于相关感知页面级ftl固态硬盘性能优化方法 |
CN109800178A (zh) * | 2017-11-17 | 2019-05-24 | 爱思开海力士有限公司 | 垃圾收集方法以及用于混合地址映射的存储器*** |
CN110058796A (zh) * | 2018-01-18 | 2019-07-26 | 慧荣科技股份有限公司 | 数据储存装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336672B (zh) * | 2013-06-28 | 2016-10-05 | 华为技术有限公司 | 数据读取方法、装置及计算设备 |
US9582204B2 (en) * | 2014-01-07 | 2017-02-28 | Apple Inc. | Speculative prefetching of data stored in flash memory |
US10860536B2 (en) * | 2017-01-05 | 2020-12-08 | Portworx, Inc. | Graph driver layer management |
CN109766055A (zh) * | 2017-11-09 | 2019-05-17 | 深圳大心电子科技有限公司 | 存储器管理方法以及存储控制器 |
CN108595110B (zh) * | 2018-03-07 | 2021-12-14 | 深圳忆联信息***有限公司 | 一种利用Nand特性提高读性能的方法及固态硬盘 |
-
2019
- 2019-09-05 CN CN201910838332.XA patent/CN110688325B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136121A (zh) * | 2013-03-25 | 2013-06-05 | 中国人民解放军国防科学技术大学 | 一种固态盘的缓存管理方法 |
CN107423229A (zh) * | 2017-03-16 | 2017-12-01 | 杭州电子科技大学 | 一种面向页级ftl的缓冲区改进方法 |
CN109697170A (zh) * | 2017-10-20 | 2019-04-30 | 慧荣科技股份有限公司 | 存取闪存模块的方法及相关的闪存控制器与电子装置 |
CN109800178A (zh) * | 2017-11-17 | 2019-05-24 | 爱思开海力士有限公司 | 垃圾收集方法以及用于混合地址映射的存储器*** |
CN110058796A (zh) * | 2018-01-18 | 2019-07-26 | 慧荣科技股份有限公司 | 数据储存装置 |
CN109086008A (zh) * | 2018-07-26 | 2018-12-25 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据处理方法以及固态硬盘 |
CN109783398A (zh) * | 2019-01-18 | 2019-05-21 | 上海海事大学 | 一种基于相关感知页面级ftl固态硬盘性能优化方法 |
Non-Patent Citations (1)
Title |
---|
基于非易失存储器的事务存储***综述;石伟; 汪东升;《计算机研究与发展》;20160228;第53卷(第02期);399-415 * |
Also Published As
Publication number | Publication date |
---|---|
CN110688325A (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI515561B (zh) | 使用快閃記憶體之頁結構的資料樹儲存方法、系統以及電腦產品 | |
CN107481762B (zh) | 一种固态硬盘的trim处理方法及装置 | |
US20150378888A1 (en) | Controller, flash memory apparatus, and method for writing data into flash memory apparatus | |
CN108052643B (zh) | 基于LSM Tree结构的数据存储方法、装置及存储引擎 | |
CN110765031B (zh) | 数据存储方法、装置、移动终端及存储介质 | |
TWI693518B (zh) | 資料儲存裝置及避免韌體失效之方法 | |
CN111880731B (zh) | 一种数据处理方法、装置及相关组件 | |
CN109213450B (zh) | 一种基于闪存阵列的关联元数据删除方法、装置及设备 | |
CN104750620A (zh) | 一种内存迁移方法及装置 | |
CN110888843A (zh) | 一种跨主机的稀疏文件拷贝方法、装置、设备及存储介质 | |
CN115756312A (zh) | 数据访问***、数据访问方法和存储介质 | |
CN110377276B (zh) | 源代码文件管理方法及设备 | |
CN107741968B (zh) | 一种文件检索的方法、***、装置及计算机可读存储介质 | |
CN110688325B (zh) | 一种固态硬盘的垃圾回收方法、装置、设备及存储介质 | |
CN110955388A (zh) | 一种存储服务器及其数据存储方法、装置和存储介质 | |
CN110334034A (zh) | 映射表动态加载的方法、装置、计算机设备及存储介质 | |
CN111562983B (zh) | 内存优化方法、装置、电子设备及存储介质 | |
WO2020238750A1 (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN109284237B (zh) | 一种全闪存储阵列中的垃圾回收方法及*** | |
TW202242664A (zh) | 以局部清理操作來進行垃圾回收的方法與相關控制器和儲存系統 | |
CN111061429A (zh) | 一种数据访问方法、装置、设备、介质 | |
CN110888588B (zh) | 快闪记忆体控制器及相关的访问方法及电子装置 | |
CN107301073B (zh) | 一种基于固态硬盘***的配置信息检索方法及其装置 | |
CN111190912A (zh) | 一种基于行变更的面向大事务的分片执行方法和装置 | |
CN113625953B (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 |