CN110888602A - 基于固态硬盘的读性能提升方法、装置及计算机设备 - Google Patents

基于固态硬盘的读性能提升方法、装置及计算机设备 Download PDF

Info

Publication number
CN110888602A
CN110888602A CN201911127041.6A CN201911127041A CN110888602A CN 110888602 A CN110888602 A CN 110888602A CN 201911127041 A CN201911127041 A CN 201911127041A CN 110888602 A CN110888602 A CN 110888602A
Authority
CN
China
Prior art keywords
solid state
state disk
host
read command
reading
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
Application number
CN201911127041.6A
Other languages
English (en)
Inventor
韩道静
吴娴
刘金雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN201911127041.6A priority Critical patent/CN110888602A/zh
Publication of CN110888602A publication Critical patent/CN110888602A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请涉及一种基于固态硬盘的读性能提升方法、装置、计算机设备及存储介质,其中该方法包括:获取基于固态硬盘的读性能提升请求;根据所述基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;解析所述读命令得到所述读命令的LBA、LBA Size及Data buffer地址;从所述固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断所述对应LBA有没有映射;若所述对应LBA没有映射,则所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知所述读命令已完成。本发明有效的减少SSD的数据传输延时,提升了SSD的读性能以及主机整体系统的性能。

Description

基于固态硬盘的读性能提升方法、装置及计算机设备
技术领域
本发明涉及固态硬盘技术领域,特别是涉及一种基于固态硬盘的读性能提升方法、装置、计算机设备及存储介质。
背景技术
目前,SSD(Solid State Disk,固态硬盘)已经被广泛应用于各种场合,NVME SSD固态硬盘作为一种新型存储介质,相比于传统HDD(机械硬盘),其最大优势在于很高的读写性能,读性能最高能到3.5GB/s。但是相对于主机端的DDR带宽,例如DDR3-2400双通道的带宽可达65GB/s,NVME SSD的读性能相比就差了非常多。
在传统技术中,对于无映射的数据,SSD需要在其DRAM中格式化好固定格式后,再通过PCIE总线写入到主机内存,由于数据经过PCIE总线,导致有延时产生,SSD读性能无法进一步提升,降低了整个系统的性能。
发明内容
基于此,有必要针对上述技术问题,提供一种可以消除读SSD无映射LBA数据带来的延时以提升SSD读性能的基于固态硬盘的读性能提升方法、装置、计算机设备及存储介质。
一种基于固态硬盘的读性能提升方法,所述方法包括:
获取基于固态硬盘的读性能提升请求;
根据所述基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;
解析所述读命令得到所述读命令的LBA、LBA Size及Data buffer地址;
从所述固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断所述对应LBA有没有映射;
若所述对应LBA没有映射,则所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知所述读命令已完成。
在其中一个实施例中,在所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知所述读命令已完成的步骤之后还包括:
主机查询Door bell得知读命令完成后,读取CQ中对应命令完成的状态字段信息;
若根据所述状态字段信息得知要读到数据是无映射的,则所述主机直接通过DMA对主机内存的Data buffer进行写0XFF数据。
在其中一个实施例中,在所述固态硬盘从主机内存SQ队列中读取对应的读命令到本地的步骤之前还包括:
主机将读命令写入到主机内存中的SQ队列中;
所述主机发送中断通知对应的固态硬盘有新的读命令。
在其中一个实施例中,所述CQ中Status Filed的Status Code type为1,StatusCode为0XBF,即表示对应的读命令是一个无映射的数据。
一种基于固态硬盘的读性能提升装置,所述装置包括:
获取模块,所述获取模块用于获取基于固态硬盘的读性能提升请求;
读取模块,所述读取模块用于根据所述基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;
解析模块,所述解析模块用于解析所述读命令得到所述读命令的LBA、LBA Size及Data buffer地址;
判断模块,所述判断模块用于从所述固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断所述对应LBA有没有映射;
写入更新模块,所述写入更新模块用于若所述对应LBA没有映射,则所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知所述读命令已完成。
在其中一个实施例中,所述装置还包括状态查询模块,所述状态查询模块用于:
主机查询Door bell得知读命令完成后,读取CQ中对应命令完成的状态字段信息;
若根据所述状态字段信息得知要读到数据是无映射的,则所述主机直接通过DMA对主机内存的Data buffer进行写0XFF数据。
在其中一个实施例中,所述装置还包括:
命令写入模块,所述命令写入模块用于主机将读命令写入到主机内存中的SQ队列中;
中断通知模块,所述中断通知模块用于所述主机发送中断通知对应的固态硬盘有新的读命令。
在其中一个实施例中,所述CQ中Status Filed的Status Code type为1,StatusCode为0XBF,即表示对应的读命令是一个无映射的数据。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
上述基于固态硬盘的读性能提升方法、装置、计算机设备和存储介质,通过获取基于固态硬盘的读性能提升请求;根据所述基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;解析所述读命令得到所述读命令的LBA、LBASize及Data buffer地址;从所述固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断所述对应LBA有没有映射;若所述对应LBA没有映射,则所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知所述读命令已完成。本发明当Host读取SSD的LBA没有映射时,即这个LBA之前没有写入数据或已经被Trim掉,可以直接使用主机端的DRAM进行数据传输,实现了有效的减少SSD的数据传输延时,提升了SSD的读性能以及主机整体系统的性能。
附图说明
图1为传统技术中读命令处理的系统构架图;
图2为一个实施例中读命令处理的系统构架图;
图3为一个实施例中基于固态硬盘的读性能提升方法的流程示意图;
图4为另一个实施例中基于固态硬盘的读性能提升方法的流程示意图;
图5为再一个实施例中基于固态硬盘的读性能提升方法的流程示意图;
图6为一个实施例中CQ的定义图表及CQ中Status Filed的定义图表;
图7为一个实施例中基于固态硬盘的读性能提升装置的结构框图;
图8为另一个实施例中基于固态硬盘的读性能提升装置的结构框图;
图9为再一个实施例中基于固态硬盘的读性能提升装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
目前,在传统的技术方案中,参考如图1所示的传统技术中读命令处理的系统构架图,当Host读取SSD的LBA(逻辑地址)没有映射时,步骤如下:
1.HOST将Read Command写入到主机内存中的SQ(发送命令)队列中。
2.HOST发送中断通知SSD有新的Read Command。
3.SSD从主机内存SQ队列中读取Read Command到SSD本地。
4.SSD解析Read Command,得到Read Command的LBA、LBA Size以及Data buffer(用于存放SSD传输过来的读数据)地址。
5.SSD从其DRAM中申请Read buffer用于将读到的数据通过PCIE总线传输给HOST。
6.SSD从其DRAM中的映射表中读取对应LBA的映射信息,发现对应的LBA是没有映射的。
7.SSD直接对刚才步骤5中申请的Read buffer进行写全0xFF操作。
8.SSD通过PCIE总线将刚才的Read buffer数据(全0xFF)传输写入到主机内存中。
9.数据传输完后,SSD写入完成状态到主机内存中的CQ(完成命令)队列中,并且更新CQ的Door bell通知读命令已完成。CQ的Status Code Type=0,Status Code=0。
10.HOST查询Door bell得知Read命令完成,然后读取CQ中对应命令完成状态字段信息,根据完成状态信息,得知Read命令完成。
可以看出现有方案中,对于无映射的数据,SSD需要在其DRAM中格式化好固定格式后,再通过PCIE总线写入到主机内存,由于数据经过PCIE总线,导致有延时产生,SSD读性能无法进一步提升,降低了整个系统的性能。基于此,本发明提出一种基于固态硬盘的读性能提升方法,对于无映射的数据可以不通过PCIE总线进行传输,消除了总线传输延时,提升了SSD读性能以及整个系统性能。
在一个实施例中,如图3所示,提供了一种基于固态硬盘的读性能提升方法,该方法应用于如图2所示的系统构架图中包括:
步骤302,获取基于固态硬盘的读性能提升请求;
步骤304,根据基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;
步骤306,解析读命令得到读命令的LBA、LBA Size及Data buffer地址;
步骤308,从固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断对应LBA有没有映射;
步骤310,若对应LBA没有映射,则固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知读命令已完成。
具体地,首先,SSD获取基于固态硬盘的读性能提升请求,并根据该请求从主机内存SQ队列中读取对应的读命令到本地。然后,SSD解析给读取到的读命令,得到该命令的LBA、LBA Size以及Data buffer地址,Data buffer地址用于存放SSD传输过来的读数据。接着,SSD从其DRAM中的映射表中读取对应LBA的映射信息,若发现对应的LBA没有映射,则直接写入完成状态到主机内存中的CQ(完成命令)队列中,并且更新CQ的Door bell通知读命令已完成。
在一个具体的实施例中,CQ中Status Filed的Status Code type为1,StatusCode为0XBF,即表示对应的读命令是一个无映射的数据。
具体地,参考结合图6所示的CQ的定义图表及CQ中Status Filed的定义图表,Host通过Status Filed中Status code type和Status code得知命令完成状态。在本实施例中,新增一个Status code的定义为0XBF,表示SSD返回读到了无映射数据。HOST根据这个信息得知是无映射的,直接通过DMA(Direct Memory Access,直接内存存取)对主机内存中的Data buffer进行写0xFF数据,这样就可以消除SSD传输数据的延时,提升SSD读性能及整个系统性能。
在上述实施例中,通过获取基于固态硬盘的读性能提升请求;根据基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;解析读命令得到读命令的LBA、LBA Size及Data buffer地址;从固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断对应LBA有没有映射;若对应LBA没有映射,则固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知读命令已完成。上述方案中,当Host读取SSD的LBA没有映射时,即这个LBA之前没有写入数据或已经被Trim掉,可以直接使用主机端的DRAM进行数据传输,实现了有效的减少SSD的数据传输延时,提升了SSD的读性能以及主机整体系统的性能。
在一个实施例中,如图4所示,提供了一种基于固态硬盘的读性能提升方法,该方法在固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知读命令已完成的步骤之后还包括:
步骤402,主机查询Door bell得知读命令完成后,读取CQ中对应命令完成的状态字段信息;
步骤404,若根据状态字段信息得知要读到数据是无映射的,则主机直接通过DMA对主机内存的Data buffer进行写0XFF数据。
在一个实施例中,如图5所示,提供了一种基于固态硬盘的读性能提升方法,该方法在固态硬盘从主机内存SQ队列中读取对应的读命令到本地的步骤之前还包括:
步骤502,主机将读命令写入到主机内存中的SQ队列中;
步骤504,主机发送中断通知对应的固态硬盘有新的读命令。
具体地,在本实施例中提供了一个完整的基于固态硬盘的读性能提升方法,详细步骤包括:
1、HOST将Read Command写入到主机内存中的SQ队列中。
2、HOST发送中断通知SSD有新的Read Command。
3、SSD从主机内存SQ队列中读取Read Command到SSD本地。
4、SSD解析Read Command,得到Read Command的LBA、LBA Size以及Data buffer地址。
5、SSD从其DRAM中的映射表中读取对应LBA的映射信息,发现对应的LBA没有映射。
6、SSD直接写入完成状态到主机内存中的CQ队列中,并且更新CQ的Door bell通知读命令已完成。CQ中的Status Code type=1,Status Code=0XBF,表示对应的ReadCommand读的是一个无映射的数据。
7、HOST查询Door bell得知Read命令完成,然后读取CQ中对应命令完成状态字段信息,根据完成状态信息,得知要读到的数据是无映射的。
8、HOST直接通过DMA对主机内存的Data buffer进行写0XFF数据,完成之后,上层应用就可以得到正确的无映射数据。同等数据量下面DMA对主机内存的写延迟仅为SSD传输数据的约二十分之一(3.5GB/s/65GB/s)。
在上述实施例中,通过SSD返回给HOST的CQ里信息标注是无映射的LBA信息,HOST根据这个信息得知是无映射的,直接通过DMA对主机内存中的Data buffer进行写0xFF数据,这样就可以消除SSD传输数据的延时,提升SSD读性能及整个系统性能。
应该理解的是,虽然图3-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种基于固态硬盘的读性能提升装置700,该装置包括:
获取模块701,用于获取基于固态硬盘的读性能提升请求;
读取模块702,用于根据基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;
解析模块703,用于解析读命令得到读命令的LBA、LBA Size及Data buffer地址;
判断模块704,用于从固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断对应LBA有没有映射;
写入更新模块705,用于若对应LBA没有映射,则固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知读命令已完成。
在一个实施例中,如图8所示,提供了一种基于固态硬盘的读性能提升装置700,该装置还包括状态查询模块706,用于:
主机查询Door bell得知读命令完成后,读取CQ中对应命令完成的状态字段信息;若根据状态字段信息得知要读到数据是无映射的,则主机直接通过DMA对主机内存的Databuffer进行写0XFF数据。
在一个实施例中,如图9所示,提供了一种基于固态硬盘的读性能提升装置700,该装置还包括:
命令写入模块707,用于主机将读命令写入到主机内存中的SQ队列中;
中断通知模块708,用于主机发送中断通知对应的固态硬盘有新的读命令。
在其中一个实施例中,CQ中Status Filed的Status Code type为1,Status Code为0XBF,即表示对应的读命令是一个无映射的数据。
关于基于固态硬盘的读性能提升装置的具体限定可以参见上文中对于基于固态硬盘的读性能提升方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图10所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于固态硬盘的读性能提升方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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.一种基于固态硬盘的读性能提升方法,其特征在于,所述方法包括:
获取基于固态硬盘的读性能提升请求;
根据所述基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;
解析所述读命令得到所述读命令的LBA、LBA Size及Data buffer地址;
从所述固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断所述对应LBA有没有映射;
若所述对应LBA没有映射,则所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知所述读命令已完成。
2.根据权利要求1所述的基于固态硬盘的读性能提升方法,其特征在于,在所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知所述读命令已完成的步骤之后还包括:
主机查询Door bell得知读命令完成后,读取CQ中对应命令完成的状态字段信息;
若根据所述状态字段信息得知要读到数据是无映射的,则所述主机直接通过DMA对主机内存的Data buffer进行写0XFF数据。
3.根据权利要求2所述的基于固态硬盘的读性能提升方法,其特征在于,在所述固态硬盘从主机内存SQ队列中读取对应的读命令到本地的步骤之前还包括:
主机将读命令写入到主机内存中的SQ队列中;
所述主机发送中断通知对应的固态硬盘有新的读命令。
4.根据权利要求1-3任一项所述的基于固态硬盘的读性能提升方法,其特征在于,所述CQ中Status Filed的Status Code type为1,Status Code为0XBF,即表示对应的读命令是一个无映射的数据。
5.一种基于固态硬盘的读性能提升装置,其特征在于,所述装置包括:
获取模块,所述获取模块用于获取基于固态硬盘的读性能提升请求;
读取模块,所述读取模块用于根据所述基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;
解析模块,所述解析模块用于解析所述读命令得到所述读命令的LBA、LBA Size及Databuffer地址;
判断模块,所述判断模块用于从所述固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断所述对应LBA有没有映射;
写入更新模块,所述写入更新模块用于若所述对应LBA没有映射,则所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知所述读命令已完成。
6.根据权利要求5所述的基于固态硬盘的读性能提升装置,其特征在于,所述装置还包括状态查询模块,所述状态查询模块用于:
主机查询Door bell得知读命令完成后,读取CQ中对应命令完成的状态字段信息;
若根据所述状态字段信息得知要读到数据是无映射的,则所述主机直接通过DMA对主机内存的Data buffer进行写0XFF数据。
7.根据权利要求6所述的基于固态硬盘的读性能提升装置,其特征在于,所述装置还包括:
命令写入模块,所述命令写入模块用于主机将读命令写入到主机内存中的SQ队列中;
中断通知模块,所述中断通知模块用于所述主机发送中断通知对应的固态硬盘有新的读命令。
8.根据权利要求5-7任一项所述的基于固态硬盘的读性能提升装置,其特征在于,所述CQ中Status Filed的Status Code type为1,Status Code为0XBF,即表示对应的读命令是一个无映射的数据。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
CN201911127041.6A 2019-11-18 2019-11-18 基于固态硬盘的读性能提升方法、装置及计算机设备 Pending CN110888602A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911127041.6A CN110888602A (zh) 2019-11-18 2019-11-18 基于固态硬盘的读性能提升方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911127041.6A CN110888602A (zh) 2019-11-18 2019-11-18 基于固态硬盘的读性能提升方法、装置及计算机设备

