一种PCIe SSD多虚拟功能设备的带宽协同控制装置及方法

文档序号:1849653 发布日期:2021-11-16 浏览:10次 >En<

阅读说明:本技术 一种PCIe SSD多虚拟功能设备的带宽协同控制装置及方法 (Bandwidth cooperative control device and method for PCIe SSD multi-virtual function device ) 是由 吴斌 王璞 段好强 乔子龙 孙中琳 于 2021-07-30 设计创作,主要内容包括:本发明公开一种PCIe SSD多虚拟功能设备的带宽协同控制装置及方法,增加了SSD流量检测与控制单元,该模块可以利用总线上数据传输信息计算出各个控制器的带宽,根据流量控制寄存器中设定的带宽比例,实现限速甄别和信号发送;增加了中断控制单元,用于将流量控制模块发出的限速信号转换成中断,发送到cpu核。通过本专利的方法,硬件模块精确计算各个控制器的带宽,与cpu固件一起,实现了虚拟设备的带宽约束功能,具有支持数据流控占比可调、功能灵活的特点,有效分担了服务器主机的计算压力,为服务器运行更多用户服务提供可能性。(The invention discloses a bandwidth cooperative control device and method of PCIe SSD multi-virtual function equipment.A SSD flow detection and control unit is added, and a module can calculate the bandwidth of each controller by utilizing data transmission information on a bus and realize speed limit discrimination and signal transmission according to the bandwidth proportion set in a flow control register; and an interrupt control unit is additionally arranged and used for converting the speed limit signal sent by the flow control module into an interrupt and sending the interrupt to the cpu core. According to the method, the hardware module accurately calculates the bandwidth of each controller, the bandwidth constraint function of the virtual equipment is realized together with the CPU firmware, the method has the characteristics of supporting adjustable data flow control ratio and flexible functions, the calculation pressure of the server host is effectively shared, and the possibility is provided for the server to run more user services.)

一种PCIe SSD多虚拟功能设备的带宽协同控制装置及方法

技术领域

本发明涉及存储领域,具体是一种PCIe SSD多虚拟功能设备的带宽协同控制装置及方法。

背景技术

随着云计算业务的深入发展,服务器主机对SSD提出了新的要求,特别是多虚拟功能设备(virtual function, VF)的PCIe SSD成为发展趋势。常见的企业级SSD支持的规格数为16VFs、32VFs,支持多命名空间功能。一个VF可提供相对独立的PCIe设备空间,支持挂载到不同的虚拟机上并识别成一个nvme设备,提供上层客户应用。在服务器应用过程中,为了保证不同客户对SSD的访问负载均衡及不同虚拟设备间的流量平衡,常在服务器端进行流量控制,这在一定程度上耗费了CPU运算性能。

发明内容

针对现有技术的缺陷,本发明提供一种PCIe SSD多虚拟功能设备的带宽协同控制装置及方法,在SSD控制器中通过监控内部总线上不同虚拟设备收发数据流的占比,通过硬软件配合,达到控制数据流的效果,具有支持数据流控占比可调、功能灵活的特点,有效降低了服务器主机的计算压力,为服务支持更多用户服务提供可能性。

为了解决所述技术问题,本发明采用的技术方案是:一种PCIe SSD多虚拟功能设备的带宽协同控制装置,其特征在于:本装置设置于SSD主控芯片内部,包括流量检测与控制单元、中断控制单元和寄存器;

流量检测与控制单元连接于nvme控制器与PCIe接口模块之间,流量检测与控制单元计算各个nvme控制器发出的数据包包含的数据量,再根据采样时间计算出每个控制器所占用的带宽,并根据当前建立链路的速率计算出每个控制器所占的带宽比例,当某控制器所占带宽比例达到其设定比例的a时,发送中断请求;

中断控制单元与流量检测与控制单元相连,用于生成中断信号,当流量检测与控制单元发起中断请求时,由中断控制单元生成中断信号,同时在中断标识寄存器中标识出相应位,用于固件读取;

寄存器包括一组流量控制寄存器和一个流量状态寄存器,流量控制器寄存器的数量根据SSD支持的功能设备个数确定,用于设置每个控制器的流量比例,流量状态寄存器用于标识发生流量限制的控制器;

中断控制单元生成的中断信号发送至SSD主控芯片内部的CPU核,CPU核收到中断信号后,内部固件暂时限制对应的nvme控制器抢占DMA请求,从而限制对应nvme控制器的数据传输量,当统计的流量比例低于b时,清除对应标识位,取消对nvme控制器的流量限制。

进一步的,nvme控制器发出的数据包包含控制器号、数据量在内的读写标志信息,流量检测与控制单元基于上述读写标志信息计算各个nvme控制器发出的数据包包含的数据量。

进一步的,a=99%,b=97%。

进一步的,流量状态寄存器的每个bit表示一个控制器。

本发明还公开了一种PCIe SSD多虚拟功能设备的带宽协同控制方法,包括以下步骤:

S01)、SSD固件通过寄存器配置各个nvme控制器的流量比例;

S02)、SSD正常读写的过程中,流量检测与控制单元自动进入进行状态,计算各个nvme控制器发出的数据包包含的数据量,再根据采样时间计算出每个控制器所占用的带宽,并根据当前建立链路的速率计算出每个控制器所占的带宽比例,当监控到某个控制器的带宽比例到达a时,标注流量状态寄存器,并向中断控制单元发起信号;

