本申请涉及一种基于固态硬盘的读性能提升方法、装置、计算机设备及存储介质,其中该方法包括:获取基于固态硬盘的读性能提升请求;根据所述基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;解析所述读命令得到所述读命令的LBA、LBA Size及Data buffer地址;从所述固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断所述对应LBA有没有映射;若所述对应LBA没有映射,则所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知所述读命令已完成。本发明专利技术有效的减少SSD的数据传输延时,提升了SSD的读性能以及主机整体系统的性能。
Method, device and computer equipment for improving read performance based on solid state disk
【技术实现步骤摘要】
基于固态硬盘的读性能提升方法、装置及计算机设备
本专利技术涉及固态硬盘
,特别是涉及一种基于固态硬盘的读性能提升方法、装置、计算机设备及存储介质。
技术介绍
目前,SSD(SolidStateDisk,固态硬盘)已经被广泛应用于各种场合,NVMESSD固态硬盘作为一种新型存储介质,相比于传统HDD(机械硬盘),其最大优势在于很高的读写性能,读性能最高能到3.5GB/s。但是相对于主机端的DDR带宽,例如DDR3-2400双通道的带宽可达65GB/s,NVMESSD的读性能相比就差了非常多。在传统技术中,对于无映射的数据,SSD需要在其DRAM中格式化好固定格式后,再通过PCIE总线写入到主机内存,由于数据经过PCIE总线,导致有延时产生,SSD读性能无法进一步提升,降低了整个系统的性能。
技术实现思路
基于此,有必要针对上述技术问题,提供一种可以消除读SSD无映射LBA数据带来的延时以提升SSD读性能的基于固态硬盘的读性能提升方法、装置、计算机设备及存储介质。一种基于固态硬盘的读性能提升方法,所述方法包括:获取基于固态硬盘的读性能提升请求;根据所述基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;解析所述读命令得到所述读命令的LBA、LBASize及Databuffer地址;从所述固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断所述对应LBA有没有映射;若所述对应LBA没有映射,则所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Doorbell通知所述读命令已完成。在其中一个实施例中,在所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Doorbell通知所述读命令已完成的步骤之后还包括:主机查询Doorbell得知读命令完成后,读取CQ中对应命令完成的状态字段信息;若根据所述状态字段信息得知要读到数据是无映射的,则所述主机直接通过DMA对主机内存的Databuffer进行写0XFF数据。在其中一个实施例中,在所述固态硬盘从主机内存SQ队列中读取对应的读命令到本地的步骤之前还包括:主机将读命令写入到主机内存中的SQ队列中;所述主机发送中断通知对应的固态硬盘有新的读命令。在其中一个实施例中,所述CQ中StatusFiled的StatusCodetype为1,StatusCode为0XBF,即表示对应的读命令是一个无映射的数据。一种基于固态硬盘的读性能提升装置,所述装置包括:获取模块,所述获取模块用于获取基于固态硬盘的读性能提升请求;读取模块,所述读取模块用于根据所述基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;解析模块,所述解析模块用于解析所述读命令得到所述读命令的LBA、LBASize及Databuffer地址;判断模块,所述判断模块用于从所述固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断所述对应LBA有没有映射;写入更新模块,所述写入更新模块用于若所述对应LBA没有映射,则所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Doorbell通知所述读命令已完成。在其中一个实施例中,所述装置还包括状态查询模块,所述状态查询模块用于:主机查询Doorbell得知读命令完成后,读取CQ中对应命令完成的状态字段信息;若根据所述状态字段信息得知要读到数据是无映射的,则所述主机直接通过DMA对主机内存的Databuffer进行写0XFF数据。在其中一个实施例中,所述装置还包括:命令写入模块,所述命令写入模块用于主机将读命令写入到主机内存中的SQ队列中;中断通知模块,所述中断通知模块用于所述主机发送中断通知对应的固态硬盘有新的读命令。在其中一个实施例中,所述CQ中StatusFiled的StatusCodetype为1,StatusCode为0XBF,即表示对应的读命令是一个无映射的数据。一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。上述基于固态硬盘的读性能提升方法、装置、计算机设备和存储介质,通过获取基于固态硬盘的读性能提升请求;根据所述基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;解析所述读命令得到所述读命令的LBA、LBASize及Databuffer地址;从所述固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断所述对应LBA有没有映射;若所述对应LBA没有映射,则所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Doorbell通知所述读命令已完成。本专利技术当Host读取SSD的LBA没有映射时,即这个LBA之前没有写入数据或已经被Trim掉,可以直接使用主机端的DRAM进行数据传输,实现了有效的减少SSD的数据传输延时,提升了SSD的读性能以及主机整体系统的性能。附图说明图1为传统技术中读命令处理的系统构架图;图2为一个实施例中读命令处理的系统构架图;图3为一个实施例中基于固态硬盘的读性能提升方法的流程示意图;图4为另一个实施例中基于固态硬盘的读性能提升方法的流程示意图;图5为再一个实施例中基于固态硬盘的读性能提升方法的流程示意图;图6为一个实施例中CQ的定义图表及CQ中StatusFiled的定义图表;图7为一个实施例中基于固态硬盘的读性能提升装置的结构框图;图8为另一个实施例中基于固态硬盘的读性能提升装置的结构框图;图9为再一个实施例中基于固态硬盘的读性能提升装置的结构框图;图10为一个实施例中计算机设备的内部结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。目前,在传统的技术方案中,参考如图1所示的传统技术中读命令处理的系统构架图,当Host读取SSD的LBA(逻辑地址)没有映射时,步骤如下:1.HOST将ReadCommand写入到主机内存中的SQ(发送命令)队列中。2.HOST发送中断通知SSD有新的ReadCommand。3.SSD从主机内存SQ队列中读取ReadCommand到SSD本地。4.SSD解析ReadCommand,得到ReadCommand的LBA、LBASize以及Databuffer(用于存放SSD传输过来的读数据)地址。5.SSD从其DRAM中申请Readbuffer用本文档来自技高网...
【技术保护点】
1.一种基于固态硬盘的读性能提升方法,其特征在于,所述方法包括:/n获取基于固态硬盘的读性能提升请求;/n根据所述基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;/n解析所述读命令得到所述读命令的LBA、LBA Size及Data buffer地址;/n从所述固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断所述对应LBA有没有映射;/n若所述对应LBA没有映射,则所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Door bell通知所述读命令已完成。/n
【技术特征摘要】
1.一种基于固态硬盘的读性能提升方法,其特征在于,所述方法包括:
获取基于固态硬盘的读性能提升请求;
根据所述基于固态硬盘的读性能提升请求,固态硬盘从主机内存SQ队列中读取对应的读命令到本地;
解析所述读命令得到所述读命令的LBA、LBASize及Databuffer地址;
从所述固态硬盘的DRAM的映射表中读取对应LBA的映射信息,并判断所述对应LBA有没有映射;
若所述对应LBA没有映射,则所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Doorbell通知所述读命令已完成。
2.根据权利要求1所述的基于固态硬盘的读性能提升方法,其特征在于,在所述固态硬盘直接写入完成状态到主机内存中的CQ队列中,并更新CQ的Doorbell通知所述读命令已完成的步骤之后还包括:
主机查询Doorbell得知读命令完成后,读取CQ中对应命令完成的状态字段信息;
若根据所述状态字段信息得知要读到数据是无映射的,则所述主机直接通过DMA对主机内存的Databuffer进行写0XFF数据。
3.根据权利要求2所述的基于固态硬盘的读性能提升方法,其特征在于,在所述固态硬盘从主机内存SQ队列中读取对应的读命令到本地的步骤之前还包括:
主机将读命令写入到主机内存中的SQ队列中;
所述主机发送中断通知对应的固态硬盘有新的读命令。
4.根据权利要求1-3任一项所述的基于固态硬盘的读性能提升方法,其特征在于,所述CQ中StatusFiled的StatusCodetype为1,StatusCode为0XBF,即表示对应的读命令是一个无映射的数据。
5.一种基于固态硬盘的读性能提升装置,其特征在于,所述装置包括:
获取模块,所述获取模块用于获取基于固态硬盘的读性能提升请求;
读取模块,所述读取模块用于根据所述基于固态硬盘的读性能提升请求...
【专利技术属性】
技术研发人员:韩道静,吴娴,刘金雷,
申请(专利权)人:深圳忆联信息系统有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。