保障请求优先级的方法、装置及计算机设备制造方法及图纸

技术编号:19744579 阅读:26 留言:0更新日期:2018-12-12 04:37
本发明专利技术涉及保障请求优先级的方法、装置及计算机设备,该方法包括有设置节点请求链表长度;初始化IO请求链表以及IO请求的数量;获取请求;判断请求是否为IO请求;若是,则对IO请求的数量进行处理,并根据数量与节点请求链表长度的关系,进行IO请求链表处理;若否,则对IO请求以及内部请求进行优先级处理;返回所述初始化IO请求链表以及IO请求的数量的步骤。本发明专利技术通过设定节点请求链表长度,对IO请求链长的最大IO请求数量进行限定,在CPU1最低处理效率情况下,也能在内部请求超时前将内部请求从高优先级FIFO中取出并处理完,实现避免内部请求的处理超时的现象发生。

【技术实现步骤摘要】
保障请求优先级的方法、装置及计算机设备
本专利技术涉及固态硬盘,更具体地说是指保障请求优先级的方法、装置及计算机设备。
技术介绍
当前主流固态硬盘(SSD)的控制器均采用多核(CPU)设计,核与核之间的通信可以采用先进先出(即FIFO)机制,一个核负责生成请求往FIFO中放,另一个核从FIFO中取出请求处理,如图1所示。实际场景中,请求之间有优先级之分,为了能让优先级高的请求在时间上优先处理,现有技术中采用多FIFO方法,如图2所示,CPU0将高优先级请求放在高优先级FIFO中,低优先级请求放在低优先级FIFO中,CPU1每次优先从高优先级FIFO中取请求,这样就可以保证高优先级请求的优先执行。现有的固件设计中,固件除了需要处理主机下发的IO命令,还需要处理SSD内部的命令,而且设计中限制同时处理的内部请求最大为8个,它们和IO命令混合在一起处理,内部请求的优先级高于IO命令,SSD要求这些内部请求在很短的时间内完成,假设20毫秒,IO命令一般比较长,假设为1秒。现有的固件设计中,FTL(即闪存转换层)采用4KB映射单元,所以CPU0对每个命令按照4KB为单元切割成数个节点请求,然后将节点请求发给CPU1处理,如图3所述,现有技术中为了提升CPU间的通信效率,一次性尽可能的将一窜节点请求放入FIFO中,CPU0处理三个命令,第一个命令为IO命令切割成4个节点请求,第二个命令为内部请求切割成1个节点请求,第三个为IO命令切割成3个节点请求,CPU0和CPU1的交互过程为:CPU0将第一个IO命令的节点链表放入低优先级FIFO,如图4所示;由于CPU0和CPU1是异步并行工作的,CPU1在空闲期一直在尝试先从高优先级FIFO获取请求,如果空则尝试从低优先级FIFO获取请求,一旦低优先级FIFO填入了请求,CPU1就从低优先级FIFO中取出第一窜节点请求进行处理;CPU0继续工作,由于Internal命令的优先级要高,所以Internal节点被放入高优先级FIFO,第二个IO命令的节点请求放入低优先级FIFO,如图5所示;等到CPU1处理完第一个IO命令的一窜节点后,继续优先从高优先级FIFO取出请求处理,处理低优先级FIFO中请求。现有技术通过设置高优先级FIFO,体现了CPU1对Internal请求的优先响应,但是SSD对内部请求的完成时间要求很苛刻,而CPU1需要处理完手头的节点请求链表后才能从高优先级FIFO取出内部请求,如果CPU1手头的节点请求链表很长,处理时间超过20毫秒,那么内部请求的处理依然会超时。因此,有必要设计一种方法,实现避免内部请求的处理超时的现象发生。
技术实现思路
本专利技术的目的在于克服现有技术的缺陷,提供保障请求优先级的方法、装置及计算机设备。为实现上述目的,本专利技术采用以下技术方案:保障请求优先级的方法,包括有:设置节点请求链表长度;初始化IO请求链表以及IO请求的数量;获取请求;判断请求是否为IO请求;若是,则对IO请求的数量进行处理,并根据数量与节点请求链表长度的关系,进行IO请求链表处理;若否,则对IO请求以及内部请求进行优先级处理;返回所述初始化IO请求链表以及IO请求的数量的步骤。其进一步技术方案为:所述设置节点请求链表长度的步骤,包括以下具体步骤:获取芯片最差处理速度;获取内部请求的超时阈值;根据芯片最差处理速度以及超时阈值获取节点请求链表长度;将先进先出列队中每个格子挂载的节点请求链表长度设置为节点请求链表长度。其进一步技术方案为:对IO请求的数量进行处理,并根据数量与节点请求链表长度的关系,进行IO请求链表处理的步骤,包括以下具体步骤:对IO请求的数量加一,形成新数量;判断新数量是否等于节点请求链表长度;若否,则返回所述获取请求的步骤;若是,则将IO请求链表放入低优先级先进先出列队中,并返回所述初始化IO请求链表以及IO请求的数量的步骤。其进一步技术方案为:对IO请求以及内部请求进行优先级处理的步骤,包括以下具体步骤:将IO请求链表放入低优先级先进先出列队中;将内部请求放入高优先级先进先出列队中。其进一步技术方案为:获取请求的步骤之前,还包括:切割节点请求,形成节点池。本专利技术还提供了保障请求优先级的装置,包括有:长度设置单元,用于设置节点请求链表长度;初始化单元,用于初始化IO请求链表以及IO请求的数量;请求获取单元,用于获取请求;请求判断单元,用于判断请求是否为IO请求;IO请求处理单元,用于若是,则对IO请求的数量进行处理,并根据数量与节点请求链表长度的关系,进行IO请求链表处理;优先级处理单元,用于若否,则对IO请求以及内部请求进行优先级处理。其进一步技术方案为:所述长度设置单元包括有:速度获取模块,用于获取芯片最差处理速度;阈值获取模块,用于获取内部请求的超时阈值;长度获取模块,用于根据芯片最差处理速度以及超时阈值获取节点请求链表长度;设置模块,用于将先进先出列队中每个格子挂载的节点请求链表长度设置为节点请求链表长度。其进一步技术方案为:所述IO请求处理单元包括有:数量处理模块,用于对IO请求的数量加一,形成新数量;数量判断模块,用于判断新数量是否等于节点请求链表长度;链表处理模块,用于若是,则将IO请求链表放入低优先级先进先出列队中。其进一步技术方案为:所述优先级处理单元包括有:IO请求放置模块,用于将IO请求链表放入低优先级先进先出列队中;内部请求放置模块,用于将内部请求放入高优先级先进先出列队中。本专利技术还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述保障请求优先级的方法。本专利技术与现有技术相比的有益效果是:本专利技术的保障请求优先级的方法,通过设定节点请求链表长度,对IO请求链长的最大IO请求数量进行限定,该节点请求链表长度依据最差处理速度以及内部请求的超时阈值设定,当IO请求链表的IO请求数量等于节点请求链表长度,则将IO请求链表放入低优先级先进先出列队中,从而达到在CPU1最低处理效率情况下,也能在内部请求超时前将内部请求从高优先级FIFO中取出并处理完,实现避免内部请求的处理超时的现象发生。下面结合附图和具体实施例对本专利技术作进一步描述。附图说明图1为现有技术的CPU间FIFO通信机制的示意流程图;图2为现有技术的高低优先级FIFO的示意性框图;图3为现有技术的按4KB切割命令的示意流程图;图4为现有技术的CPU0提交请求链表至CPU1的示意流程图;图5为现有技术的CPU1取出请求处理且CPU0继续提交请求的示意流程图;图6为本专利技术具体实施例提供的保障请求优先级的方法的示意流程图;图7为本专利技术具体实施例提供的保障请求优先级的方法的子步骤示意流程图;图8为本专利技术具体实施例提供的保障请求优先级的方法的子步骤示意流程图;图9为本专利技术具体实施例提供的保障请求优先级的方法的子步骤示意流程图;图10为本专利技术具体实施例提供的切割节点请求的示意流程图;图11为本专利技术具体实施例提供的限制FIFO中节点链表长度的示意流程图;图12为本专利技术具体实施例提供的保障请求优先级的装置的示意性框图;图13为本专利技术具体实施例提供的长度设置单元的示意性框图;图14为本专利技术具体实施例提供的IO请本文档来自技高网
...

