CN117008841A - 固态硬盘中数据处理方法、装置、设备及存储介质 - Google Patents
固态硬盘中数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117008841A CN117008841A CN202311107398.4A CN202311107398A CN117008841A CN 117008841 A CN117008841 A CN 117008841A CN 202311107398 A CN202311107398 A CN 202311107398A CN 117008841 A CN117008841 A CN 117008841A
- Authority
- CN
- China
- Prior art keywords
- data
- page
- logical page
- mode
- partial
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 104
- 239000007787 solid Substances 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000015654 memory Effects 0.000 claims abstract description 77
- 238000007906 compression Methods 0.000 claims abstract description 75
- 230000006835 compression Effects 0.000 claims abstract description 74
- 238000013507 mapping Methods 0.000 claims abstract description 72
- 238000003672 processing method Methods 0.000 claims abstract description 15
- 238000012937 correction Methods 0.000 claims description 8
- 238000011084 recovery Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 6
- 238000013144 data compression Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及固态硬盘技术领域,公开了固态硬盘中数据处理方法、装置、设备及存储介质,处理方法包括:接收读请求,根据读请求中的逻辑页在映射表中对应的第一位图确定读请求的读取方式,第一位图用于记录逻辑页对应的物理页的数据分布信息,读取方式包括部分读;通过读取方式,根据映射表中逻辑页与物理页的对应关系,从闪存中读取逻辑页对应的物理页的数据;根据映射表中逻辑页对应的标识符,确定逻辑页对应的物理页的数据经过目标处理方式而得到,目标处理方式包括压缩和/或拆分;根据目标处理方式,对逻辑页对应的物理页的数据进行复原,得到复原数据。本发明根据目标处理方式复原读请求中逻辑页对应的物理页的数据,提升了部分读的性能。
Description
技术领域
本发明涉及固态硬盘技术领域,具体涉及固态硬盘中数据处理方法、装置、设备及存储介质。
背景技术
固态硬盘(Solid State Drive,SSD)是一种电子存储设备,与传统的机械式硬盘相比,固态硬盘具有更快的读写速度、更小的体积、更低的访问时间和更低的功耗等特点。固态硬盘的读取性能是衡量固态硬盘整体性能的重要指标。通常以页为单位读取固态硬盘,这种读取方式称做正常读。相对正常读,部分读以部分页为单位读取固态硬盘,部分页其实就是页的一部分,部分页的大小小于页,例如页的大小为16KB,部分页的大小为4KB。由于部分读在读取过程中激活的页的数量较少,相比正常读,读取固态硬盘的延迟时间较低。然而,以部分读读取固态硬盘仍然存在一定的读取延迟,部分读的性能存在提升的空间。
发明内容
有鉴于此,本发明提供了一种固态硬盘中数据处理方法、装置、设备及存储介质,以解决部分读的性能有待提升的问题。
第一方面,本发明提供了一种固态硬盘中数据处理方法,本方法包括:
接收读请求,根据读请求中的逻辑页在映射表中对应的第一位图确定读请求的读取方式,第一位图用于记录逻辑页对应的物理页的数据分布信息,读取方式包括部分读;
通过读取方式,根据映射表中逻辑页与物理页的对应关系,从闪存中读取逻辑页对应的物理页的数据;
根据映射表中逻辑页对应的标识符,确定逻辑页对应的物理页的数据经过目标处理方式而得到,目标处理方式包括压缩和/或拆分;
根据目标处理方式,对逻辑页对应的物理页的数据进行复原,得到复原数据。
本方法根据读请求中的逻辑页在映射表中对应的第一位图能够快速确定读请求的读取方式(读取方式中包括部分读),通过该读取方式根据映射表中逻辑页与物理页的对应关系从闪存中读取逻辑页对应的物理页的数据。根据映射表中逻辑页对应的标识符,能够快速确定逻辑页对应的物理页的数据经过目标处理方式而得到。根据目标处理方式,对逻辑页对应的物理页的数据进行复原,得到复原数据。通过本方法,降低了以部分读读取固态硬盘存在的读取延迟,提升了部分读的性能。
在一种可选的实施方式中,本方法还包括:
根据映射表中逻辑页对应的零位图,还原复原数据对应的原始数据,零位图用于记录原始数据被划分为部分页数据后全零部分页数据的分布信息。
逻辑页对应的零位图记录了原始数据被划分为部分页数据后全零部分页数据的分布信息,本方法根据映射表中逻辑页对应的零位图,能够简单而快捷地还原复原数据对应的原始数据,有较高的数据还原效率。
在一种可选的实施方式中,根据映射表中逻辑页对应的标识符,确定逻辑页对应的物理页的数据经过目标处理方式而得到,包括:
如果逻辑页对应的拆分标识符为第一预设标识符,确定逻辑页对应的物理页的数据经过拆分而得到;
如果逻辑页对应的压缩标识符为第二预设标识符,确定逻辑页对应的物理页的数据经过压缩而得到。
本方法根据映射表中逻辑页对应的拆分标识符为第一预设标识符,能够快速确定逻辑页对应的物理页的数据经过拆分而得到;并且根据映射表中逻辑页对应的压缩标识符为第二预设标识符,能够快速确定逻辑页对应的物理页的数据经过压缩而得到。
在一种可选的实施方式中,根据目标处理方式,对逻辑页对应的物理页的数据进行复原,得到复原数据,包括:
如果目标处理方式为拆分,合并逻辑页对应的物理页的数据得到复原数据;
如果目标处理方式为压缩,解压缩逻辑页对应的物理页的数据得到复原数据。
目标处理方式包括拆分和压缩,确定目标处理方式后,本方法能够以目标处理方式对应的复原方法快速对逻辑页对应的物理页的数据进行复原,得到复原数据。
在一种可选的实施方式中,从闪存中读取逻辑页对应的物理页的数据之后,包括:
对逻辑页对应的物理页的数据进行纠错码解码。
本方法通过在从闪存中读取逻辑页对应的物理页的数据之后对逻辑页对应的物理页的数据进行纠错码解码,提高了逻辑页对应的物理页的数据的可靠性和完整性,能够防止数据损坏或丢失的情况发生。
在一种可选的实施方式中,接收读请求之前,包括:
接收写请求,将写请求中待写入的原始数据划分为部分页数据;
将部分页数据分为全零部分页数据和非全零部分页数据;
根据部分页数据中全零部分页数据的分布信息,得到零位图;
压缩非全零部分页数据;
如果压缩非全零部分页数据成功,得到压缩数据,将压缩数据存储于缓存中;
如果压缩非全零部分页数据失败,判断非全零部分页数据是否能被拆分;
如果非全零部分页数据能被拆分,拆分非全零部分页数据,得到拆分数据,将拆分数据存储于缓存中;
根据处理非全零部分页数据的方式,确定标识符的值;
将存储于缓存中的数据写入闪存中,根据闪存中物理页的数据分布信息得到第一位图;
更新映射表中写入闪存中的数据对应的逻辑页与物理页的对应关系。
本方法在接收读请求之前,将接收到的写请求中待写入的原始数据划分为部分页数据,根据部分页数据中全零部分页数据的分布信息,得到零位图,零位图用于后续处理读请求时还原复原数据对应的原始数据。对非全零部分页数据进行压缩,降低了数据的占用空间。对压缩失败的非全零部分页数据进行拆分,以便后续处理读请求时能够以部分读的方式读取数据。根据处理非全零部分页数据的方式,确定标识符的值,为后续处理读请求时确定逻辑页对应的物理页的数据经过哪种目标处理方式而得到提供依据。根据闪存中物理页的数据分布信息得到第一位图,通过第一位图能够为后续处理读请求时确定读请求的读取方式提供了依据。更新映射表中写入闪存中的数据对应的逻辑页与物理页的对应关系,其中逻辑页与物理页的对应关系是后续处理读请求时从闪存中读取逻辑页对应的物理页的数据的依据。
在一种可选的实施方式中,接收写请求之前,包括:
如果写请求中待写入的原始数据的大小大于缓存中剩余存储空间的大小,将缓存中的数据全部写入闪存中。
本方法通过在接收写请求之前,当写请求中待写入的原始数据的大小大于缓存中剩余存储空间的大小时,及时将缓存中的数据全部写入闪存中,使得缓存中留出了存放原始数据的存储空间,避免了由于缓存中剩余存储空间不足而导致写请求中待写入的原始数据无法完全写入缓存的情况的发生。
在一种可选的实施方式中,压缩非全零部分页数据,包括:
将非全零部分页数据拆分为多个小粒度单元,小粒度单元由不同的模式单元组成;
对小粒度单元进行压缩,得到每个小粒度单元的压缩结果;
汇总每个小粒度单元的压缩结果,确定非全零部分页数据是否压缩成功。
本方法通过将非全零部分页数据拆分为小粒度单元并对小粒度单元进行压缩,降低了数据的占用空间。
在一种可选的实施方式中,对小粒度单元进行压缩,得到每个小粒度单元的压缩结果,包括:
经过对小粒度单元中各个模式单元的个数的统计,将个数最多的模式单元确定为主模式单元;
按照小粒度单元中与主模式单元相同的模式单元编码为1,与主模式单元不同的模式单元编码为0,生成小粒度单元的第二位图;
其中,压缩结果包括主模式单元、第二位图和未压缩数据,未压缩数据为与主模式单元不同的模式单元。
本发明按照个数最多的主模式单元对小粒度单元进行编码,生成了第二位图,通过占用空间更少的第二位图、主模式单元和未压缩数据能够复原小粒度单元,简单快速地实现了对小粒度单元的压缩。
第二方面,本发明提供了一种固态硬盘中数据处理装置,本装置包括:
数据读取模块,用于接收读请求,根据读请求中的逻辑页在映射表中对应的第一位图确定读请求的读取方式,第一位图用于记录逻辑页对应的物理页的数据分布信息,读取方式包括部分读;数据读取模块,还用于通过读取方式,根据映射表中逻辑页与物理页的对应关系,从闪存中读取逻辑页对应的物理页的数据;
数据复原模块,用于根据映射表中逻辑页对应的标识符,确定逻辑页对应的物理页的数据经过目标处理方式而得到,目标处理方式包括压缩和/或拆分;数据复原模块,还用于根据目标处理方式,对逻辑页对应的物理页的数据进行复原,得到复原数据。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的固态硬盘中数据处理方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的固态硬盘中数据处理方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的固态硬盘中数据处理方法的流程示意图;
图2是根据本发明实施例的另一固态硬盘中数据处理方法的流程示意图;
图3是根据本发明实施例的又一固态硬盘中数据处理方法的流程示意图;
图4是根据本发明实施例的再一固态硬盘中数据处理方法的流程示意图;
图5是根据本发明实施例的固态硬盘中数据处理系统的工作流程示意图;
图6是根据本发明实施例的固态硬盘中数据处理系统的装置结构图;
图7是根据本发明实施例的固态硬盘中数据处理系统中处理写请求的流程示意图;
图8是根据本发明实施例的固态硬盘中数据处理系统中压缩写请求中待写入的原始数据的流程示意图;
图9是根据本发明实施例的固态硬盘中数据处理系统中压缩小粒度单元的流程示意图;
图10是根据本发明实施例的固态硬盘中数据处理系统中模式单元表的示意图;
图11是根据本发明实施例的固态硬盘中数据处理系统中一级映射表和二级映射表的示意图;
图12是根据本发明实施例的固态硬盘中数据处理系统中处理读请求的流程示意图;
图13是根据本发明实施例的固态硬盘中数据处理装置的结构框图;
图14是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
固态硬盘的读取性能是衡量固态硬盘整体性能的重要指标。通常以页为单位读取固态硬盘,这种读取方式称做正常读。相对正常读,部分读以部分页为单位读取固态硬盘,部分页是页的一部分。由于部分读在读取过程中激活的页的数量较少,相比正常读,读取固态硬盘的延迟时间较低。然而,以部分读读取固态硬盘仍然存在一定的读取延迟,部分读的性能存在提升的空间。
本发明实施例提供了一种固态硬盘中数据处理方法,通过目标处理方式复原读请求中逻辑页对应的物理页的数据以达到提升部分读的性能的效果。
根据本发明实施例,提供了一种固态硬盘中数据处理方法实施例,需要说明的是,在附图的流程图展示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中展示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所展示出或描述的步骤。
在本实施例中提供了一种固态硬盘中数据处理方法,可用于固态硬盘中的主控芯片,图1是根据本发明实施例的固态硬盘中数据处理方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,接收读请求,根据读请求中的逻辑页在映射表中对应的第一位图确定读请求的读取方式,第一位图用于记录逻辑页对应的物理页的数据分布信息,读取方式包括部分读。
映射表中的第一位图记录了逻辑页对应的物理页的数据分布信息,根据第一位图能够确定读请求的读取方式。例如,在映射表中,逻辑页890对应的物理页为190,逻辑页890对应的第一位图为1000,其中1000表示物理页190分为4个部分页,逻辑页890对应的物理页190的数据分布在物理页190的第一部分页中,此时数据的大小为部分读的基本单位部分页,那么读请求的读取方式为部分读;同理,假设此时的第一位图为1100,1100表示逻辑页890对应的物理页190的数据分布在物理页190的第一和部分页中,此时数据的大小大于部分读的基本单位部分页,那么读请求的读取方式为正常读。
步骤S102,通过读取方式,根据映射表中逻辑页与物理页的对应关系,从闪存中读取逻辑页对应的物理页的数据。
例如,在映射表中,逻辑页890对应物理页190,已确定读取方式为部分读,通过部分读的读取方式,从闪存中逻辑页890对应的物理页190读取数据。
步骤S103,根据映射表中逻辑页对应的标识符,确定逻辑页对应的物理页的数据经过目标处理方式而得到,目标处理方式包括压缩和/或拆分。
逻辑页对应的物理页的数据经过目标处理方式而得到,映射表中逻辑页对应的标识符记录了目标处理方式,因此根据标识符能够确定逻辑页对应的物理页的数据是经过哪种目标处理方式而得到。
步骤S104,根据目标处理方式,对逻辑页对应的物理页的数据进行复原,得到复原数据。
目标处理方式有多种,不同目标处理方式对应的复原方法也各不相同。因此,根据目标处理方式,对逻辑页对应的物理页的数据使用目标处理方式对应的复原方法进行复原,得到复原数据。
本实施例提供的固态硬盘中数据处理方法,根据读请求中的逻辑页在映射表中对应的第一位图能够快速确定读请求的读取方式(读取方式中包括部分读),通过该读取方式根据映射表中逻辑页与物理页的对应关系从闪存中读取逻辑页对应的物理页的数据。根据映射表中逻辑页对应的标识符,能够快速确定逻辑页对应的物理页的数据经过目标处理方式而得到。根据目标处理方式,对逻辑页对应的物理页的数据进行复原,得到复原数据。通过本方法,降低了以部分读读取固态硬盘存在的读取延迟,提升了部分读的性能。
在本实施例中提供了一种固态硬盘中数据处理方法,可用于上述的固态硬盘中的主控芯片,图2是根据本发明实施例的固态硬盘中数据处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,接收读请求,根据读请求中的逻辑页在映射表中对应的第一位图确定读请求的读取方式,第一位图用于记录逻辑页对应的物理页的数据分布信息,读取方式包括部分读。详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤202,通过读取方式,根据映射表中逻辑页与物理页的对应关系,从闪存中读取逻辑页对应的物理页的数据。详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤203,对逻辑页对应的物理页的数据进行纠错码解码。
通过在从闪存中读取逻辑页对应的物理页的数据之后对逻辑页对应的物理页的数据进行纠错码解码,提高了逻辑页对应的物理页的数据的可靠性和完整性,能够防止数据损坏或丢失的情况发生。
步骤204,根据映射表中逻辑页对应的标识符,确定逻辑页对应的物理页的数据经过目标处理方式而得到,目标处理方式包括压缩和/或拆分。详细请参见图1所示实施例的步骤S103,在此不再赘述。
步骤205,根据目标处理方式,对逻辑页对应的物理页的数据进行复原,得到复原数据。详细请参见图1所示实施例的步骤S104,在此不再赘述。
步骤206,根据映射表中逻辑页对应的零位图,还原复原数据对应的原始数据,零位图用于记录原始数据被划分为部分页数据后全零部分页数据的分布信息。
原始数据被划分为部分页数据后,部分页数据被分为了全零部分页数据和非全零部分页数据,其中非全零部分页数据即为复原数据。零位图记录了全零部分页数据的分布信息,例如,零位图为0111,表示原始数据被划分为4个部分页数据,零位图中0表示对应部分页的数据为非全零部分页数据,1表示对应部分页的数据为全零部分页数据,那么0111表示第一部分页数据为非全零部分页数据,第二、第三和第四为全零部分页数据。按照零位图,将复原数据代表的非全零部分页数据和全零部分页数据合并,能够简单而快捷地还原复原数据对应的原始数据,有较高的数据还原效率。
在一些可选的实施方式中,上述步骤S204包括:
如果逻辑页对应的拆分标识符为第一预设标识符,确定逻辑页对应的物理页的数据经过拆分而得到;
如果逻辑页对应的压缩标识符为第二预设标识符,确定逻辑页对应的物理页的数据经过压缩而得到。
例如,如果逻辑页对应的拆分标识符为T时,据此能够快速确定该逻辑页对应的物理页的数据经过拆分而得到;如果逻辑页对应的压缩标识符为T时,据此能够快速确定该逻辑页对应的物理页的数据经过压缩而得。
在一些可选的实施方式中,上述步骤S205包括:
如果目标处理方式为拆分,合并逻辑页对应的物理页的数据得到复原数据;
如果目标处理方式为压缩,解压缩逻辑页对应的物理页的数据得到复原数据。
目标处理方式包括拆分和压缩,确定目标处理方式后,本方法能够以目标处理方式对应的复原方法快速对逻辑页对应的物理页的数据进行复原,得到复原数据。
在本实施例中提供了一种固态硬盘中数据处理方法,可用于上述的固态硬盘中的主控芯片,图3是根据本发明实施例的固态硬盘中数据处理方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,接收写请求,将写请求中待写入的原始数据划分为部分页数据。
步骤S302,将部分页数据分为全零部分页数据和非全零部分页数据,根据部分页数据中全零部分页数据的分布信息,得到零位图。
步骤S303,压缩非全零部分页数据。
步骤S304,如果压缩非全零部分页数据成功,得到压缩数据,将压缩数据存储于缓存中;如果压缩非全零部分页数据失败,判断非全零部分页数据是否能被拆分;如果非全零部分页数据能被拆分,拆分非全零部分页数据,得到拆分数据,将拆分数据存储于缓存中。
步骤S305,根据处理非全零部分页数据的方式,确定标识符的值。
步骤S306,将存储于缓存中的数据写入闪存中,根据闪存中物理页的数据分布信息得到第一位图。
步骤S307,更新映射表中写入闪存中的数据对应的逻辑页与物理页的对应关系。
通过以下的例子对步骤S301、步骤302、步骤303、步骤304、步骤305、步骤306和步骤S307进行解释。
写请求中待写入的原始数据为16KB,将其划分为4个4KB的部分页数据。将这些部分页数据分为全零部分页数据和非全零部分页数据。根据部分页数据中全零部分页数据的分布信息,得到零位图。零位图中0表示对应部分页的数据为非全零部分页数据,1表示对应部分页的数据为全零部分页数据。假设4个部分页数据中前两个为全零部分页数据,后两个为非全零部分页数据,那么零位图为0011。零位图用于后续处理读请求时还原复原数据对应的原始数据。
压缩非全零部分页数据,以降低数据的占用空间。如果压缩非全零部分页数据成功,得到压缩数据,将压缩数据存储于缓存中,确定压缩标识符为T。如果压缩非全零部分页数据失败,判断非全零部分页数据是否能被拆分。如果非全零部分页数据能被拆分,拆分非全零部分页数据,得到拆分数据,以便后续处理读请求时能够以部分读的方式读取数据。将拆分数据存储于缓存中,确定拆分标识符为T。如果非全零部分页数据不能被拆分,将非全零部分页数据直接存储于缓存中,确定压缩标识符为F,拆分标识符也为F。这些标识符的值,为后续处理读请求时确定逻辑页对应的物理页的数据经过哪种目标处理方式而得到提供依据。
将存储于缓存中的数据写入闪存中,根据闪存中物理页的数据分布信息得到第一位图。第一位图中0表示物理页中对应部分页没有写入数据,1表示物理页中对应部分页写入了数据。假设物理页分为4个部分页,写入闪存物理页的数据分布在物理页的第一部分页中,那么第一位图为1000;如果写入闪存物理页的数据分布在物理页的第一部分页和部分页中,那么第一位图为1100。第一位图为后续处理读请求时确定读请求的读取方式提供了依据。
此时,对映射表中写入闪存中的数据对应的逻辑页与物理页的对应关系进行更新。其中逻辑页与物理页的对应关系是后续处理读请求时从闪存中读取逻辑页对应的物理页的数据的依据。
步骤S308,接收读请求,根据读请求中的逻辑页在映射表中对应的第一位图确定读请求的读取方式,第一位图用于记录逻辑页对应的物理页的数据分布信息,读取方式包括部分读。详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S309,通过读取方式,根据映射表中逻辑页与物理页的对应关系,从闪存中读取逻辑页对应的物理页的数据。详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤S310,根据映射表中逻辑页对应的标识符,确定逻辑页对应的物理页的数据经过目标处理方式而得到,目标处理方式包括压缩和/或拆分。详细请参见图1所示实施例的步骤S103,在此不再赘述。
步骤S311,根据目标处理方式,对逻辑页对应的物理页的数据进行复原,得到复原数据。详细请参见图1所示实施例的步骤S104,在此不再赘述。
在本实施例中提供了一种固态硬盘中数据处理方法,可用于上述的固态硬盘中的主控芯片,图4是根据本发明实施例的固态硬盘中数据处理方法的流程图,如图4所示,该流程包括如下步骤:
步骤S401,如果写请求中待写入的原始数据的大小大于缓存中剩余存储空间的大小,将缓存中的数据全部写入闪存中。
当写请求中待写入的原始数据的大小大于缓存中剩余存储空间的大小时,表明缓存中剩余的存储空间已无法容纳写请求中待写入的原始数据。此时,及时将缓存中的数据全部写入闪存中,使得缓存中留出了存放原始数据的存储空间,避免了由于缓存中剩余存储空间不足而导致写请求中待写入的原始数据无法完全写入缓存的情况的发生。
步骤S402,接收写请求,将写请求中待写入的原始数据划分为部分页数据。详细请参见图3所示实施例的步骤S301,在此不再赘述。
步骤S403,将部分页数据分为全零部分页数据和非全零部分页数据,根据部分页数据中全零部分页数据的分布信息,得到零位图。详细请参见图3所示实施例的步骤S302,在此不再赘述。
步骤S404,压缩非全零部分页数据。
具体地,上述步骤S404包括:
步骤S4041,将非全零部分页数据拆分为多个小粒度单元,小粒度单元由不同的模式单元组成。
步骤S4042,对小粒度单元进行压缩,得到每个小粒度单元的压缩结果。
步骤S4043,汇总每个小粒度单元的压缩结果,确定非全零部分页数据是否压缩成功。
对非全零部分页数据拆分而成的每个小粒度单元进行压缩,得到每个小粒度单元的压缩结果。汇总每个小粒度单元的压缩结果,根据压缩结果中包含的信息,能够确定哪些小粒度单元是压缩成功的,哪些小粒度单元是没有压缩成功的。如果压缩成功的小粒度单元占所有小粒度单元的比例达到一定的数值,那么就能够确定包含这些小粒度单元的非全零部分页数据压缩成功。通过将非全零部分页数据拆分为小粒度单元并对小粒度单元进行压缩,降低了数据的占用空间。
在一些可选的实施方式中,上述步骤S4042包括:
步骤a1,经过对小粒度单元中各个模式单元的个数的统计,将个数最多的模式单元确定为主模式单元。
步骤a2,按照小粒度单元中与主模式单元相同的模式单元编码为1,与主模式单元不同的模式单元编码为0,生成小粒度单元的第二位图。
其中,压缩结果包括主模式单元、第二位图和未压缩数据,未压缩数据为与主模式单元不同的模式单元。
通过步骤a1和步骤a2,完成了对小粒度单元的压缩,降低了数据占用的空间,以下述的例子,对步骤a1和步骤a2进行详细解释。
假设小粒度单元为0x12345678901256123478127834901256,经过对小粒度单元中的模式单元的个数的统计,得到小粒度单元中模式单元0x12的个数为5,模式单元0x34的个数为3,模式单元0x56的个数为3,模式单元0x78的个数为3,模式单元0x90的个数为2。其中模式单元0x12的个数最多,那么模式单元0x12为主模式单元。
按照小粒度单元中与主模式单元相同的模式单元编码为1,代表了对应的模式单元已被压缩;与主模式单元不同的模式单元编码为0,代表了对应的模式单元未被压缩。根据这样的编码规则,生成小粒度单元的第二位图。具体来说,小粒度单元0x12345678901256123478127834901256前两位组成的模式单元为0x12,与主模式单元0x12相同,那么编码为1;该小粒度单元第三位与第四位组成的模式单元为0x34,与主模式单元0x12不同,那么编码为0。以此类推,生成了小粒度单元的第二位图10 00010100100010。抛开小粒度单元中的主模式单元,剩下的就是小粒度单元的未被压缩数据,具体为0x3456789056347878349056。
最终得到了该小粒度单元的压缩结果,压缩结果包括主模式单元0x12、第二位图10 00010100100010和未压缩数据0x3456789056347878349056。
步骤S405,如果压缩非全零部分页数据成功,得到压缩数据,将压缩数据存储于缓存中;如果压缩非全零部分页数据失败,判断非全零部分页数据是否能被拆分;如果非全零部分页数据能被拆分,拆分非全零部分页数据,得到拆分数据,将拆分数据存储于缓存中。详细请参见图3所示实施例的步骤S304,在此不再赘述。
步骤S406,根据处理非全零部分页数据的方式,确定标识符的值。详细请参见图3所示实施例的步骤S305,在此不再赘述。
步骤S407,将存储于缓存中的数据写入闪存中,根据闪存中物理页的数据分布信息得到第一位图。详细请参见图3所示实施例的步骤S306,在此不再赘述。
步骤S408,更新映射表中写入闪存中的数据对应的逻辑页与物理页的对应关系。详细请参见图3所示实施例的步骤S307,在此不再赘述。
步骤S409,接收读请求,根据读请求中的逻辑页在映射表中对应的第一位图确定读请求的读取方式,第一位图用于记录逻辑页对应的物理页的数据分布信息,读取方式包括部分读。详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S410,通过读取方式,根据映射表中逻辑页与物理页的对应关系,从闪存中读取逻辑页对应的物理页的数据。详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤S411,根据映射表中逻辑页对应的标识符,确定逻辑页对应的物理页的数据经过目标处理方式而得到,目标处理方式包括压缩和/或拆分。详细请参见图1所示实施例的步骤S103,在此不再赘述。
步骤S412,根据目标处理方式,对逻辑页对应的物理页的数据进行复原,得到复原数据。详细请参见图1所示实施例的步骤S104,在此不再赘述。
本发明实施例可按照如下方式应用于下述场景中。
本实施例提供了一种固态硬盘中数据处理系统。结合图5展示的固态硬盘中数据处理系统的工作流程示意图和图6展示的固态硬盘中数据处理系统的装置结构图,对该系统进行说明。
接收来自于主机的请求,根据该请求是读请求还是写请求,进行相应的处理。如果该请求是写请求,通过压缩单元执行后述的步骤。
如图7所示,首先要判断缓存中剩余存储空间是否能够容纳写请求中待写入的原始数据,如果写请求中待写入的原始数据的大小大于缓存中剩余存储空间的大小,将缓存中的数据全部写入闪存中。
之后,如图8所示,将写请求中待写入的原始数据划分为部分页数据,再将划分好的部分页数据通过零滤波器分成全零部分页数据和非全零部分页数据。根据部分页数据中全零部分页数据的分布信息,得到零位图(ZB)。零位图中0表示对应部分页的数据为非全零部分页数据,1表示对应部分页的数据为全零部分页数据。例如,零位图0011表示4个部分页数据中前两个为全零部分页数据,后两个为非全零部分页数据。
接下来,对非全零部分页数据进行压缩。具体地,如图8所示,将非全零部分页数据拆分为多个小粒度单元。小粒度单元由不同的模式单元组成,对小粒度单元进行压缩,得到每个小粒度单元的压缩结果。汇总每个小粒度单元的压缩结果,根据压缩结果中包含的信息,能够确定这些小粒度单元中哪些小粒度单元是压缩成功的,哪些小粒度单元是没有压缩成功的。如果压缩成功的小粒度单元占所有小粒度单元的比例达到一定的数值,那么就能够确定包含这些小粒度单元的非全零部分页数据压缩成功。
结合图9所示,通过下述例子对小粒度单元的压缩过程进行说明。
小粒度单元为0x12345678901256123478127834901256,经过对小粒度单元中的模式单元的个数的统计,生成如图10所示的模式单元表。模式单元表中模式单元0x12的个数为5,模式单元0x34的个数为3,模式单元0x56的个数为3,模式单元0x78的个数为3,模式单元0x90的个数为2。其中模式单元0x12的个数最多,那么模式单元0x12为主模式单元。
按照小粒度单元中与主模式单元相同的模式单元编码为1,代表了对应的模式单元已被压缩;与主模式单元不同的模式单元编码为0,代表了对应的模式单元未被压缩。根据这样的编码规则,生成小粒度单元的编码位图。具体来说,小粒度单元0x12345678901256123478127834901256前两位组成的模式单元为0x12,与主模式单元0x12相同,那么编码为1;该小粒度单元第三位与第四位组成的模式单元为0x34,与主模式单元0x12不同,那么编码为0。以此类推,生成了小粒度单元的编码位图10 00010100100010。抛开小粒度单元中的主模式单元0x12,剩下的就是小粒度单元的未被压缩数据,具体为0x3456789056347878349056。最终得到了该小粒度单元的压缩结果,压缩结果包括主模式单元0x12、编码位图1000010100100010和未压缩数据0x3456789056347878349056。
压缩非全零部分页数据成功之后,将得到的压缩数据通过数据暂存单元存储于缓存中,确定对应的压缩标识符(F)为T。如果压缩非全零部分页数据失败,通过决策单元,判断非全零部分页数据是否能被拆分。将主机读请求大小与最大随机读请求大小进行比较,如果主机读请求大小大于最大随机读请求大小,确定对应的标识符(RRS)为F;如果主机读请求大小小于最大随机读请求大小,确定对应的标识符(RRS)为T。其中,读请求大小是指上一次的读请求大小。判断主机写请求大小是否是固态硬盘通道数(MCH)与部分页大小的整数倍,如果是,确定对应的标识符(WRS)为T;如果不是,确定对应的标识符(WRS)为F。上述标识符RRS与WRS共同决定是否对非全零部分页数据进行拆分,如果RRS与WRS都为T,确定对应的拆分标识符(S)为T,通过拆分单元对非全零部分页数据进行拆分,将得到的拆分数据通过数据暂存单元存储于缓存中;否则,确定对应的拆分标识符(S)为F,直接将非全零部分页数据通过数据暂存单元存储于缓存中。数据存储于缓存之后,向主机回报完成状态信息。
将存储于缓存中的数据写入闪存(NAND FLASH)中,根据闪存中物理页(PPN,Physical Page Number)的数据分布信息得到部分位图(PB)。部分位图中0表示物理页中对应部分页没有写入数据,1表示物理页中对应部分页写入了数据。假设物理页分为4个部分页,写入闪存物理页的数据分布在物理页的第一部分页中,那么部分位图为1000;如果写入闪存物理页的数据分布在物理页的第一部分页和第二部分页中,那么部分位图为1100。
如图11所示,通过映射表更新单元更新映射表中的数据。对一级映射表中,写入闪存中的数据对应的逻辑页(LPN,Logical Page Number)与物理页、压缩标识符、拆分标识符、零位图、部分位图等信息的对应关系进行更新。如图11所示,如果拆分标识符为T,对二级映射表中,写入闪存中的数据对应的逻辑页与物理页等信息的对应关系进行更新。一级映射表中的L表示每个逻辑页在对应物理页中的位置。二级映射表中的LPN-P表示可拆分逻辑页的部分页的标识,P表示在对应物理页的偏移位置。
如果来自于主机的请求是读请求,如图12所示,先通过数据读取单元根据读请求中逻辑页在映射表中对应的部分位图确定读请求的读取方式。如果部分为图中只有一个1,读请求的读取方式为部分读;否则,读请求的读取方式为正常读。例如,在如图11所示的一级映射表中,逻辑页890对应的物理页为190,逻辑页890对应的部分位图为1000,其中1000表示物理页190分为4个部分页,逻辑页890对应的物理页190的数据分布在物理页190的第一部分页中,此时数据的大小为部分读的基本单位部分页,那么读请求的读取方式为部分读;同理,假设此时的部分位图为1100,1100表示逻辑页890对应的物理页190的数据分布在物理页190的第一和部分页中,此时数据的大小大于部分读的基本单位部分页,那么读请求的读取方式为正常读。按照已确定的读取方式,根据映射表中逻辑页与物理页的对应关系,从闪存中读取逻辑页对应的物理页的数据。
通过纠错码(ECC,Error Correcting Code)解码单元对从闪存中读取逻辑页对应的物理页的数据进行纠错码解码,以防止数据损坏或丢失的情况发生。之后,通过数据复原单元,根据一级映射表中逻辑页对应的压缩标识符和拆分标识符,确定逻辑页对应的物理页的数据是经过何种处理方式而得到的。如果逻辑页对应的压缩标识符为T,那么能够确定该逻辑页对应的物理页的数据经过拆分而得到,依据一级映射表以及二级映射表中逻辑页关联的数据,合并逻辑页对应的物理页的数据得到复原数据;如果逻辑页对应的压缩标识符为T,那么能够确定该逻辑页对应的物理页的数据经过压缩而得,依据一级映射表中逻辑页关联的数据,解压缩逻辑页对应的物理页的数据得到复原数据。
得到复原数据后,通过原始数据恢复单元,根据映第一射表中逻辑页对应的零位图,将复原数据代表的非全零部分页数据和全零部分页数据合并,还原复原数据对应的原始数据。将原始数据传给主机,并回报完成状态信息。
在本实施例中还提供了一种固态硬盘中数据处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种固态硬盘中数据处理装置,如图13所示,包括:
数据读取模块1301,用于接收读请求,根据读请求中的逻辑页在映射表中对应的第一位图确定读请求的读取方式,第一位图用于记录逻辑页对应的物理页的数据分布信息,读取方式包括部分读;数据读取模块1301,还用于通过读取方式,根据映射表中逻辑页与物理页的对应关系,从闪存中读取逻辑页对应的物理页的数据。
数据复原模块1302,用于根据映射表中逻辑页对应的标识符,确定逻辑页对应的物理页的数据经过目标处理方式而得到,目标处理方式包括压缩和/或拆分;数据复原模块1302,还用于根据目标处理方式,对逻辑页对应的物理页的数据进行复原,得到复原数据。
在一些可选的实施方式中,本固态硬盘中数据处理装置,还包括:
数据还原模块,用于根据映射表中逻辑页对应的零位图,还原复原数据对应的原始数据,零位图用于记录原始数据被划分为部分页数据后全零部分页数据的分布信息。
在一些可选的实施方式中,数据复原模块1302用于根据映射表中逻辑页对应的标识符,确定逻辑页对应的物理页的数据经过目标处理方式而得到,包括:
如果逻辑页对应的拆分标识符为第一预设标识符,确定逻辑页对应的物理页的数据经过拆分而得到;
如果逻辑页对应的压缩标识符为第二预设标识符,确定逻辑页对应的物理页的数据经过压缩而得到。
在一些可选的实施方式中,数据复原模块1302用于对逻辑页对应的物理页的数据进行复原,得到复原数据,包括:
如果目标处理方式为拆分,合并逻辑页对应的物理页的数据得到复原数据;
如果目标处理方式为压缩,解压缩逻辑页对应的物理页的数据得到复原数据。
在一些可选的实施方式中,数据复原模块1301用于从闪存中读取逻辑页对应的物理页的数据之后,包括:
对逻辑页对应的物理页的数据进行纠错码解码。
在一些可选的实施方式中,本固态硬盘中数据处理装置,还包括:
零位图获取模块,用于接收写请求,将写请求中待写入的原始数据划分为部分页数据;零位图获取模块,还用于将部分页数据分为全零部分页数据和非全零部分页数据,根据部分页数据中全零部分页数据的分布信息,得到零位图。
数据压缩模块,用于压缩非全零部分页数据;数据压缩模块,还用于当压缩非全零部分页数据成功时,得到压缩数据,将压缩数据存储于缓存中。
数据拆分模块,用于当压缩非全零部分页数据失败时,判断非全零部分页数据是否能被拆分;如果非全零部分页数据能被拆分,拆分非全零部分页数据,得到拆分数据,将拆分数据存储于缓存中。
标识符确定模块,用于根据处理非全零部分页数据的方式,确定标识符的值。
数据写入模块,用于将存储于缓存中的数据写入闪存中,根据闪存中物理页的数据分布信息得到第一位图。
映射表更新模块,用于更新映射表中写入闪存中的数据对应的逻辑页与物理页的对应关系。
在一些可选的实施方式中,在零位图获取模块接收写请求之前,包括:
如果写请求中待写入的原始数据的大小大于缓存中剩余存储空间的大小,将缓存中的数据全部写入闪存中。
在一些可选的实施方式中,数据压缩模块包括:
数据拆分单元,用于将非全零部分页数据拆分为多个小粒度单元,小粒度单元由不同的模式单元组成。
数据压缩单元,用于对小粒度单元进行压缩,得到每个小粒度单元的压缩结果。
数据汇总单元,用于汇总每个小粒度单元的压缩结果,确定非全零部分页数据是否压缩成功。
在一些可选的实施方式中,数据压缩单元用于对小粒度单元进行压缩,得到每个小粒度单元的压缩结果,包括:
经过对小粒度单元中各个模式单元的个数的统计,将个数最多的模式单元确定为主模式单元。
按照小粒度单元中与主模式单元相同的模式单元编码为1,与主模式单元不同的模式单元编码为0,生成小粒度单元的编码位图。
其中,压缩结果包括主模式单元、编码位图和未压缩数据,未压缩数据为与主模式单元不同的模式单元。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的固态硬盘中数据处理装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图13所示的固态硬盘中数据处理装置。
请参阅图14,图14是本发明可选实施例提供的一种计算机设备的结构示意图,如图14所示,该计算机设备包括:一个或多个处理器1401、处理器1402,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图14中以一个处理器1401为例。
处理器1401可以是中央处理器,网络处理器或其组合。其中,处理器1401还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,处理器1402存储有可由至少一个处理器1401执行的指令,以使至少一个处理器1401执行实现上述实施例示出的方法。
处理器1402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,处理器1402可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,处理器1402可选包括相对于处理器1401远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器1402可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;处理器1402还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口1403,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (12)
1.一种固态硬盘中数据处理方法,其特征在于,所述方法包括:
接收读请求,根据所述读请求中的逻辑页在映射表中对应的第一位图确定所述读请求的读取方式,所述第一位图用于记录所述逻辑页对应的物理页的数据分布信息,所述读取方式包括部分读;
通过所述读取方式,根据所述映射表中所述逻辑页与物理页的对应关系,从闪存中读取所述逻辑页对应的物理页的数据;
根据所述映射表中所述逻辑页对应的标识符,确定所述逻辑页对应的物理页的数据经过目标处理方式而得到,所述目标处理方式包括压缩和/或拆分;
根据所述目标处理方式,对所述逻辑页对应的物理页的数据进行复原,得到复原数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述映射表中所述逻辑页对应的零位图,还原所述复原数据对应的原始数据,所述零位图用于记录所述原始数据被划分为部分页数据后全零部分页数据的分布信息。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述映射表中所述逻辑页对应的标识符,确定所述逻辑页对应的物理页的数据经过目标处理方式而得到,包括:
如果所述逻辑页对应的拆分标识符为第一预设标识符,确定所述逻辑页对应的物理页的数据经过拆分而得到;
如果所述逻辑页对应的压缩标识符为第二预设标识符,确定所述逻辑页对应的物理页的数据经过压缩而得到。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标处理方式,对所述逻辑页对应的物理页的数据进行复原,得到复原数据,包括:
如果所述目标处理方式为拆分,合并所述逻辑页对应的物理页的数据得到所述复原数据;
如果所述目标处理方式为压缩,解压缩所述逻辑页对应的物理页的数据得到所述复原数据。
5.根据权利要求1所述的方法,其特征在于,所述从闪存中读取所述逻辑页对应的物理页的数据之后,包括:
对所述逻辑页对应的物理页的数据进行纠错码解码。
6.根据权利要求1或2所述的方法,其特征在于,所述接收读请求之前,包括:
接收写请求,将所述写请求中待写入的所述原始数据划分为所述部分页数据;
将所述部分页数据分为全零部分页数据和非全零部分页数据;
根据所述部分页数据中所述全零部分页数据的分布信息,得到零位图;
压缩所述非全零部分页数据;
如果压缩所述非全零部分页数据成功,得到压缩数据,将所述压缩数据存储于缓存中;
如果压缩所述非全零部分页数据失败,判断所述非全零部分页数据是否能被拆分;
如果所述非全零部分页数据能被拆分,拆分所述非全零部分页数据,得到拆分数据,将所述拆分数据存储于所述缓存中;
根据处理所述非全零部分页数据的方式,确定所述标识符的值;
将所述存储于缓存中的数据写入闪存中,根据所述闪存中物理页的数据分布信息得到所述第一位图;
更新所述映射表中所述写入闪存中的数据对应的所述逻辑页与所述物理页的对应关系。
7.根据权利要求6所述的方法,其特征在于,所述接收写请求之前,包括:
如果所述写请求中待写入的原始数据的大小大于所述缓存中剩余存储空间的大小,将所述缓存中的数据全部写入所述闪存中。
8.根据权利要求6所述的方法,其特征在于,所述压缩所述非全零部分页数据,包括:
将所述非全零部分页数据拆分为多个小粒度单元,所述小粒度单元由不同的模式单元组成;
对所述小粒度单元进行压缩,得到每个所述小粒度单元的压缩结果;
汇总所述每个小粒度单元的压缩结果,确定所述非全零部分页数据是否压缩成功。
9.根据权利要求8所述的方法,其特征在于,所述对所述小粒度单元进行压缩,得到每个所述小粒度单元的压缩结果,包括:
经过对所述小粒度单元中各个模式单元的个数的统计,将所述个数最多的模式单元确定为主模式单元;
按照所述小粒度单元中与主模式单元相同的模式单元编码为1,与主模式单元不同的模式单元编码为0,生成所述小粒度单元的第二位图;
其中,所述压缩结果包括所述主模式单元、所述第二位图和所述未压缩数据,所述未压缩数据为与所述主模式单元不同的模式单元。
10.一种固态硬盘中数据处理装置,其特征在于,所述装置包括:
数据读取模块,用于接收读请求,根据所述读请求中的逻辑页在映射表中对应的第一位图确定所述读请求的读取方式,所述第一位图用于记录所述逻辑页对应的物理页的数据分布信息,所述读取方式包括部分读;数据读取模块,还用于通过所述读取方式,根据所述映射表中所述逻辑页与物理页的对应关系,从闪存中读取所述逻辑页对应的物理页的数据;
数据复原模块,用于根据所述映射表中所述逻辑页对应的标识符,确定所述逻辑页对应的物理页的数据经过目标处理方式而得到,所述目标处理方式包括压缩和/或拆分;数据复原模块,还用于根据所述目标处理方式,对所述逻辑页对应的物理页的数据进行复原,得到复原数据。
11.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至9中任一项所述的固态硬盘中数据处理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至9中任一项所述的固态硬盘中数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311107398.4A CN117008841A (zh) | 2023-08-30 | 2023-08-30 | 固态硬盘中数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311107398.4A CN117008841A (zh) | 2023-08-30 | 2023-08-30 | 固态硬盘中数据处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117008841A true CN117008841A (zh) | 2023-11-07 |
Family
ID=88569112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311107398.4A Pending CN117008841A (zh) | 2023-08-30 | 2023-08-30 | 固态硬盘中数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117008841A (zh) |
-
2023
- 2023-08-30 CN CN202311107398.4A patent/CN117008841A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8560926B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US10114578B2 (en) | Solid state disk and data moving method | |
TWI459396B (zh) | 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置 | |
WO2012140695A1 (en) | Storage control apparatus and error correction method | |
CN110795272B (zh) | 用于在可变大小的i/o上促进的原子性和延迟保证的方法和系统 | |
CN112486725B (zh) | 一种对压缩数据进行纠错编码的方法和装置 | |
CN102760099B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
US9274706B2 (en) | Data management method, memory control circuit unit and memory storage apparatus | |
US11074124B2 (en) | Method and system for enhancing throughput of big data analysis in a NAND-based read source storage | |
US10013187B2 (en) | Mapping table accessing method, memory control circuit unit and memory storage device | |
US9430327B2 (en) | Data access method, memory control circuit unit and memory storage apparatus | |
US11176033B2 (en) | Data storage devices and data processing methods | |
US10911064B1 (en) | Symbol pair encoding for data compression | |
US8595594B2 (en) | Data processing method, memory controller, and memory storage device | |
CN102591737B (zh) | 数据写入与读取方法、存储器控制器与存储器储存装置 | |
CN113094206A (zh) | 一种基于纠错的高速数据存取方法及装置 | |
CN117008841A (zh) | 固态硬盘中数据处理方法、装置、设备及存储介质 | |
WO2019007315A1 (zh) | 闪存设备中数据写入的方法及设备 | |
CN111897676A (zh) | 一种基于数据库索引的文件备份方法及装置 | |
CN112306382A (zh) | 快闪存储器控制器、储存装置及其读取方法 | |
US11055231B2 (en) | Data storage devices and data processing methods of skipping editing of fields in H2F table when consecutive addresses are present in F2H table | |
CN108595288A (zh) | 一种闪存资讯纠错方法 | |
US12038811B2 (en) | Memory controller and data processing method | |
CN109542359B (zh) | 一种数据重建方法、装置、设备及计算机可读存储介质 | |
CN117667873A (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 |