基于存储内容优先的SSD指令调度方法及系统技术方案

技术编号:31508585 阅读:29 留言:0更新日期:2021-12-22 23:43
本发明专利技术公开一种基于存储内容优先的SSD指令调度方法及系统,针对服务器主机下发到SSD固态盘的大量数据读写命令,在构建数据队列时,增加了所操作数据的标识以及优先级因子;在启动优先级因子时,服务器主机下发给SSD固态盘的数据读写命令包含数据标识和优先级因子,并在下发给SSD固态盘的管理命令中增加了优先级因子,同时将此管理命令放到管理队列的头部,通过命令队列控制模块的调度,带有优先级因子的管理命令在下一个循环中优先交付给微处理器执行,微处理器根据最新的管理命令,启动基于优先级因子的命令队列控制模块,并开始轮询数据队列。本发明专利技术能够适应大容量、高并发、多交叉读写访问的应用环境。多交叉读写访问的应用环境。多交叉读写访问的应用环境。

【技术实现步骤摘要】
基于存储内容优先的SSD指令调度方法及系统


[0001]本专利技术固态存储领域,尤其是固态存储的指令调度,具体是一种基于存储内容优先的ssd指令调度方法及系统。

技术介绍

[0002]大型数据中心中数据存储规模快速增长、数据处理性能快速提升,采用SATA接口、AHCI存储协议的传统HDD机械盘在读写带宽、并发IOPS方面暴露出瓶颈,无法满足新型数据中心的高并发、高带宽数据读写应用。SSD固态盘作为传统HDD机械盘的替代者,采用了更新的存储介质、全新的主机接口、存储协议,具有较好的存储效果。
[0003]在标准的SSD固态盘中,为了充分发挥服务器主机多核处理器、SSD固态盘中PCIe主机接口、NAND Flash闪存介质的并发读写性能,并保证并发写入数据过程中的数据一致性,设计了数据读写命令的并发多队列机制。每个读写命令队列可以对应于服务器主机的单个CPU内核,用于SSD固态盘和服务器主机之间传输数据读写命令,在配置多个CPU内核的服务器主机中,SSD固态盘中可以设置多个读写命令队列,这种方式保证了每个主机内核都能访问固态硬盘,并且多个读写队列可以并行执行。这种设置多个并行读写命令队列的方式,保证了服务器主机多核处理器、SSD固态盘PCIe主机接口、多NAND Flash存储介质的并发读写,极大的提升了并行读写带宽。
[0004]在新型数据中心中,服务器主机需要处理的并发访问数量持续增长,需要读写的数据量逐渐上升到GB级~几百GB。当几十GB~几百GB、数万并发数据持续写入和读取SSD固态盘时,“最新”写入的数据总量很快接近固态盘的空余空间,此时固态盘就需要激活垃圾回收动作,以释放空闲空间给后续的数据。处于垃圾回收状态的SSD固态盘,其主控芯片的微处理器、NAND Flash、DRAM缓存均处于持续的繁忙状态,为了保证数据读写的一致性状态,SSD固态盘处理读写命令队列的速度将会下降,此时服务器主机仍然在下发大量的数据读写命令、并把大量的读写命令放入数据读写队列中排队等候。
[0005]由于NAND Flash是一种非易失的存储介质,且存在较大概率的位反转和位错误,因此每一次的数据读写操作都需要执行大量的冗余纠错操作,在大量、持续写入数据时,发生错误的概率更高。这种情况下SSD固态盘就需要首先保障数据一致性,降低对现有数据读写队列的处理速度,已经处于数据读写队列的读写操作就只能等待,等待的时长完全依赖于微内核的处理速度、数据读写队列中读写指令的数量。通常情况下,SSD固态盘中数据读写操作等待的状态,会进一步负反馈到主机应用,加大其等待的时间,这就造成了海量的访问争抢有限的资源,导致所有操作陷于长久的相互等待状态。
[0006]由以上描述可知,在大规模、高并发、针对同一数据多交叉访问的应用中,高性能、大容量SSD固态盘一旦进入“繁忙”状态,主机应用为了获得所访问数据的最终状态,只能等待队列中的读写命令“缓慢执行”,无法加速、无法调整优先级,这就暴露了SSD固态盘在多并发队列设计中的不足。

技术实现思路

