数据读取方法、装置、设备及介质制造方法及图纸

技术编号:18913190 阅读:55 留言:0更新日期:2018-09-12 02:51
本发明专利技术实施例提供了一种数据读取方法、装置、设备及介质。该方法包括:在所述NVME控制器从主机取回逻辑块编号LBN对应的物理区块页PRP时,将该PRP标记为已取回状态;根据从数据存储装置返回的数据对应的PRP是否被标记为已取回状态,确定对所述从数据存储装置返回的数据的读取顺序,其中,对应的PRP被标记为已取回状态的数据的读取顺序先于对应的PRP未被标记为已取回状态的数据的读取顺序;按照所确定的读取顺序,读取所述从数据存储装置返回的数据。

Data reading method, device, equipment and medium

The embodiment of the invention provides a data reading method, device, device and medium. The method includes: marking the physical block page PRP corresponding to the logical block number LBN as retrieved state when the NVME controller retrieves the PRP corresponding to the logical block number LBN from the host; determining the reading order of the data returned from the data storage device according to whether the PRP corresponding to the data returned from the data storage device is marked as retrieved state or not. Where the reading order of the data marked as retrieved state by the corresponding PRP is prior to the reading order of the data marked as retrieved state by the corresponding PRP; and the data returned from the data storage device is read in accordance with the determined reading order.

