CN110175000A - 基于固态硬盘的读写性能提升方法、装置和计算机设备 - Google Patents
基于固态硬盘的读写性能提升方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN110175000A CN110175000A CN201910440115.5A CN201910440115A CN110175000A CN 110175000 A CN110175000 A CN 110175000A CN 201910440115 A CN201910440115 A CN 201910440115A CN 110175000 A CN110175000 A CN 110175000A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- template
- host
- buffer
- 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
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
-
- 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
- G06F3/0656—Data buffering arrangements
-
- 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)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本申请涉及一种基于固态硬盘的读写性能提升方法、装置、计算机设备和存储介质,其中该方法包括:获取主机提交的写命令请求,并建立SSD前端与主机的数据传输;数据传输完成之后,提交控制操作请求到模板匹配模块;所述模板匹配模块将主机写入的数据与预先例化的模板Buffer进行比对;若所述数据命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为1,同时将模板索引记录为命中的模板Buffer索引;将所述控制操作请求返回上层模块,当前端模块接收完成的控制操作请求后,则完成所述写命令请求。本发明通过识别主机写入的数据,与特定的模板数据进行匹配,实现了提高了固态硬盘的读写性能。
Description
技术领域
本发明涉及固态硬盘技术领域,特别是涉及一种基于固态硬盘的读写性能提升方法、装置、计算机设备和存储介质。
背景技术
目前,SSD(固态硬盘)已经被广泛应用于各种场合,由于其在性能、功耗、环境适应性等方面的优秀指标,正逐步替换传统的硬盘。随着SSD接口速率的提升,对SSD的整体性能要求也越来越高。
在传统技术中,现有的SSD产品主机写入的逻辑数据,会被分配相应的物理地址,同时会用逻辑到物理的映射表来跟踪该映射关系。对于存在大量重复数据特征的测试项中,每一笔数据均会被真实写入到NAND。与此同时,后续的读取也需要从NAND上读取,相应地性能会受制于NAND性能,造成了SSD读写性能受限。
发明内容
基于此,有必要针对上述技术问题,提供一种可以实现提升SSD读写性能的基于固态硬盘的读写性能提升方法、装置、计算机设备和存储介质。
一种基于固态硬盘的读写性能提升方法,所述方法包括:
获取主机提交的写命令请求,并建立SSD前端与主机的数据传输;
数据传输完成之后,提交控制操作请求到模板匹配模块;
所述模板匹配模块将主机写入的数据与预先例化的模板Buffer进行比对;
若所述数据命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为1,同时将模板索引记录为命中的模板Buffer索引;
将所述控制操作请求返回上层模块,当前端模块接收完成的控制操作请求后,则完成所述写命令请求。
在其中一个实施例中,在所述模板匹配模块将主机写入的数据与预先例化的模板Buffer进行比对的步骤之后还包括:
若所述数据没有命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为0;
所述映射表模块为所述数据分配对应NAND物理地址,并填入对应的映射表项的物理地址字段;
后端模块根据所述物理地址发起对NAND写请求;
NAND写请求完成后将所述控制操作请求依次返回上层模块,当前端模块接收完成的控制操作请求后,则完成所述写命令请求。
在其中一个实施例中,所述方法还包括:
获取主机提交的读命令请求,并根据所述请求查找映射表项;
若所述请求对应的映射表项的模板标志字段为1,则直接从内存中的模板Buffer进行数据传输。
在其中一个实施例中,所述获取主机提交的写命令请求,并建立SSD前端与主机的数据传输的步骤包括:
获取主机提交的写命令请求;
SSD前端模块将写命令分割成映射单元,并提交到读写缓冲区模块;
所述读写缓冲区管理模块从内存中分配缓冲区空间;
根据分配的缓冲区空间,建立所述SSD前端与主机的数据传输。
一种基于固态硬盘的读写性能提升装置,所述装置包括:
传输建立模块,所述传输建立模块用于获取主机提交的写命令请求,并建立SSD前端与主机的数据传输;
请求提交模块,所述请求提交模块用于数据传输完成之后,提交控制操作请求到模板匹配模块;
数据比对模块,所述数据比对模块用于所述模板匹配模块将主机写入的数据与预先例化的模板Buffer进行比对;
第一执行模块,所述第一执行模块用于若所述数据命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为1,同时将模板索引记录为命中的模板Buffer索引;将所述控制操作请求返回上层模块,当前端模块接收完成的控制操作请求后,则完成所述写命令请求。
在其中一个实施例中,所述装置还包括第二执行模块,所述第二执行模块用于:
若所述数据没有命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为0;
所述映射表模块为所述数据分配对应NAND物理地址,并填入对应的映射表项的物理地址字段;
后端模块根据所述物理地址发起对NAND写请求;
NAND写请求完成后将所述控制操作请求依次返回上层模块,当前端模块接收完成的控制操作请求后,则完成所述写命令请求。
在其中一个实施例中,所述装置还包括读命令响应模块,所述读命令响应模块用于:
获取主机提交的读命令请求,并根据所述请求查找映射表项;
若所述请求对应的映射表项的模板标志字段为1,则直接从内存中的模板Buffer进行数据传输。
在其中一个实施例中,所述传输建立模块还用于:
获取主机提交的写命令请求;
SSD前端模块将写命令分割成映射单元,并提交到读写缓冲区模块;
所述读写缓冲区管理模块从内存中分配缓冲区空间;
根据分配的缓冲区空间,建立所述SSD前端与主机的数据传输。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
上述基于固态硬盘的读写性能提升方法、装置、计算机设备和存储介质,通过获取主机提交的写命令请求,并建立SSD前端与主机的数据传输;数据传输完成之后,提交控制操作请求到模板匹配模块;所述模板匹配模块将主机写入的数据与预先例化的模板Buffer进行比对;若所述数据命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为1,同时将模板索引记录为命中的模板Buffer索引;将所述控制操作请求返回上层模块,当前端模块接收完成的控制操作请求后,则完成所述写命令请求。本发明针对重复的数据,在内存中建立模板,当识别出主机写入对应数据时,不再写入NAND,而是改写映射表为特定的模板索引,大大提升了写性能且降低了写放大,此外在后继数据读取时,可以根据映射表中所记录的信息,可直接从内存中返回对应的数据,大大提升了读性能。
附图说明
图1为传统技术中典型NAND组成的结构示意图;
图2为传统技术中SSD内部写入过程的示意图;
图3为一个实施例中基于固态硬盘的读写性能提升方法的流程示意图;
图4为另一个实施例中基于固态硬盘的读写性能提升方法的流程示意图;
图5为再一个实施例中基于固态硬盘的读写性能提升方法的流程示意图;
图6为又一个实施例中基于固态硬盘的读写性能提升方法的流程示意图;
图7为一个实施例中对映射表表项进行扩展的示意图;
图8为一个实施例中新增的模板Buffer的结构示意图;
图9为一个实施例中基于固态硬盘的读写性能提升方法的SSD内部写入过程的示意图;
图10为一个实施例中基于固态硬盘的读写性能提升装置的结构框图;
图11为另一个实施例中基于固态硬盘的读写性能提升装置的结构框图;
图12为再一个实施例中基于固态硬盘的读写性能提升装置的结构框图;
图13为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参考图1为典型的NAND组成示意图包括:DIE,可独立并发操作的单元;Block,可独立擦除的单元,其内各个物理位置的数据写入后在下一次写之前必须要将整个Block擦除;Page,读写单元,同一物理块内的Page必需按顺序编程:0->1->2->3…。
如图2所示,为传统技术中SSD内部的写入模型,具体包括:主机提交写命令到SSD。SSD前端模块将命令分割成映射单元(典型如4KB),提交到读写缓冲区模块。读写缓冲区管理模块从Memory中(典型如DRAM)分配空间。根据所分配的缓冲区空间,建立前端与主机的数据传输。完成数据传输后,提交操作请求到映射表管理模块。映射表管理模块负责为对应请求分配物理地址,并更新对应的映射表项(L2P表)。提交操作请求到后端模块,后端模块根据物理地址发起对NAND写请求。等待NAND操作请求完成,控制操作请求依次返回上层模块。前端模块接收到完成的控制操作请求后,完成命令写请求。
由此可见,在现有的SSD产品中,主机写入的逻辑数据,会被分配相应的物理地址,同时会用逻辑到物理的映射表来跟踪该映射关系。对于存在大量重复数据特征的测试项中,每一笔数据均会被真实写入到NAND,进而后续的读取也需要从NAND上读取,相应地性能会受制于NAND性能。
本发明基于上述技术问题,针对此类重复的数据,在内存中建立模板,当识别出主机写入对应数据时,不发起NAND写入操作,而是修改映射表,表征其指向特定的模板。后继数据读取时,根据映射表中所记录的信息,可直接从内存中返回对应的数据。
在一个实施例中,如图3所示,提供了一种基于固态硬盘的读写性能提升方法,该方法包括:
步骤302,获取主机提交的写命令请求,并建立SSD前端与主机的数据传输;
步骤304,数据传输完成之后,提交控制操作请求到模板匹配模块;
步骤306,模板匹配模块将主机写入的数据与预先例化的模板Buffer进行比对;
步骤308,若数据命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为1,同时将模板索引记录为命中的模板Buffer索引;
步骤310,将控制操作请求返回上层模块,当前端模块接收完成的控制操作请求后,则完成写命令请求。
具体地,首先,主机提交写命令到SSD,SSD前端模块将命令分割成映射单元(典型如4KB),提交到读写缓冲区模块,读写缓冲区管理模块从Memory中(典型如DRAM)分配空间,根据所分配的缓冲区空间,建立前端与主机的数据传输。
接着,完成数据传输后,提交操作请求到模板匹配模块,模板匹配模块将主机新写入的数据与系统中预先例化的模板Buffer比对。
具体地,如图7所示,为本实施例中对映射表表项进行扩展的示意图。其中,在传统的L2P表中,映射表表项一般分为三个字段:保留字段、Valid字段以及物理地址。其中,保留字段暂无用途,用来扩展用。Valid字段:1bit,为0则表示该数据从来没有被写过,故没有对应的物理地址;1的话则代表其被主机写过,其后的物理地址字段有效。物理地址:当Valid字段为1时,此字段表示存储对应数据的物理地址。
在本实施例中,为了表征主机写入的特定数据,扩展了保留字段,在保留字段中增加了模板标志以及模板索引。其中,模板标志:1bit,为0,则表示数据不在模板中,维持从传统L2P表项的“valid字段”+“物理地址”字段寻址的方式;为1,则表示对应的数据处于模板Buffer中。模板索引:当模板标志为1时,此字段代表数据所处的模板Buffer索引。
如图8所示,本实施例中新增模板Buffer,在内存中开辟一块专门的区域,格式化为特定的数据,数据的格式可以来自于预先采集的特征值,为便于说明,在一个具体的实施例中,分别例化了256种数据,分别代表:全0/1/2/…..255的情形。每个模板Buffer有对应的索引,当写入的数据命中对应的模板数据时,则将直接建立关联。
若数据命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为1,同时将模板索引记录为命中的模板Buffer索引。将控制操作请求返回上层模块,当前端模块接收完成的控制操作请求后,则完成写命令请求。
在本实施例中,通过获取主机提交的写命令请求,并建立SSD前端与主机的数据传输;数据传输完成之后,提交控制操作请求到模板匹配模块;模板匹配模块将主机写入的数据与预先例化的模板Buffer进行比对;若数据命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为1,同时将模板索引记录为命中的模板Buffer索引;将控制操作请求返回上层模块,当前端模块接收完成的控制操作请求后,则完成写命令请求。本实施例中针对重复的数据,在内存中建立模板,当识别出主机写入对应数据时,不再写入NAND,而是改写映射表为特定的模板索引,大大提升了写性能且降低了写放大,此外在后继数据读取时,可以根据映射表中所记录的信息,可直接从内存中返回对应的数据,大大提升了读性能。
在一个实施例中,如图4所示,提供了一种基于固态硬盘的读写性能提升方法,该方法中获取主机提交的写命令请求,并建立SSD前端与主机的数据传输的步骤包括:
步骤402,获取主机提交的写命令请求;
步骤404,SSD前端模块将写命令分割成映射单元,并提交到读写缓冲区模块;
步骤406,读写缓冲区管理模块从内存中分配缓冲区空间;
步骤408,根据分配的缓冲区空间,建立SSD前端与主机的数据传输。
在一个实施例中,如图5所示,提供了一种基于固态硬盘的读写性能提升方法,该方法在模板匹配模块将主机写入的数据与预先例化的模板Buffer进行比对的步骤之后还包括:
步骤502,若数据没有命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为0;
步骤504,映射表模块为所述数据分配对应NAND物理地址,并填入对应的映射表项的物理地址字段;
步骤506,后端模块根据物理地址发起对NAND写请求;
步骤508,NAND写请求完成后将控制操作请求依次返回上层模块,当前端模块接收完成的控制操作请求后,则完成写命令请求。
在本实施例中通过新增了模板匹配模块,用来识别主机写入的数据是否命中模板数据。具体地,参考图9,本实施例提供的固态硬盘数据写入流程包括:
1)主机提交写命令到SSD。
2)SSD前端模块将命令分割成映射单元(典型如4KB),提交到读写缓冲区模块。
3)读写缓冲区管理模块从Memory中(典型如DRAM)分配空间。
4)根据所分配的缓冲区空间,建立前端与主机的数据传输。
5)完成数据传输后,提交操作请求到模板匹配模块。
6)模板匹配模块将主机新写入的数据与系统中预先例化的模板Buffer比对
-如果命中模板Buffer某个数据,则提交到映射表模块,将对应的映射表项的模板标志置为1,同时模板索引记录为命中的模板Buffer索引,将控制请求返回上层模块,跳转到9)执行。
-如果没有命中模板Buffer,则提交到映射表模块,将对应的映射表项的模板标志置为0,同时映射表模块为对应数据分配NAND物理地址,填入对应的映射表项的物理地址字段。
7)提交操作请求到后端模块,后端模块根据物理地址发起对NAND写请求。
8)等待NAND操作请求完成,控制操作请求依次返回上层模块。
9)前端模块接收到完成的控制操作请求后,完成命令写请求。
在本实施例中,对于匹配的写入请求,不再写入NAND,而是改写映射表为特定的模板索引,大大提升了写性能且降低了写放大。
在一个实施例中,如图6所示,提供了一种基于固态硬盘的读写性能提升方法,该方法还包括:
步骤602,获取主机提交的读命令请求,并根据请求查找映射表项;
步骤604,若请求对应的映射表项的模板标志字段为1,则直接从内存中的模板Buffer进行数据传输。
具体地,当读取数据时,对应读请求查找映射表项,如果对应的映射表项的模板标志字段为1,则不需要发起NAND读操作,直接从内存中的模板Buffer进行数据传输即可,大大提升了读性能。
在本实施例中,当后续主机读取数据时,检查到对应的映射表项值为模板索引,则不发起NAND读取,直接从格式化好的内存中传输数据,大大提升了读性能。
应该理解的是,虽然图2-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图10所示,提供了一种基于固态硬盘的读写性能提升装置1000,该装置包括:
传输建立模块1001,用于获取主机提交的写命令请求,并建立SSD前端与主机的数据传输;
请求提交模块1002,用于数据传输完成之后,提交控制操作请求到模板匹配模块;
数据比对模块1003,用于模板匹配模块将主机写入的数据与预先例化的模板Buffer进行比对;
第一执行模块1004,用于若数据命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为1,同时将模板索引记录为命中的模板Buffer索引;将控制操作请求返回上层模块,当前端模块接收完成的控制操作请求后,则完成写命令请求。
在一个实施例中,如图11所示,提供了一种基于固态硬盘的读写性能提升装置1000,该装置还包括第二执行模块1005,用于:
若数据没有命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为0;
映射表模块为数据分配对应NAND物理地址,并填入对应的映射表项的物理地址字段;
后端模块根据物理地址发起对NAND写请求;
NAND写请求完成后将控制操作请求依次返回上层模块,当前端模块接收完成的控制操作请求后,则完成写命令请求。
在一个实施例中,如图12所示,提供了一种基于固态硬盘的读写性能提升装置1000,该装置还包括读命令响应模块1006,用于:
获取主机提交的读命令请求,并根据请求查找映射表项;
若请求对应的映射表项的模板标志字段为1,则直接从内存中的模板Buffer进行数据传输。
在一个实施例中,传输建立模块1001还用于:
获取主机提交的写命令请求;
SSD前端模块将写命令分割成映射单元,并提交到读写缓冲区模块;
读写缓冲区管理模块从内存中分配缓冲区空间;
根据分配的缓冲区空间,建立SSD前端与主机的数据传输。
关于基于固态硬盘的读写性能提升装置的具体限定可以参见上文中对于基于固态硬盘的读写性能提升方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图13所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于固态硬盘的读写性能提升方法。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于固态硬盘的读写性能提升方法,所述方法包括:
获取主机提交的写命令请求,并建立SSD前端与主机的数据传输;
数据传输完成之后,提交控制操作请求到模板匹配模块;
所述模板匹配模块将主机写入的数据与预先例化的模板Buffer进行比对;
若所述数据命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为1,同时将模板索引记录为命中的模板Buffer索引;
将所述控制操作请求返回上层模块,当前端模块接收完成的控制操作请求后,则完成所述写命令请求。
2.根据权利要求1所述的基于固态硬盘的读写性能提升方法,其特征在于,在所述模板匹配模块将主机写入的数据与预先例化的模板Buffer进行比对的步骤之后还包括:
若所述数据没有命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为0;
所述映射表模块为所述数据分配对应NAND物理地址,并填入对应的映射表项的物理地址字段;
后端模块根据所述物理地址发起对NAND写请求;
NAND写请求完成后将所述控制操作请求依次返回上层模块,当前端模块接收完成的控制操作请求后,则完成所述写命令请求。
3.根据权利要求1或2所述的基于固态硬盘的读写性能提升方法,其特征在于,所述方法还包括:
获取主机提交的读命令请求,并根据所述请求查找映射表项;
若所述请求对应的映射表项的模板标志字段为1,则直接从内存中的模板Buffer进行数据传输。
4.根据权利要求3所述的基于固态硬盘的读写性能提升方法,其特征在于,所述获取主机提交的写命令请求,并建立SSD前端与主机的数据传输的步骤包括:
获取主机提交的写命令请求;
SSD前端模块将写命令分割成映射单元,并提交到读写缓冲区模块;
所述读写缓冲区管理模块从内存中分配缓冲区空间;
根据分配的缓冲区空间,建立所述SSD前端与主机的数据传输。
5.一种基于固态硬盘的读写性能提升装置,其特征在于,所述装置包括:
传输建立模块,所述传输建立模块用于获取主机提交的写命令请求,并建立SSD前端与主机的数据传输;
请求提交模块,所述请求提交模块用于数据传输完成之后,提交控制操作请求到模板匹配模块;
数据比对模块,所述数据比对模块用于所述模板匹配模块将主机写入的数据与预先例化的模板Buffer进行比对;
第一执行模块,所述第一执行模块用于若所述数据命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为1,同时将模板索引记录为命中的模板Buffer索引;将所述控制操作请求返回上层模块,当前端模块接收完成的控制操作请求后,则完成所述写命令请求。
6.根据权利要求5所述的基于固态硬盘的读写性能提升装置,其特征在于,所述装置还包括第二执行模块,所述第二执行模块用于:
若所述数据没有命中模板Buffer中的任意数据,则将映射表模块中对应的映射表项的模板标志置为0;
所述映射表模块为所述数据分配对应NAND物理地址,并填入对应的映射表项的物理地址字段;
后端模块根据所述物理地址发起对NAND写请求;
NAND写请求完成后将所述控制操作请求依次返回上层模块,当前端模块接收完成的控制操作请求后,则完成所述写命令请求。
7.根据权利要求5或6所述的基于固态硬盘的读写性能提升装置,其特征在于,所述装置还包括读命令响应模块,所述读命令响应模块用于:
获取主机提交的读命令请求,并根据所述请求查找映射表项;
若所述请求对应的映射表项的模板标志字段为1,则直接从内存中的模板Buffer进行数据传输。
8.根据权利要求7所述的基于固态硬盘的读写性能提升装置,其特征在于,所述传输建立模块还用于:
获取主机提交的写命令请求;
SSD前端模块将写命令分割成映射单元,并提交到读写缓冲区模块;
所述读写缓冲区管理模块从内存中分配缓冲区空间;
根据分配的缓冲区空间,建立所述SSD前端与主机的数据传输。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910440115.5A CN110175000A (zh) | 2019-05-24 | 2019-05-24 | 基于固态硬盘的读写性能提升方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910440115.5A CN110175000A (zh) | 2019-05-24 | 2019-05-24 | 基于固态硬盘的读写性能提升方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110175000A true CN110175000A (zh) | 2019-08-27 |
Family
ID=67695665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910440115.5A Pending CN110175000A (zh) | 2019-05-24 | 2019-05-24 | 基于固态硬盘的读写性能提升方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110175000A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433673A (zh) * | 2020-11-13 | 2021-03-02 | 苏州浪潮智能科技有限公司 | 一种固态硬盘存储数据的方法和设备 |
WO2021218101A1 (zh) * | 2020-04-26 | 2021-11-04 | 北京泽石科技有限公司 | 固态硬盘的缓存管理系统、方法、装置 |
CN113721838A (zh) * | 2021-07-22 | 2021-11-30 | 成都忆芯科技有限公司 | 用于存储设备的写、读数据方法、存储控制器以及dma引擎 |
CN117806709A (zh) * | 2024-02-29 | 2024-04-02 | 山东云海国创云计算装备产业创新中心有限公司 | 系统级芯片的性能优化方法、装置、设备和存储介质 |
CN117806709B (zh) * | 2024-02-29 | 2024-06-07 | 山东云海国创云计算装备产业创新中心有限公司 | 系统级芯片的性能优化方法、装置、设备和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630290A (zh) * | 2009-08-17 | 2010-01-20 | 成都市华为赛门铁克科技有限公司 | 重复数据处理方法和装置 |
CN103473179A (zh) * | 2013-08-09 | 2013-12-25 | 记忆科技(深圳)有限公司 | 后台系统及其删除固态硬盘重复数据的方法 |
CN107256196A (zh) * | 2017-06-13 | 2017-10-17 | 北京中航通用科技有限公司 | 基于闪存阵列的支持零拷贝的缓存系统及方法 |
CN108563401A (zh) * | 2018-03-27 | 2018-09-21 | 深圳忆联信息系统有限公司 | 一种ssd性能加速方法 |
US20180341429A1 (en) * | 2017-05-25 | 2018-11-29 | Western Digital Technologies, Inc. | Non-Volatile Memory Over Fabric Controller with Memory Bypass |
CN109101444A (zh) * | 2018-08-22 | 2018-12-28 | 深圳忆联信息系统有限公司 | 一种降低固态硬盘随机读延迟的方法及装置 |
CN109582227A (zh) * | 2018-11-15 | 2019-04-05 | 深圳忆联信息系统有限公司 | 固态硬盘写入方法、装置、计算机设备和存储介质 |
CN109697037A (zh) * | 2019-01-22 | 2019-04-30 | 深圳忆联信息系统有限公司 | 节省本地dram的方法、装置、计算机设备及存储介质 |
CN109783024A (zh) * | 2019-01-09 | 2019-05-21 | 深圳忆联信息系统有限公司 | 数据存储处理方法及装置 |
-
2019
- 2019-05-24 CN CN201910440115.5A patent/CN110175000A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630290A (zh) * | 2009-08-17 | 2010-01-20 | 成都市华为赛门铁克科技有限公司 | 重复数据处理方法和装置 |
CN103473179A (zh) * | 2013-08-09 | 2013-12-25 | 记忆科技(深圳)有限公司 | 后台系统及其删除固态硬盘重复数据的方法 |
US20180341429A1 (en) * | 2017-05-25 | 2018-11-29 | Western Digital Technologies, Inc. | Non-Volatile Memory Over Fabric Controller with Memory Bypass |
CN107256196A (zh) * | 2017-06-13 | 2017-10-17 | 北京中航通用科技有限公司 | 基于闪存阵列的支持零拷贝的缓存系统及方法 |
CN108563401A (zh) * | 2018-03-27 | 2018-09-21 | 深圳忆联信息系统有限公司 | 一种ssd性能加速方法 |
CN109101444A (zh) * | 2018-08-22 | 2018-12-28 | 深圳忆联信息系统有限公司 | 一种降低固态硬盘随机读延迟的方法及装置 |
CN109582227A (zh) * | 2018-11-15 | 2019-04-05 | 深圳忆联信息系统有限公司 | 固态硬盘写入方法、装置、计算机设备和存储介质 |
CN109783024A (zh) * | 2019-01-09 | 2019-05-21 | 深圳忆联信息系统有限公司 | 数据存储处理方法及装置 |
CN109697037A (zh) * | 2019-01-22 | 2019-04-30 | 深圳忆联信息系统有限公司 | 节省本地dram的方法、装置、计算机设备及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021218101A1 (zh) * | 2020-04-26 | 2021-11-04 | 北京泽石科技有限公司 | 固态硬盘的缓存管理系统、方法、装置 |
CN112433673A (zh) * | 2020-11-13 | 2021-03-02 | 苏州浪潮智能科技有限公司 | 一种固态硬盘存储数据的方法和设备 |
CN112433673B (zh) * | 2020-11-13 | 2022-08-09 | 苏州浪潮智能科技有限公司 | 一种固态硬盘存储数据的方法和设备 |
CN113721838A (zh) * | 2021-07-22 | 2021-11-30 | 成都忆芯科技有限公司 | 用于存储设备的写、读数据方法、存储控制器以及dma引擎 |
CN113721838B (zh) * | 2021-07-22 | 2023-12-19 | 成都忆芯科技有限公司 | 用于存储设备的写、读数据方法、存储控制器以及dma引擎 |
CN117806709A (zh) * | 2024-02-29 | 2024-04-02 | 山东云海国创云计算装备产业创新中心有限公司 | 系统级芯片的性能优化方法、装置、设备和存储介质 |
CN117806709B (zh) * | 2024-02-29 | 2024-06-07 | 山东云海国创云计算装备产业创新中心有限公司 | 系统级芯片的性能优化方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10761731B2 (en) | Array controller, solid state disk, and method for controlling solid state disk to write data | |
US10296224B2 (en) | Apparatus, system and method for increasing the capacity of a storage device available to store user data | |
CN109582227A (zh) | 固态硬盘写入方法、装置、计算机设备和存储介质 | |
CN110175000A (zh) | 基于固态硬盘的读写性能提升方法、装置和计算机设备 | |
US8010770B2 (en) | Caching device for NAND flash translation layer | |
CN108563401B (zh) | 一种ssd性能加速方法 | |
US9710191B1 (en) | Rapid memory buffer write storage system and method | |
US10168926B2 (en) | Method of operating data storage device and method of operating data processing system including same | |
CN110209355A (zh) | 基于固态硬盘的全固件读写操作优化方法和装置 | |
CN103106143A (zh) | 固态储存装置及其逻辑至实体对应表建立方法 | |
US20170160940A1 (en) | Data processing method and apparatus of solid state disk | |
TW201935223A (zh) | 記憶體系統及其控制方法 | |
CN109460186A (zh) | 一种提升固态硬盘读性能的方法及其系统 | |
CN102650972B (zh) | 数据存储方法、装置及系统 | |
US9569113B2 (en) | Data storage device and operating method thereof | |
TWI749279B (zh) | 資料儲存裝置與資料處理方法 | |
CN114022148B (zh) | 基于区块链的交易冲突检测方法、装置、设备和存储介质 | |
US8856468B2 (en) | Memory device capable of improving write processing speed and memory control method | |
US20140269086A1 (en) | System and method of accessing memory of a data storage device | |
US9927996B2 (en) | Information processing device | |
CN114974365A (zh) | Ssd有限窗口数据去重识别方法、装置和计算机设备 | |
CN110442531B (zh) | 基于固态硬盘的读性能提升方法、装置和计算机设备 | |
US10559359B2 (en) | Method for rewriting data in nonvolatile memory and semiconductor device | |
CN109213424B (zh) | 并发io命令的无锁处理方法 | |
CN117093160B (zh) | Cache的数据处理方法、装置、计算机设备和介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190827 |