本发明专利技术实施例公开了一种NAND闪存设备的操作指令调度方法及装置,所述方法包括:对NAND闪存设备的操作指令进行任务分解,并将得到的任务发送到对应的任务队列;根据所述任务队列中当前任务的任务类型将所述当前任务发送到对应的仲裁队列;根据所述仲裁队列的优先级信息为所述仲裁队列中的待执行任务调度NAND接口。本发明专利技术实施例能够高效地实现NAND闪存设备的操作指令调度,提高NAND闪存设备的操作指令调度的灵活性,提升NAND闪存设备的总体性能。
【技术实现步骤摘要】
本专利技术涉及数据存储
,尤其涉及一种NAND闪存设备的操作指令调度方法及装置。
技术介绍
NAND闪存是一种比硬盘驱动器更好的存储方案,这在不超过4GB的低容量应用中表现得犹为明显。随着人们持续追求功耗更低、重量更轻和性能更佳的产品,NAND正被证明极具吸引力。目前NAND闪存技术广泛应用于固态硬盘等领域,与传统机械硬盘相比,固态硬盘在存取速度上有了大幅的提升。现在的NAND接口速度越来越快,由原来的异步模式变为现在的DDR(DoubleDataRate,双倍速率同步动态随机存储器)模式,最新的NAND闪存颗粒已经能达到每秒667MB的速度。而与此同时,为了提高存储容量,NAND闪存的页尺寸变得越来越大,访问一页的时间反而增加了。因此,为了充分利用NAND接口的带宽,同时也是为了增加存储容量,一条NAND接口会连接多个NAND颗粒,这样就需要对NAND指令的顺序进行调度。调度策略一方面要保证正确性,保证操作NAND颗粒的指令序列符合要求,另一方面要尽可能充分利用NAND接口与NAND颗粒的性能。现有的NAND闪存设备的操作指令调度方案大多是采用软件进行调度。主要有两方面原因:一方面是调度策略比较复杂,而且需求可能会变化,使用软件方案方便修改,有更高的灵活性;另一方面是原来NAND接口的性能要求并不高,软件有能力来满足性能要求。但是,随着当前大容量高速固态硬盘发展迅速,IOPS(Input/OutputOperationsPerSecond,每秒进行读写I/O操作的次数)性能已经达到百万级,而且延迟也越来越低,因此,使用软件来实现NAND闪存设备的操作指令调度已经无法满足性能要求。
技术实现思路
鉴于上述问题,本专利技术提出了一种NAND闪存设备的操作指令调度方法及装置,能够高效地实现NAND闪存设备的操作指令调度,提高NAND闪存设备的操作指令调度的灵活性,提升NAND闪存设备的总体性能。本专利技术的一个方面,提供了一种NAND闪存设备的操作指令调度方法,包括:对NAND闪存设备的操作指令进行任务分解,并将得到的任务发送到对应的任务队列;根据所述任务队列中当前任务的任务类型将所述当前任务发送到对应的仲裁队列;根据所述仲裁队列的优先级信息为所述仲裁队列中的待执行任务调度NAND接口。可选地,所述对NAND闪存设备的操作指令进行任务分解,包括:将所述操作指令对应的NAND颗粒在执行所述操作指令过程中由空闲状态更新为繁忙状态的时间点作为分界点,对所述操作指令进行任务分解;其中,所述NAND颗粒对应有唯一的任务队列,以存放任务分解后得到的任务。可选地,在所述对NAND闪存设备的操作指令进行任务分解之后,所述方法还包括:为每一任务配置任务头信息,所述任务头信息中包含有任务类型标识;所述根据所述任务队列中当前任务的任务类型将所述当前任务发送到对应的仲裁队列,包括:根据所述当前任务的任务头信息中包含的任务类型标识确定所述当前任务的任务类型,并根据所述任务类型将所述当前任务发送到对应的仲裁队列。可选地,所述任务类型包括非IO任务、写IO任务和读IO任务,所述写IO任务和读IO任务的优先级相同,所述非IO任务的优先级高于所述写IO任务和读IO任务;所述方法还包括:根据所述仲裁队列中存放的任务优先级确定仲裁队列的优先级。可选地,所述根据所述仲裁队列的优先级信息为所述仲裁队列中的待执行任务调度NAND接口,包括:判定非IO任务对应的非IO仲裁队列是否为非空;若是,则从所述非IO仲裁队列中提取待执行任务,并为所述待执行任务调度NAND接口;否则,根据预先设置的任务执行策略从写IO任务对应的写IO仲裁队列或读IO任务对应的读IO仲裁队列中提取待执行任务,并为所述待执行任务调度NAND接口。可选地,在所述根据预先设置的任务执行策略从写IO任务对应的写IO仲裁队列或读IO任务对应的读IO仲裁队列中提取待执行任务之前,所述方法还包括:判定所述写IO仲裁队列和读IO仲裁队列中是否都存放有任务;若是,则执行所述根据预先设置的任务执行策略从写IO任务对应的写IO仲裁队列或读IO任务对应的读IO仲裁队列中提取待执行任务的步骤,否则,直接从非空的仲裁队列中提取待执行任务。可选地,所述任务头信息中还包含有读状态任务使能标识;在所述根据所述仲裁队列的优先级信息为所述仲裁队列中的待执行任务调度NAND接口之后,所述方法还包括:在执行完所述待执行任务之后,判定所述待执行任务是否为读状态任务;若是,则根据所述读状态任务的执行结果确定对应的NAND颗粒的使用状态,当所述使用状态为繁忙时,启动定时器,在预设定时时间后触发读状态任务,并将该读状态任务发送到对应的仲裁队列,当所述使用状态为空闲时,返回所述使用状态,以触发将所述任务队列中的下一任务发送到对应的仲裁队列的操作;否则,读取所述读状态任务使能标识,当所述读状态任务使能标识开启时,启动定时器,在预设定时时间后触发读状态任务,并将该读状态任务发送到对应的仲裁队列,当所述读状态任务使能标识关闭时,触发将所述任务队列中的下一任务发送到对应的仲裁队列的操作。可选地,所述任务头信息中还包含有接口独占许可标识;在所述根据所述仲裁队列的优先级信息为所述仲裁队列中的待执行任务调度NAND接口之后,所述方法还包括:在执行完所述待执行任务之后,读取所述接口独占许可标识,当所述接口独占许可标识开启时,屏蔽当前的所述NAND颗粒之外的其他NAND颗粒对应的任务,否则解除对其他NAND颗粒对应的任务的屏蔽,和/或触发将所述任务队列中的下一任务发送到对应的仲裁队列的操作。可选地,所述任务头信息中还包含有任务标识ID;在所述根据所述仲裁队列的优先级信息为所述仲裁队列中的待执行任务调度NAND接口之后,所述方法还包括:在执行完所述待执行任务之后,监测并返回任务执行结果,所述任务执行结果中携带有所述待执行任务的任务标识ID。本专利技术的又一个方面,提供了一种NAND闪存设备的操作指令调度装置,包括:任务生成模块,用于对NAND闪存设备的操作指令进行任务分解,并将得到的任务发送到对应的任务队列;任务管理模块,用于根据所述任务队列中当前任务的任务类型将所述当前任务发送到对应的仲裁队列;任务仲裁器,用于根据所述仲裁队列的优先级信息为所述仲裁队列中的待执行任务调度NAND接口。可选地,所述任务生成模块,还用于在对NAND闪存设备的操作指令进行任务分解之后,为每一任务配置任务头信息,所述任务头信息中包含有任务类型标识;所述任务管理模块,具体用于根据所述当前任务的任务头信息中包含的任务类型标识确定所述当前任务的任务类型,并根据所述任务类型将所述当前任务发送到对应的仲裁队列。本专利技术实施例提供的NAND闪存设备的操作指令调度方法及装置,通过对NAND闪存设备的操作指令进行任务分解,将一条操作指令分解为多条任务,并将得到的任务发送到对应的任务队列,然后根据队列中当前任务的任务类型将任务发送到对应的仲裁队列,以供任务仲裁器根据仲裁队列的优先级为仲裁队列中的待执行任务调度NAND接口。本专利技术实施例能够高效地实现NAND闪存设备的操作指令调度,提高NAND闪存设备的操作指令调度的灵活性,提升NAND闪存设备的总体性能。上述说明仅是本专利技术技术方案的概述本文档来自技高网...
【技术保护点】
一种NAND闪存设备的操作指令调度方法,其特征在于,包括:对NAND闪存设备的操作指令进行任务分解,并将得到的任务发送到对应的任务队列;根据所述任务队列中当前任务的任务类型将所述当前任务发送到对应的仲裁队列;根据所述仲裁队列的优先级信息为所述仲裁队列中的待执行任务调度NAND接口。
【技术特征摘要】
1.一种NAND闪存设备的操作指令调度方法,其特征在于,包括:对NAND闪存设备的操作指令进行任务分解,并将得到的任务发送到对应的任务队列;根据所述任务队列中当前任务的任务类型将所述当前任务发送到对应的仲裁队列;根据所述仲裁队列的优先级信息为所述仲裁队列中的待执行任务调度NAND接口。2.根据权利要求1所述的方法,其特征在于,所述对NAND闪存设备的操作指令进行任务分解,包括:将所述操作指令对应的NAND颗粒在执行所述操作指令过程中由空闲状态更新为繁忙状态的时间点作为分界点,对所述操作指令进行任务分解;其中,所述NAND颗粒对应有唯一的任务队列,以存放任务分解后得到的任务。3.根据权利要求1所述的方法,其特征在于,在所述对NAND闪存设备的操作指令进行任务分解之后,所述方法还包括:为每一任务配置任务头信息,所述任务头信息中包含有任务类型标识;所述根据所述任务队列中当前任务的任务类型将所述当前任务发送到对应的仲裁队列,包括:根据所述当前任务的任务头信息中包含的任务类型标识确定所述当前任务的任务类型,并根据所述任务类型将所述当前任务发送到对应的仲裁队列。4.根据权利要求3所述的方法,其特征在于,所述任务类型包括非IO任务、写IO任务和读IO任务,所述写IO任务和读IO任务的优先级相同,所述非IO任务的优先级高于所述写IO任务和读IO任务;所述方法还包括:根据所述仲裁队列中存放的任务优先级确定仲裁队列的优先级。5.根据权利要求4所述的方法,其特征在于,所述根据所述仲裁队列的优先级信息为所述仲裁队列中的待执行任务调度NAND接口,包括:判定非IO任务对应的非IO仲裁队列是否为非空;若是,则从所述非IO仲裁队列中提取待执行任务,并为所述待执行任务调度NAND接口;否则,根据预先设置的任务执行策略从写IO任务对应的写IO仲裁队列或读IO任务对应的读IO仲裁队列中提取待执行任务,并为所述待执行任务调度NAND接口。6.根据权利要求3-5任一项所述的方法,其特征在于,所述任务头信息中还包含有读状态任务使能标识;在所述根据所述仲裁队列的优先级信息为所述仲裁队列中的待执行任务调度NAND接口之后,所述方法还包括:在执行完所述待执行任务之后,判定所述待执行任务是否为读状态任务;若是,则根据所述读状态...
【专利技术属性】
技术研发人员:王凤海,夏杰旭,王嵩,杨骥,张建涛,
申请(专利权)人:北京得瑞领新科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。