【技术实现步骤摘要】
数据读取方法、装置、设备及介质
本专利技术涉及数据存储
,尤其涉及一种数据读取方法、装置、设备及介质。
技术介绍
随着数据存储装置(例如:SSD,即SolidStateDrives,固态硬盘)的生产工艺的发展,越来越多的数据存储装置通过内置的NVME(Non-VolatileMemoryExpress,非易失性存储器规范)控制器实现与主机之间的数据传输。通常数据在主机中存储的逻辑地址为LBN(LogicalBlockNumber,逻辑块编号),而LBN实际对应的物理地址为PRP(PhysicalRegionPage,物理区域页)。如果主机需要对存储在数据存储装置中的数据进行处理,则首先向NVME控制器发送数据读取命令,以读取待处理的数据。然后NVME控制器从主机取回该待处理的数据具有的LBN对应的PRP,在数据存储装置返回该待处理的数据至NVME控制器后,NVME控制器根据该待处理的数据具有的LBN对应的PRP,把该待处理的数据存放到主机指定的物理地址上。然而,数据存储装置对数据的返回通常是乱序的,而NVME控制器对数据存储装置返回的数据的读取又是顺序的,这样就会导致以下问题:当第一笔数据(具有第一LBN)已经从数据存储装置中读取出来的时候,NMVE控制器还未将第一LBN对应的PRP从主机中取回,导致NVME控制器暂时还不能将第一笔数据发送给主机,而如果在从数据存储装置中读取第一笔数据之后,又从数据存储装置中读取出第二笔数据(具有第二LBN)且第二LBN的PRP已经被取回,那么第二笔数据就有可能因为前面的第一笔数据没有被读取而造成第二笔数据的等待。导致NVME控制器向主机传输数据的效率较低。示例地,如图1所示,假设NVME控制器已经将LBN0、LBN1、LBN2、LBN3各自对应的PRP0、PRP1、PRP2、PRP3取回,剩下的LBN4、LBN5、LBN6的PRP4、PRP5、PRP6还未被取回,而数据存储装置返回数据的顺序为LBN2、LBN4、LBN3,所以NVME控制器顺序读取数据存储装置返回的数据,LBN2可以被读取并发送给主机,而LBN4对应的PRP4还未取回,所以具有LBN4的这笔数据还不能被读取,虽然LBN3对应的PRP3已经被取回,但由于具有LBN4的这笔数据还没有被读取,所以会造成具有LBN3的这笔数据的等待。
技术实现思路
本专利技术实施例提供了一种数据读取方法、装置、设备及介质,以提高导致NVME控制器向主机传输数据的效率。第一方面,本专利技术实施例提供了一种数据读取方法,应用于NVME控制器,所述方法包括:在所述NVME控制器从主机取回逻辑块编号LBN对应的物理区块页PRP时,将该PRP标记为已取回状态;根据从数据存储装置返回的数据对应的PRP是否被标记为已取回状态,确定对所述从数据存储装置返回的数据的读取顺序,其中,对应的PRP被标记为已取回状态的数据的读取顺序先于对应的PRP未被标记为已取回状态的数据的读取顺序;按照所确定的读取顺序,读取所述从数据存储装置返回的数据。可选地,所述方法还包括:在所述NVME控制器从主机取回LBN对应的PRP时,确定是否将具有该LBN的数据标记为高优先级;根据从数据存储装置返回的数据对应的PRP是否被标记为已取回状态,确定对所述从数据存储装置返回的数据的读取顺序,包括:根据从数据存储装置返回的数据对应的PRP是否被标记为已取回状态,以及所述从数据存储装置返回的数据是否被标记为高优先级,确定对所述从数据存储装置返回的数据的读取顺序,其中,对应的PRP被标记为已取回状态的数据的读取顺序先于对应的PRP未被标记为已取回状态的数据的读取顺序,且被标记为高优先级的数据的读取顺序先于未被标记为高优先级的数据。可选地,在所述NVME控制器从主机取回LBN对应的PRP时,确定是否将具有该LBN的数据标记为高优先级,包括:在所述NVME控制器从主机取回LBN对应的PRP时,检测所述数据存储装置是否返回具有该LBN的数据;在未检测到所述数据存储装置返回具有该LBN的数据时,等待所述数据存储装置返回具有该LBN的数据,并确定具有该LBN的数据的等待时长;在具有该LBN的数据的等待时长大于预设时长时,将具有该LBN的数据标记为高优先级。可选地,在所述NVME控制器从主机取回LBN对应的PRP时,确定是否将具有该LBN的数据标记为高优先级,包括:在所述NVME控制器从主机取回LBN对应的PRP时,确定所述主机对具有该LBN的数据的读取需求;若所述主机对具有该LBN的数据的读取需求为需要优先读取,则将具有该LBN的数据标记为高优先级。可选地,所述方法还包括:接收所述主机发送的数据读取命令;若所述主机发送的数据读取命令针对的数据被标记为高优先级且对应的PRP被标记为已取回状态,则将该数据读取命令添加到第一队列中;若所述主机发送的数据读取命令针对的数据未被标记为高优先级且对应的PRP被标记为已取回状态,则将该数据读取命令添加到第二队列中,所述第二队列与所述第一队列不同;若所述主机发送的数据读取命令针对的数据对应的PRP未被标记为已取回状态,则将该数据读取命令添加到第三队列中,所述第三队列与所述第一队列及所述第二队列均不同;按照所确定的读取顺序,读取所述从数据存储装置返回的数据,包括:检测所述第一队列是否非空;在检测到所述第一队列非空时,执行所述第一队列中的数据读取命令;在执行完所述第一队列中的所有数据读取命令之后,检测所述第二队列是否非空;在检测到所述第二队列非空时,执行所述第二队列中的数据读取命令,直到检测到所述第一队列非空时返回步骤执行所述第一队列中的数据读取命令,或者直到执行完所述第二队列中的所有数据读取命令。可选地,所述方法还包括:定时轮询所述第三队列中的数据读取命令;在所述第三队列中的数据读取命令针对的数据被标记为高优先级且对应的PRP被标记为已取回状态,则将该数据读取命令添加到所述第一队列中;若所述第三队列中的数据读取命令针对的数据未被标记为高优先级且对应的PRP被标记为已取回状态,则将该数据读取命令添加到所述第二队列中。第二方面,本专利技术实施例提供了一种数据读取装置,应用于NVME控制器,所述装置包括:标记模块,被配置为在所述NVME控制器从主机取回逻辑块编号LBN对应的物理区块页PRP时,将该PRP标记为已取回状态;第一确定模块,被配置为根据从数据存储装置返回的数据对应的PRP是否被标记为已取回状态,确定对所述从数据存储装置返回的数据的读取顺序,其中,对应的PRP被标记为已取回状态的数据的读取顺序先于对应的PRP未被标记为已取回状态的数据的读取顺序;读取模块,被配置为按照所确定的读取顺序,读取所述从数据存储装置返回的数据。可选地,所述装置还包括:第二确定模块,被配置为在所述NVME控制器从主机取回LBN对应的PRP时,确定是否将具有该LBN的数据标记为高优先级;所述第一确定模块包括:第一确定子模块,被配置为根据从数据存储装置返回的数据对应的PRP是否被标记为已取回状态,以及所述从数据存储装置返回的数据是否被标记为高优先级,确定对所述从数据存储装置返回的数据的读取顺序,其中,对应的PRP被标记为已取回状态的数据的读取顺序先于对应的PRP未被标记为已取回状态的数本文档来自技高网
...