【技术保护点】
1.保障请求优先级的方法,其特征在于,包括有:设置节点请求链表长度;初始化IO请求链表以及IO请求的数量;获取请求;判断请求是否为IO请求;若是,则对IO请求的数量进行处理,并根据数量与节点请求链表长度的关系,进行IO请求链表处理;若否,则对IO请求以及内部请求进行优先级处理;返回所述初始化IO请求链表以及IO请求的数量的步骤。

【技术特征摘要】
1.保障请求优先级的方法,其特征在于,包括有:设置节点请求链表长度;初始化IO请求链表以及IO请求的数量;获取请求;判断请求是否为IO请求;若是,则对IO请求的数量进行处理,并根据数量与节点请求链表长度的关系,进行IO请求链表处理;若否,则对IO请求以及内部请求进行优先级处理;返回所述初始化IO请求链表以及IO请求的数量的步骤。2.根据权利要求1所述的保障请求优先级的方法,其特征在于,所述设置节点请求链表长度的步骤,包括以下具体步骤:获取芯片最差处理速度;获取内部请求的超时阈值;根据芯片最差处理速度以及超时阈值获取节点请求链表长度;将先进先出列队中每个格子挂载的节点请求链表长度设置为节点请求链表长度。3.根据权利要求1所述的保障请求优先级的方法,其特征在于,对IO请求的数量进行处理,并根据数量与节点请求链表长度的关系,进行IO请求链表处理的步骤,包括以下具体步骤:对IO请求的数量加一,形成新数量;判断新数量是否等于节点请求链表长度;若否,则返回所述获取请求的步骤;若是,则将IO请求链表放入低优先级先进先出列队中,并返回所述初始化IO请求链表以及IO请求的数量的步骤。4.根据权利要求1所述的保障请求优先级的方法,其特征在于,对IO请求以及内部请求进行优先级处理的步骤,包括以下具体步骤:将IO请求链表放入低优先级先进先出列队中;将内部请求放入高优先级先进先出列队中。5.根据权利要求1至4任一项所述的保障请求优先级的方法,其特征在于,获取请求的步骤之前,还包括:切割节点请求,形成节点池。6.保障请求优先级的装置,其特征在...

【专利技术属性】
技术研发人员:吴娴付东松张健
申请(专利权)人:深圳忆联信息系统有限公司
类型:发明
国别省市:广东,44

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

1