【技术实现步骤摘要】
完全硬件卸载的NVMe存储加速系统
[0001]本专利技术涉及计算机软硬件架构、非易失存储系统
,具体地,涉及一种完全硬件卸载的NVMe存储加速系统。
技术介绍
[0002]基于闪存的solid
‑
state disks(SSDs)非易失存储(NVM)作为一种具备高I/O性能(例如低功耗、低延迟和高吞吐量)的存储类存储器(SCM)已经成为数据中心的首选数据持久化存储器。Non
‑
Volatile memory express(NVMe)的加持更是巩固了SSD在存储系统中的地位。近年来,海量数据的不断增长以及越来越多的云用户和云服务需求不仅促进了SSD的发展也促进了NVMe的优化。此外,为了满足数据密集型应用以及云服务的多租户、低延迟和高吞吐量需求,一些更高性能的SCM逐渐涌现,例如3D XPoint、相变RAM(PCM)、电阻RAM(ReRAM)和磁阻RAM(MRAM)等等。
[0003]以NAND Flash SSD为例,它内部的芯片数量和Flash通道不断增长,为数据中心和云平台中的数据密集型应用提供了更高的吞吐量、更高的带宽以及更低的延迟。为了充分利用SSD内部固有的并行能力,NVMe协议替代了为传统硬盘驱动器(HDD)设计的串行连接SCSI(SAS)协议和串行高级技术附件(SATA),成为了SSD的标配组件之一。NVMe是一种基于peripheral component interconnect express(PCIe)的高性能存储协议,它采用多I/O队列机 ...
【技术保护点】
【技术特征摘要】
1.一种完全硬件卸载的NVMe存储加速系统,其特征在于,包括一张由一个ARM软件处理器和一个现场可编程逻辑门阵列硬件处理器组成的异构加速卡,所述异构加速卡通过高速串行总线与主机连接;所述异构加速卡包括:ARM软件处理器,其内设有一个管理模块,用于处理NVMe管理命令,包括I/O队列创建、删除;FPGA硬件处理器,其内设有一个命令抓取模块,用于并行且批量地传输主机提交的NVMe管理和NVMe I/O命令;同时也用于并行且批量地传输加速卡生成的NVMe管理和NVMe I/O完成命令;虚拟队列绑定模块,用于将加速卡本地内存中I/O提交队列中的不同用户/应用的NVMe I/O命令分派至加速卡本地内存中指定的虚拟I/O提交队列中;I/O处理模块池,包括16个I/O处理模块,用于处理NVMe I/O命令;I/O带宽公平调度模块,用于实施不同用户/应用之间的I/O带宽公平调度;一个管理提交队列,被设置在加速卡本地内存中,用于向主机公开一个管理提交队列,与此同时,它也被用于缓存从主机内存中获取的NVMe管理命令;一个管理完成队列,被设置在加速卡本地内存中,用于向主机公开一个管理完成队列,与此同时,它也被用于缓存管理模块生成的NVMe管理完成命令;八个I/O提交队列,被设置在加速卡本地内存中,用于向主机公开八个I/O提交队列,与此同时,它也被用于缓存从主机内存中获取的NVMe I/O命令;八个I/O完成队列,被设置在加速卡本地内存中,用于向主机公开八个I/O完成队列,与此同时,它也被用于缓存I/O处理模块生成的NVMe I/O完成命令;八个虚拟I/O提交队列池,被设置在加速卡本地内存中,八个虚拟I/O提交队列池与加速卡本地内存中的八个I/O提交队列一一对应,用于缓存八个I/O提交队列中存储的不同用户/应用提交的NVMe I/O命令。2.根据权利要求1所述的完全硬件卸载的NVMe存储加速系统,其特征在于,所述管理模块通过内存读写控制的方式从加速卡本地内存中的管理提交队列中读取NVMe管理命令并处理,处理完成后管理模块生成对应的NVMe管理完成命令并通过内存读写控制的方式将NVMe管理完成命令写入加速卡本地内存中的管理完成队列。3.根据权利要求1所述的完全硬件卸载的NVMe存储加速系统,其特征在于,所述命令抓取模块通过直接内存访问的方式获取主机内存中管理提交队列中的NVMe管理命令和I/O提交队列中的NVMe I/O命令,并通过直接内存访问的方式将NVMe管理命令和NVMe I/O命令写入加速卡本地内存中的管理提交队列和对应的I/O提交队列;与此同时,命令抓取模块通过直接内存访问的方式获取加速卡本地内存中管理完成队列中的NVMe管理完成命令和I/O完成队列中的NVMe I/O完成命令,并通过直接内存访问的方式将NVMe管理完成命令和NVMe I/O完成命令写入主机内存中的管理完成队列和对应的I/O完成队列。4.根据权利要求1所述的完全硬件卸载的NVMe存储加速系统,其特征在于,所述虚拟队列绑定模块通过内存读写控制的方式从加速卡本地内存中的I/O提交队列读取NVMe I/O命令并解析命令中的用户ID字段,随后根据用户ID将NVMe I/O命令通过内存读写控制的方式写入加速卡本地内存中指定的虚拟I/O提交队列;
所述I/O处理模块通过内存读写控制的方式从加速卡本地内存中的虚拟I/O提交队列中读取NVMe I/O命令并处理,处理完成后I/O处理模块生成对应的NVMe I/O完成命令并通过内存读写控制的方式将NVMe I/O完成命令写入加速卡本地内存中对应的I/O完成队列。5.根据权利要求1所述的完全硬件卸载的NVMe存储加速系统,其特征在于,所述I/O带宽公平调度模块通过寄存器读取的方式实时获取每个用户/应用已经传输的数据量,并通过寄存器写入的方式将数据量累加到每个用户/应用对应的带宽累加寄存器中,随后I/O带宽公平调度模块利用带宽累加寄存器中的值实时获取每个用户/应用已经获得的I/O带宽并选取已获得I/O带宽最小的用户,最后I/O带宽公平调度模块根据被选取用户的用户ID将加速卡本地内存中对应的虚拟I/O提交队列设置为活动状态,而将其他用户ID对应的虚拟I/O提交队列设置为静默状态,从而限制大带宽用户的I/O命令处理速度,加快小带宽用户的I/O命令处理速度。6.根据权利要求1所述的完全硬件卸载的NVMe存储加速系统,其特征在于,所述管理模块包括队列处理子模块、数据处理子模块和完成处理子模块;队列处理子模块通过内存读写控制的方式从加速卡本地内存中的管理提交队列中读取NVMe...
【专利技术属性】
技术研发人员:姚建国,王文杰,黄益人,唐杰,彭博,
申请(专利权)人:益思芯科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。