[0007]针对现有技术的缺陷,本专利技术设计了一种基于存储内容优先的SSD指令调度方法及系统,设计了面向存储内容的、可调整优先级的读写命令队列,能够适应大容量、高并发、多交叉读写访问的应用环境。
[0008]为了解决所述技术问题,本专利技术采用的技术方案是:基于存储内容优先的SSD指令调度方法,本方法针对服务器主机下发到SSD固态盘的大量数据读写命令,在构建数据队列时,增加了所操作数据的标识以及优先级因子;在未启动优先级因子时,服务器主机下发给SSD固态盘的数据读写命令按照先进先出的模式进行排队,命令队列控制模块从各个队列中轮询取出管理命令、数据读写命令,并交付给微处理器执行;在启动优先级因子时,服务器主机下发给SSD固态盘的数据读写命令包含数据标识和优先级因子,数据读写命令按照先进先出的模式插入数据队列的尾部,并在下发给SSD固态盘的管理命令中增加了优先级因子,同时将此管理命令放到管理队列的头部,通过命令队列控制模块的调度,带有优先级因子的管理命令在下一个循环中优先交付给微处理器执行,微处理器根据最新的管理命令,启动基于优先级因子的命令队列控制模块,并开始轮询数据队列。
[0009]进一步的,微处理器根据最新的管理命令,启动基于优先级因子的命令队列控制模块,并开始轮询数据队列的过程为:A、遍历数据队列,把具有高优先级的数据读写命令从队列中取出;B、逐一遍历步骤A取出的数据读写命令所在队列的所有数据读写命令,将与它数据标识相同的所有数据读写命令逐一取出,与步骤A取出的数据读写命令组成临时数据队列;C、参照数据读写命令在原队列中的先后顺序排列临时数据队列中数据读写命令的先后顺序,并设置每个数据读写命令的优先级与最后一个命令的优先级相同;D、将构建完成后的临时队列插入到原数据队列的头部,形成新的数据队列。
[0010]进一步的,在微处理器的后续执行周期中,将优先调度设置优先级的数据队列,并优先完成设置了优先级的数据读写命令。
[0011]本专利技术还公开一种基于存储内容优先的SSD指令调度系统,包括管理队列、数据队列、命令队列控制模块和微控制器,管理队列在SSD固态盘中只有一个,用于存储所有的管理命令,数据队列的数量根据服务器主机的并发读写需要生成,管理队列、数据队列分别与命令队列控制模块相连,命令队列控制模块用于维护SSD固态盘运行过程中生成的管理命令队列、数据读写命令队列,微控制器与命令队列控制模块相连,负责SSD固态盘中所有管理命令控制和执行、所有数据读写命令的控制和执行,其特征在于:本系统在命令队列控制模块中增加优先级轮询处理机制,在数据读写命令中增加了所操作数据的标识和优先级因子;在未启动优先级因子时,服务器主机下发给SSD固态盘的数据读写命令按照先进先出的模式进行排队,命令队列控制模块从各个队列中轮询取出管理命令、数据读写命令,并交付给微处理器执行;在启动优先级因子时,服务器主机下发给SSD固态盘的数据读写命令包含数据标识和优先级因子,数据读写命令按照先进先出的模式插入数据队列的尾部,并在下发给SSD固态盘的管理命令中增加了优先级因子,同时将此管理命令放到管理队列的头部,通过命令队列控制模块的调度,带有优先级因子的管理命令在下一个循环中优先交付给微处理器执行,微处理器根据最新的管理命令,启动基于优先级因子的命令队列控制模块,并
开始轮询数据队列。
[0012]进一步的,微处理器根据最新的管理命令,启动基于优先级因子的命令队列控制模块,并开始轮询数据队列的过程为:A、遍历数据队列,把具有高优先级的数据读写命令从队列中取出;B、逐一遍历步骤A取出的数据读写命令所在队列的所有数据读写命令,将与它数据标识相同的所有数据读写命令逐一取出,与步骤A取出的数据读写命令组成临时数据队列;C、参照数据读写命令在原队列中的先后顺序排列临时数据队列中数据读写命令的先后顺序,并设置每个数据读写命令的优先级与最后一个命令的优先级相同;D、将构建完成后的临时队列插入到原数据队列的头部,形成新的数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于存储内容优先的SSD指令调度方法,其特征在于:本方法针对服务器主机下发到SSD固态盘的大量数据读写命令,在构建数据队列时,增加了所操作数据的标识以及优先级因子;在未启动优先级因子时,服务器主机下发给SSD固态盘的数据读写命令按照先进先出的模式进行排队,命令队列控制模块从各个队列中轮询取出管理命令、数据读写命令,并交付给微处理器执行;在启动优先级因子时,服务器主机下发给SSD固态盘的数据读写命令包含数据标识和优先级因子,数据读写命令按照先进先出的模式插入数据队列的尾部,并在下发给SSD固态盘的管理命令中增加了优先级因子,同时将此管理命令放到管理队列的头部,通过命令队列控制模块的调度,带有优先级因子的管理命令在下一个循环中优先交付给微处理器执行,微处理器根据最新的管理命令,启动基于优先级因子的命令队列控制模块,并开始轮询数据队列。2.根据权利要求1所述的基于存储内容优先的SSD指令调度方法,其特征在于:微处理器根据最新的管理命令,启动基于优先级因子的命令队列控制模块,并开始轮询数据队列的过程为:A、遍历数据队列,把具有高优先级的数据读写命令从队列中取出;B、逐一遍历步骤A取出的数据读写命令所在队列的所有数据读写命令,将与它数据标识相同的所有数据读写命令逐一取出,与步骤A取出的数据读写命令组成临时数据队列;C、参照数据读写命令在原队列中的先后顺序排列临时数据队列中数据读写命令的先后顺序,并设置每个数据读写命令的优先级与最后一个命令的优先级相同;D、将构建完成后的临时队列插入到原数据队列的头部,形成新的数据队列。3.根据权利要求1所述的基于存储内容优先的SSD指令调度方法,其特征在于:在微处理器的后续执行周期中,将优先调度设置优先级的数据队列,并优先完成设置了优先级的数据读写命令。4.基于存储内容优先的SSD指令调度系统,包括管理队列、数据队列、命令队列控制模块和微控制器,管理队列在SSD固态盘中只有一个,用于存储所有的管理命令,数据队列的数量根据服务器主机的并发读写需要生成,管理...

【专利技术属性】
技术研发人员:李瑞东郭鹏
申请(专利权)人:山东华芯半导体有限公司
类型:发明
国别省市:

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

1