Publications (1)

Publication Number Publication Date
CN110888602A true CN110888602A (zh) 2020-03-17

Family

ID=69747807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911127041.6A Pending CN110888602A (zh) 2019-11-18 2019-11-18 基于固态硬盘的读性能提升方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN110888602A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112835520A (zh) * 2021-01-29 2021-05-25 深圳忆联信息系统有限公司 基于映射表动态加载的读请求处理方法及装置
CN113971006A (zh) * 2021-10-31 2022-01-25 苏州浪潮智能科技有限公司 一种基于硬盘的数据写入方法、系统、存储介质及设备
CN114296653A (zh) * 2021-12-29 2022-04-08 深圳忆联信息系统有限公司 基于固态硬盘的加速映射表更新方法、装置及计算机设备
WO2022141250A1 (zh) * 2020-12-30 2022-07-07 华为技术有限公司 数据传输方法和相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461387A (zh) * 2014-12-02 2015-03-25 记忆科技(深圳)有限公司 一种提高固态硬盘对未映射区域的读性能的方法
CN108549610A (zh) * 2018-03-27 2018-09-18 深圳忆联信息系统有限公司 一种NVMe扩展的实现方法及固态硬盘
CN108572797A (zh) * 2018-03-07 2018-09-25 深圳忆联信息系统有限公司 一种固态硬盘读性能加速方法
CN109375870A (zh) * 2018-09-18 2019-02-22 深圳忆联信息系统有限公司 一种加速ssd主控芯片d2h无映射读取的方法及其系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461387A (zh) * 2014-12-02 2015-03-25 记忆科技(深圳)有限公司 一种提高固态硬盘对未映射区域的读性能的方法
CN108572797A (zh) * 2018-03-07 2018-09-25 深圳忆联信息系统有限公司 一种固态硬盘读性能加速方法
CN108549610A (zh) * 2018-03-27 2018-09-18 深圳忆联信息系统有限公司 一种NVMe扩展的实现方法及固态硬盘
CN109375870A (zh) * 2018-09-18 2019-02-22 深圳忆联信息系统有限公司 一种加速ssd主控芯片d2h无映射读取的方法及其系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022141250A1 (zh) * 2020-12-30 2022-07-07 华为技术有限公司 数据传输方法和相关装置
CN112835520A (zh) * 2021-01-29 2021-05-25 深圳忆联信息系统有限公司 基于映射表动态加载的读请求处理方法及装置
CN113971006A (zh) * 2021-10-31 2022-01-25 苏州浪潮智能科技有限公司 一种基于硬盘的数据写入方法、系统、存储介质及设备
CN113971006B (zh) * 2021-10-31 2023-08-15 苏州浪潮智能科技有限公司 一种基于硬盘的数据写入方法、系统、存储介质及设备
CN114296653A (zh) * 2021-12-29 2022-04-08 深圳忆联信息系统有限公司 基于固态硬盘的加速映射表更新方法、装置及计算机设备

