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已经被取回,那么第二笔数据就有可能因为前面的第一笔数据没有被读取而造成第二笔数据的等待。导 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。