S03)、中断控制单元收到信号后,生成中断信号发送至SSD主控芯片内部的CPU核;

S04)、CPU核响应中断异常请求后,查询流量状态寄存器,识别出发生限速的控制器ID,触发限速算法,此后该控制器在获取DMA请求时进行限制,使得该控制器发送DMA的请求进行pending处理;

S05)、当流量检测与控制单元检测到上述控制器的带宽比例回到限定比例的b及以下时,清除对应寄存器的值;

S06)、固件轮询检测已经置位的控制器恢复正常后,取消相应控制器发起DMA请求的限制,该控制器的数据传输回复正常。

进一步的,a=99%,b=97%。

本发明的有益效果:本发明申请提供了一种PCIe SSD多虚拟功能设备的带宽协同控制装置及方法,增加了SSD流量检测与控制单元,该模块可以利用总线上数据传输信息计算出各个控制器的带宽,根据流量控制寄存器中设定的带宽比例,实现限速甄别和信号发送;增加了中断控制单元,用于将流量控制模块发出的限速信号转换成中断,发送到cpu核。通过本专利的方法,硬件模块精确计算各个控制器的带宽,与cpu固件一起,实现了虚拟设备的带宽约束功能,具有支持数据流控占比可调、功能灵活的特点,有效分担了服务器主机的计算压力,为服务器运行更多用户服务提供可能性。

附图说明

图1为实施例1所述装置的原理框图;

图2为实施例2所述方法的流程图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的说明。

实施例1

本实施例公开一种PCIe SSD多虚拟功能设备的带宽协同控制装置,如图1所示,SSD板卡包括SOC主控芯片、nand flash、ram和PCIe金手指接口,本装置在SSD主控芯片内部实现。

本实施例所述协同控制装置包括流量检测与控制单元、中断控制单元和寄存器。

流量检测与控制单元连接于nvme控制器与PCIe接口模块之间,在nvme控制器c0…cx(x=1,2,..,VFnum)向SSD内部总线发出的数据包中,包含着控制器号、数据量等相关的读写标志信息,流量检测与控制单元利用上述信息计算各个nvme控制器发出的数据包包含的数据量,再根据采样时间计算出每个控制器所占用的带宽,并根据当前建立链路的速率计算出每个控制器所占的带宽比例,当某控制器所占带宽比例达到其设定比例的99%时,标记对应的流量状态寄存器对应Bit,发送中断请求。

中断控制单元与流量检测与控制单元相连,用于生成中断信号,当流量检测与控制单元发起中断请求时,由中断控制单元生成中断信号,同时在中断标识寄存器中标识出相应位,用于固件读取。

寄存器包括一组流量控制寄存器和一个流量状态寄存器,流量控制器寄存器的数量根据SSD支持的功能设备个数确定,用于设置每个控制器的流量比例,流量状态寄存器用于标识发生流量限制的控制器。

CPU核运行固件,实现读写命令和中断处理。上电时,固件设置好流量控制寄存器中各个nvme控制器对应的流量控制比例。正常情况下,接收并解析完主机的读写命令后,会发起DMA请求,向主机传递所需要的用户数据。当接收到中断控制器的请求后,根据中断状态控制器的标志位,判断到发生限流的控制器ID,内部固件暂时限制对应的nvme控制器抢占DMA请求,从而限制对应nvme控制器的数据传输量,当统计的流量比例低于97%时,清除对应标识位,取消对nvme控制器的流量限制。

本实施例中,流量控制器寄存器的数量根据SSD支持的功能设备个数确定,如果共支持8个则需要设置2个32bit流量控制寄存器。流量状态寄存器的每个bit表示一个控制器。

实施例2

本实施例公开一种PCIe SSD多虚拟功能设备的带宽协调控制方法,如图2所示,包括以下步骤:

S01)、SSD固件通过寄存器配置各个nvme控制器的流量比例;

S02)、SSD正常读写的过程中,流量检测与控制单元自动进入进行状态,计算各个nvme控制器发出的数据包包含的数据量,再根据采样时间计算出每个控制器所占用的带宽,并根据当前建立链路的速率计算出每个控制器所占的带宽比例,当监控到某个控制器的带宽比例到达99%时,标注流量状态寄存器,并向中断控制单元发起信号;

S03)、中断控制单元收到信号后,生成中断信号发送至SSD主控芯片内部的CPU核;

S04)、CPU核响应中断异常请求后,查询流量状态寄存器,识别出发生限速的控制器ID,触发限速算法,此后该控制器在获取DMA请求时进行限制,使得该控制器发送DMA的请求进行pending处理;

所述限速算法是指限速控制器的读写命令暂时不分配DMA资源,也即停止发送新的数据传输请求。经过一定采样时间后,该控制器的带宽会有所下降。

S05)、当流量检测与控制单元检测到上述控制器的带宽比例回到限定比例的97%及以下时,清除对应寄存器的值;

S06)、固件轮询检测已经置位的控制器恢复正常后,取消相应控制器发起DMA请求的限制,该控制器的数据传输回复正常。

通过本专利的方法,硬件模块精确计算各个控制器的带宽,与cpu固件一起,实现了虚拟设备的带宽约束功能,具有支持数据流控占比可调、功能灵活的特点,有效分担了服务器主机的计算压力,为服务器运行更多用户服务提供可能性。

以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种数据存储方法、装置、终端及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!