【技术保护点】
1.一种数据读取方法,其特征在于,应用于NVME控制器,所述方法包括:在所述NVME控制器从主机取回逻辑块编号LBN对应的物理区块页PRP时,将该PRP标记为已取回状态;根据从数据存储装置返回的数据对应的PRP是否被标记为已取回状态,确定对所述从数据存储装置返回的数据的读取顺序,其中,对应的PRP被标记为已取回状态的数据的读取顺序先于对应的PRP未被标记为已取回状态的数据的读取顺序;按照所确定的读取顺序,读取所述从数据存储装置返回的数据。

【技术特征摘要】
1.一种数据读取方法,其特征在于,应用于NVME控制器,所述方法包括:在所述NVME控制器从主机取回逻辑块编号LBN对应的物理区块页PRP时,将该PRP标记为已取回状态;根据从数据存储装置返回的数据对应的PRP是否被标记为已取回状态,确定对所述从数据存储装置返回的数据的读取顺序,其中,对应的PRP被标记为已取回状态的数据的读取顺序先于对应的PRP未被标记为已取回状态的数据的读取顺序;按照所确定的读取顺序,读取所述从数据存储装置返回的数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述NVME控制器从主机取回LBN对应的PRP时,确定是否将具有该LBN的数据标记为高优先级;根据从数据存储装置返回的数据对应的PRP是否被标记为已取回状态,确定对所述从数据存储装置返回的数据的读取顺序,包括:根据从数据存储装置返回的数据对应的PRP是否被标记为已取回状态,以及所述从数据存储装置返回的数据是否被标记为高优先级,确定对所述从数据存储装置返回的数据的读取顺序,其中,对应的PRP被标记为已取回状态的数据的读取顺序先于对应的PRP未被标记为已取回状态的数据的读取顺序,且被标记为高优先级的数据的读取顺序先于未被标记为高优先级的数据。3.根据权利要求2所述的方法,其特征在于,在所述NVME控制器从主机取回LBN对应的PRP时,确定是否将具有该LBN的数据标记为高优先级,包括:在所述NVME控制器从主机取回LBN对应的PRP时,检测所述数据存储装置是否返回具有该LBN的数据;在未检测到所述数据存储装置返回具有该LBN的数据时,等待所述数据存储装置返回具有该LBN的数据,并确定具有该LBN的数据的等待时长;在具有该LBN的数据的等待时长大于预设时长时,将具有该LBN的数据标记为高优先级。4.根据权利要求2所述的方法,其特征在于,在所述NVME控制器从主机取回LBN对应的PRP时,确定是否将具有该LBN的数据标记为高优先级,包括:在所述NVME控制器从主机取回LBN对应的PRP时,确定所述主机对具有该LBN的数据的读取需求;若所述主机对具有该LBN的数据的读取需求为需要优先读取,则将具有该LBN的数据标记为高优先级。5.根据权利要求2所述的方法,其特征在于,所述方法还包括:接收所述主机发送的数据读取命令;若所述主机发送的数据读取命令针对的数据被标记为高优先级且对应的PRP被标记为已取回状态,则将该数据读取命令添加到第一队列中;若所述主机发送的数据读取命令针对的数据未被标记为高优先级且对应的PRP被标记为已取回状态,则将该数据读取命令添加到第二队列中,所述第二队列与所述第一队列不同;若所述主机发送的数据读取命令针对的数据对应的P...

【专利技术属性】
技术研发人员:谢巍毛兴中
申请(专利权)人:北京联想核芯科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1