Similar Documents

Publication Publication Date Title
CN110888602A (zh) 基于固态硬盘的读性能提升方法、装置及计算机设备
CN108549610B (zh) 一种NVMe扩展的实现方法及固态硬盘
TW201931132A (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
US9411519B2 (en) Implementing enhanced performance flash memory devices
US10152274B2 (en) Method and apparatus for reading/writing data from/into flash memory, and user equipment
US10475517B2 (en) Characterizing and operating a non-volatile memory device
CN110297603B (zh) 基于固态硬盘的随机写性能提升方法、装置和计算机设备
US10055377B2 (en) Using a proprietary framework on a standards-based embedded device
US20140304487A1 (en) Information processing apparatus, memory control device, and data transfer control method
WO2017132797A1 (zh) 数据整理方法、存储设备、存储控制器以及存储阵列
CN112394874A (zh) 一种键值kv的存储方法、装置及存储设备
CN114253483B (zh) 基于命令的写缓存管理方法、装置、计算机设备及存储介质
US9524236B1 (en) Systems and methods for performing memory management based on data access properties
CN111026678B (zh) 基于固态硬盘的缓存设计方法、装置及计算机设备
CN113010111A (zh) Ssd访问加速方法、装置、计算机设备及存储介质
CN115563021A (zh) 基于固态硬盘的重复读性能提升方法、装置和计算机设备
US20220261354A1 (en) Data access method and apparatus and storage medium
CN111078591A (zh) 部分命中缓存读命令的处理方法、装置及计算机设备
CN116048420A (zh) 基于小批量数据的固态硬盘读写性能提升方法和装置
CN110580227A (zh) 自适应nvm命令生成方法与装置
CN117406932B (zh) 数据处理方法、装置、服务器和存储介质
CN117785049A (zh) 异常掉电下Write Zero命令的优化处理方法和装置
CN115079956A (zh) 固态硬盘的写性能提升实现方法、装置和计算机设备
US8065477B2 (en) Disk apparatus and advance data reading method
CN116909478A (zh) 固态硬盘的tlc写性能提升方法、装置和计算机设备

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