应用于固态硬盘中的IO原子性处理的加速装置制造方法及图纸

技术编号:32827165 阅读:10 留言:0更新日期:2022-03-26 20:31
本发明专利技术提供一种应用于固态硬盘中的IO原子性处理的加速装置,包括命令队列模块、数据读取模块、命令比较器和控制模块;命令队列模块用于存储固件接收到的HOST发来但未完成的NVME IO命令;数据读取模块通过数据总线与命令队列模块和新的NVME IO命令相连,从数据总线读取相应地址的数据;命令比较器与数据读取模块相连,是将从数据读取模块得到的新的NVME IO命令与命令队列模块中的NVME IO命令进行比较,并把结果输出给控制模块;控制模块与命令比较器相连,根据比较的结果,反馈给系统总线。本发明专利技术使用硬件加速判断NVME IO命令是否重叠进而提高NVME IO的原子性的整盘性能。IO的原子性的整盘性能。IO的原子性的整盘性能。

【技术实现步骤摘要】
IO命令与命令队列模块中的NVME IO命令是否有重叠的地址。
[0009]进一步的,设有队列状态寄存器来表示每个命令队列是否有NVME IO命令,每一个bit表示一个队列。
[0010]进一步的,基于本装置接收HOST命令的流程为:S01)、数据读取模块从数据总线读取队列状态寄存器,如果所有的NVME IO命令队列都为空,则进入S02);如果NVME IO队列有非空的,则进入S03);S02)、输出不重叠结果给控制模块,控制模块把该新的NVME IO命令插入到一个空的队列中,修改队列状态寄存器,把该命令发给后端执行S03)、从数据总线上读取NVME IO非空队列的队首命令和新的NVME IO命令,并传递给NVME IO命令比较模块S04)、命令比较器比较新的NVME IO命令与命令队列模块中的NVME IO命令是否有重叠的地址,如果比较结果为重叠,则把该新的NVME IO命令插入到该队列的队尾,结束;S05)、如果比较结果为不重叠,则进入S03),读取下一个非空队列;S06)、直到NVME IO队列非空的队首都比较完成,如果比较结果最终为不重叠。并且还有空的队列,则进入S02),否则停止接收HOST命令,直到后端返回完成消息,释放命令,出队列,如果队列为空,开启接收HOST命令。
[0011]进一步的,基于本装置接收后端完成命令后的流程为:S07)、接收到后端完成命令,则到相应的命令队列中,使该命令结点出队;S08)、如果出队后,该队列为空,修改相应的队列状态寄存器,如果S06)中有比较结果为不重叠,但没有空队列,而没有发到后端的命令,则启动该命令,进入S02)。
[0012]进一步的,命令队列模块的大小最大为256,每个命令队列的深度最大为16个。
[0013]进一步的,命令队列模块的大小为128。
[0014]本专利技术的有益效果:本专利技术从硬件实现了是否有重叠的地址的判断,并把重叠的命令暂缓发给后端,减少了后端的处理压力和逻辑,提高了NVME 固态硬盘整盘的性能。
附图说明
[0015]图1为实施例1所述装置的原理框图;图2为NVME IO 命令格式示意图;图3为NVME IO队列信息示意图。
具体实施方式
[0016]下面结合附图和具体实施例对本专利技术作进一步的说明。
[0017]实施例1本实施例公开一种应用于固态硬盘中的IO原子性处理的加速装置,如图1所示,包括命令队列模块、数据读取模块、命令比较器和控制模块。
[0018]命令队列模块用于存储固件接收到的HOST发来但未完成的NVME IO命令。
[0019]本实施例中,命令队列模块的大小为 QUOTE
ꢀꢀ
,即命令队列模块包括 QUOTE
ꢀꢀ
个命令队列,n为正整数,最大为256,一般设置为128。每个队列存有一个以上的NVME IO命令,其NVME IO命令个数(深度)最大为16个。还有队列状态寄存器来表示256个队列是
否有NVME IO命令,每一个bit表示一个队列。每个命令队列的队列头设有信息节点,如图3所示,信息节点存储该命令队列的深度、比较到了哪个NVME IO命令、该队列对比是否结束。
[0020]图1中设有16个命令队列,以队列0为例,其保存了两个命令:NVME IO cmd3和NVME IO cmd0。
[0021]数据读取模块通过数据总线与命令队列模块和新的NVME IO命令相连,用于根据来自控制模块的命令从数据总线读取相应地址的数据,包括新的NVME IO命令和命令队列模块中的NVME IO命令。
[0022]如图2所示,新的NVME IO命令和命令队列模块中的NVME IO命令均包括命令ID、命令类型、命令开始LBA和命令长度,命令比较器通过命令开始LBA和命令长度比较新的NVME IO命令与命令队列模块中的NVME IO命令是否有重叠的地址。
[0023]命令比较器与数据读取模块相连,是将从数据读取模块得到的新的NVME IO命令与命令队列模块中的NVME IO命令进行比较,并把结果输出给控制模块。
[0024]具体的,命令比较器比较新的NVME IO命令与命令队列模块中的NVME IO命令是否有重叠的地址,如果没有,就把新的NVME IO命令单独建立一个队列,并发往后端,否则保存新的NVME IO命令到有重叠冲突的队列中;后端执行完命令后,移除该命令所在命令队列中的相应NVME IO命令结点,如果该队列中还有其他命令结点,把该队列中的首个命令结点发往后端,否则释放该队列。
[0025]控制模块与命令比较器相连,根据比较的结果,反馈给系统总线,做相应动作。
[0026]基于本装置接收HOST命令的流程为:S01)、数据读取模块从数据总线读取队列状态寄存器,如果所有的NVME IO命令队列都为空,则进入S02);如果NVME IO队列有非空的,则进入S03);S02)、输出不重叠结果给控制模块,控制模块把该新的NVME IO命令插入到一个空的队列中,修改队列状态寄存器,把该命令发给后端执行S03)、从数据总线上读取NVME IO非空队列的队首命令和新的NVME IO命令,并传递给NVME IO命令比较模块S04)、命令比较器比较新的NVME IO命令与命令队列模块中的NVME IO命令是否有重叠的地址,如果比较结果为重叠,则把该新的NVME IO命令插入到该队列的队尾,结束;S05)、如果比较结果为不重叠,则进入S03),读取下一个非空队列;S06)、直到NVME IO队列非空的队首都比较完成,如果比较结果最终为不重叠。并且还有空的队列,则进入S02),否则停止接收HOST命令,直到后端返回完成消息,释放命令,出队列,如果队列为空,开启接收HOST命令。
[0027]基于本装置接收后端完成命令后的流程为:S07)、接收到后端完成命令,则到相应的命令队列中,使该命令结点出队;S08)、如果出队后,该队列为空,修改相应的队列状态寄存器,如果S06)中有比较结果为不重叠,但没有空队列,而没有发到后端的命令,则启动该命令,进入S02)。
[0028]本装置根据固件需求,对前端收到的HOST IO命令进行处理,对符合条件的IO命令发到后端,不符合条件的IO命令暂存下来,待后端处理完成回来再判断暂存的命令是否发送后端。
[0029]本装置实现:
第一,判断,当前的NVME IO命令与还没有完成的NVME IO命令是否有重叠的地址,如果没有,就把该NVME IO命令单独建立一个队列,并发往后端;否则进入第二步;第二,保存当前NVME IO命令到有重叠冲突的队列中;第三,后端完成后,移除相应队列中的NVME IO命令结点,如果该队列中还有其他结点,则把该队列中的队首结点发往后端;否则释放该队列;该装置能从硬件中判断是否发往后端,简化固件判断逻辑,减轻固件运行的负担,提高了固态硬盘整盘性能。
[0030]以上描述的仅是本专利技术的基本原理和优选实施例,本领域技术人员根据本专利技术做出的改进和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.应用于固态硬盘中的IO原子性处理的加速装置,其特征在于:包括命令队列模块、数据读取模块、命令比较器和控制模块;命令队列模块用于存储固件接收到的HOST发来但未完成的NVME IO命令;数据读取模块通过数据总线与命令队列模块和新的NVME IO命令相连,用于根据来自控制模块的命令从数据总线读取相应地址的数据,包括新的NVME IO命令和命令队列模块中的NVME IO命令;命令比较器与数据读取模块相连,是将从数据读取模块得到的新的NVME IO命令与命令队列模块中的NVME IO命令进行比较,并把结果输出给控制模块;控制模块与命令比较器相连,根据比较的结果,反馈给系统总线,做相应动作。2.根据权利要求1所述的应用于固态硬盘中的IO原子性处理的加速装置,其特征在于:命令比较器比较新的NVME IO命令与命令队列模块中的NVME IO命令是否有重叠的地址,如果没有,就把新的NVME IO命令单独建立一个队列,并发往后端,否则保存新的NVME IO命令到有重叠冲突的队列中;后端执行完命令后,移除该命令所在队列中的相应NVME IO命令结点,如果该队列中还有其他命令结点,把该队列中的首个命令结点发往后端,否则释放该队列。3.根据权利要求1所述的应用于固态硬盘中的IO原子性处理的加速装置,其特征在于:命令队列模块包括个命令队列,n为正整数,每个命令队列存有一个以上的NVME IO命令,每个命令队列的队列头设有信息节点,信息节点存储该命令队列的深度、比较到了哪个NVME IO命令、该队列对比是否结束。4.根据权利要求2或3所述的应用于固态硬盘中的IO原子性处理的加速装置,其特征在于:新的NVME IO命令和命令队列模块中的NVME IO命令均包括命令ID、命令类型、命令开始LBA和命令长度,命令比较器通过命令开始LBA和命令长度比较新的NVME IO命令与命令队列模块中的NVME IO命令是否有重叠的地址。5.根据权利要求3所述的应用于固态硬盘中的IO原子性处理的加速装置,其特...

【专利技术属性】
技术研发人员:孙大朋高美洲郭泰刘闵斋
申请(专利权)人:山东华芯半导体有限公司
类型:发明
国别省市:

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

1