CN118916312B - 一种数据传输方法、装置、系统、计算机设备及存储介质 - Google Patents
一种数据传输方法、装置、系统、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN118916312B CN118916312B CN202411406511.3A CN202411406511A CN118916312B CN 118916312 B CN118916312 B CN 118916312B CN 202411406511 A CN202411406511 A CN 202411406511A CN 118916312 B CN118916312 B CN 118916312B
- Authority
- CN
- China
- Prior art keywords
- control unit
- flow control
- storage device
- target
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及存储技术领域,公开了一种数据传输方法、装置、系统、计算机设备及存储介质,应用于存储控制器;该方法包括:接收主机的内存中目标业务对应的传输命令,传输命令用于请求在主机和存储设备之间传输目标业务的目标数据流;检测存储设备是否开启流控单元功能;在开启流控单元功能的情况下,检测传输命令是否携带有目标数据流的目标数据流标签;如果携带,则在至少一个流控单元中确定目标流控单元,并将传输命令转发至目标流控单元,目标流控单元用于控制目标数据流按照预设传输速率在主机与存储设备之间传输,预设传输速率与目标业务所需的存储带宽值相匹配。本发明可以解决为存储设备分配的带宽资源过多,导致存储设备功耗较大的问题。
Description
技术领域
本发明涉及存储技术领域,具体涉及一种数据传输方法、装置、系统、计算机设备及存储介质。
背景技术
随着大数据和存储技术的发展,主机和存储设备之间进行读写交互的场景也越来越复杂。尤其面对不同场景下的不同业务或多用户或多任务环境的企业级存储系统时,主机需要给存储设备分配合理的带宽资源,以支持主机与存储设备之间的读写交互。
传统的分配带宽资源方式,主机通常根据会尽量给存储资源分配足够的带宽资源,以此来确保关键任务或者关键用户获得足够的存储资源,而不会对其他任务造成影响。这种方式会为存储设备分配的带宽资源过多,导致存储设备功耗较大,使得存储设备异常过热,甚至损坏存储设备,增加运营成本。
发明内容
有鉴于此,本发明提供了一种数据传输方法、装置、系统、计算机设备及存储介质,以解决为存储设备分配的带宽资源过多,导致存储设备功耗较大,使得存储设备异常过热,甚至损坏存储设备,增加运营成本的问题。
第一方面,本发明提供了一种数据传输方法,应用于存储控制器,存储控制器与至少一个流控单元相连接,每个流控单元对应一个数据流标签;存储控制器、至少一个流控单元集成在存储设备中;该方法包括:接收主机的内存中目标业务对应的传输命令,传输命令用于请求在主机和存储设备之间传输目标业务的目标数据流;检测存储设备是否开启流控单元功能;在开启流控单元功能的情况下,检测传输命令是否携带有目标数据流的目标数据流标签;如果携带,则在预配置的至少一个流控单元中确定目标流控单元,并将传输命令转发至目标流控单元,目标流控单元用于在主机或存储设备中获取目标数据流,并控制目标数据流按照预设传输速率在主机与存储设备之间传输,预设传输速率与目标业务所需的存储带宽值相匹配。
基于上述第一方面的方法,可以在接收主机内存的目标业务的传输命令后,在检测存储设备开启流控单元功能,且传输命令有目标数据流的目标数据流标签,可以将传输命令转发给对应的流控单元。由于该流控单元可以控制目标数据流按照预设传输速率在主机与存储设备之间传输,且预设传输速率与目标业务所需的存储带宽值相匹配,即可以将数据流标签对应的数据流,分发给目标业务对应的目标流控单元进行数据传输,即可以基于目标业务给存储设备的目标流控单元分配合理存储带宽值,控制目标流控单元传输数据的吞吐量保持在合理范围,降低存储设备功耗,避免存储设备异常过热,甚至损坏存储设备的问题,降低运营成本,满足不同用户或业务的需求。
在一种可选的实施方式中,获取主机的内存中所有传输命令所属的至少一个业务;根据至少一个业务配置对应的至少一个流控单元和每个流控单元对应的数据流标签,每个流控单元与每个业务一一对应。
基于上述方法,可以根据主机中传输命令对应的业务,在存储设备中配置与每个业务相对应的流控单元,便于后续基于每个业务所需的存储带宽值,确定流控单元的预设传输速率。
在一种可选的实施方式中,在根据至少一个业务配置对应的至少一个流控单元之前,方法还包括:接收主机下发的第一指令,检测存储设备是否支持设置流控单元,并反馈第一信息到主机,第一信息用于指示存储设备支持设置流控单元;接收主机下发的第二指令,检测存储设备支持设置的流控单元的类型,并反馈第二信息到主机,第二信息用于指示存储设备支持设置的流控单元的类型为允许配置类型;接收主机下发的第三指令,开启存储控制器的设置流控单元的权限,并反馈第三信息到主机,第三信息用于指示权限已开启;在存储设备支持设置流控单元、支持设置的流控单元的类型为允许配置类型、权限已开启的情况下,接收主机下发的第四指令,第四指令用于配置至少一个流控单元。
基于上述方法,对流控单元的进行检测和配置,可以提高配置至少一个流控单元时存储设备的可靠性和安全性,便于对流控单元进行精细化管理。
在一种可选的实施方式中,传输命令包括第一字段和第二字段,第一字段用于指示传输命令的类型;第二字段用于指示数据流标签;检测存储设备是否开启流控单元功能,包括:对第一字段和第二字段进行校验,确定第一字段和第二字段是否符合存储设备对应的存储协议;在第一字段和第二字段均符合存储协议的情况下,确定存储设备开启流控单元功能;在第一字段或第二字段不符合存储协议的情况下,确定存储设备未开启流控单元功能。
基于上述方法,可以通过对传输命令中第一字段和第二字段进行检验,确定传输命令是否符合存储协议,进而确定传输命令的合法性,并在第一字段和第二字段均符合存储协议的情况下,确定存储设备开启流控单元功能。
在一种可选的实施方式中,在开启流控单元功能的情况下,检测传输命令是否携带有目标数据流的目标数据流标签;包括:确定第二字段是否与目标数据流标签对应的字段一致;若一致,则确定传输命令携带有目标数据流标签。
基于上述方法,可以确定传输命令中是否携带有目标数据流标签。传输命令携带有数据流标签,即表明目标数据流携带有目标数据流标签,便于后续基于目标数据流标签确定目标流控单元。
在一种可选的实施方式中,如果携带,则在预配置的至少一个流控单元中确定目标流控单元,包括:如果携带,根据目标数据流标签和预设对应关系,在预配置的至少一个流控单元中确定目标流控单元,预设对应关系为目标数据流标签和目标流控单元的对应关系。
基于上述方法,可以基于目标数据流标签和目标流控单元的对应关系,确定传输命令对应的目标流控单元。
在一种可选的实施方式中,目标流控单元设置有令牌桶;方法还包括:获取目标业务所需的存储带宽值和存储设备的最小内存页大小;根据存储带宽值和最小内存页大小,确定令牌桶的令牌容量,令牌容量为令牌桶允许容纳的最大令牌数,最大令牌数用于控制主机与存储设备之间的目标数据流的预设传输速率。
基于上述方法,可以基于令牌桶限制数据流的预设传输速率,确保数据传输的预设传输速率不超过目标业务所需的存储带宽值,进而防止存储设备过载,尤其是在高负载情况下,可以避免由于瞬时数据流量过大而导致的性能下降。
第二方面,本发明提供了一种数据传输方法,应用于目标流控单元,目标流控单元配置在存储设备中,存储设备还包括存储控制器;该方法包括:接收来自存储控制器转发的传输命令,传输命令用于请求在主机和存储设备之间传输目标业务的目标数据流,传输命令包括目标数据流的数据长度;获取目标数据流;基于数据长度,按照预设传输速率控制目标数据流在主机和存储设备之间传输,预设传输速率与目标业务所需的存储带宽值相匹配。
基于上述第二方面的方法,可以在接收到存储控制器转发的传输命令后,可以基于传输命令包括的目标数据流的数据长度,按照预设传输速率控制目标数据流在主机和存储设备之间传输,由于该流控单元可以控制目标数据流按照预设传输速率在主机与存储设备之间传输,且预设传输速率与目标业务所需的存储带宽值相匹配,即可以将数据流标签对应的数据流,分发给目标业务对应的目标流控单元进行数据传输,即可以基于目标业务给存储设备的目标流控单元分配合理存储带宽值,控制目标流控单元传输数据的吞吐量保持在合理范围,降低存储设备功耗,避免存储设备异常过热,甚至损坏存储设备的问题,降低运营成本,满足不同用户或业务的需求。
在一种可选的实施方式中,目标流控单元设置有令牌桶;基于数据长度,按照预设传输速率控制目标数据流在主机和存储设备之间传输,包括:获取当前时刻令牌桶内的令牌数,令牌数小于等于令牌桶的令牌容量,令牌容量是基于目标业务所需的存储带宽值确定的令牌桶中的最大令牌数;根据数据长度和存储设备对应的最小内存页大小,确定存储目标数据流的数据块的数量;在数据块的数量小于等于令牌数的情况下,按照预设传输速率控制目标数据流在主机和存储设备之间传输;或者,在数据块的数量大于令牌数情况下,等待预设时长,按照预设传输速率控制目标数据流在主机和存储设备之间传输,预设时长为令牌数累加到数据块的数量时所用的时长。
基于上述方法,可以通过令牌桶中的令牌数,控制主机与存储设备之间的数据传输速率或数据传输的吞吐量,进而防止存储设备过载,尤其是在高负载情况下,可以避免由于瞬时数据流量过大而导致的性能下降。
在一种可选的实施方式中,在数据块的数量大于令牌数情况下,确定数据块的数量与令牌数的差值;计算差值与累加每块令牌所需的时长的乘积,确定预设时长,累加每块令牌所需的时长为1与令牌容量之比。
基于上述方法,可以在数据块的数量大于令牌数情况下,即目标数据流过大的情况下,等待令牌桶中的令牌数累加到等于数据块的数量,再按照预设传输速率控制目标数据流在主机和存储设备之间传输。
在一种可选的实施方式中,存储设备还包括闪存;当传输命令为写命令时,传输命令还包括目标数据流在主机的内存的原地址以及在存储设备的闪存的目标地址,传输命令用于请求将主机的内存中存储的目标数据流写入闪存;获取目标数据流,包括:基于主机的内存的原地址,从主机的内存中获取目标数据流;基于数据长度,按照预设传输速率控制目标数据流在主机和存储设备之间传输,包括:基于数据长度,按照预设传输速率将目标数据流从主机的内存的原地址写入存储设备的闪存的目标地址。
基于上述方法,当传输命令为写命令时,可以从主机的内存中获取目标数据流,基于数据长度,按照预设传输速率将目标数据流从主机的内存的原地址写入存储设备的闪存的目标地址。
在一种可选的实施方式中,当传输命令为读命令时,传输命令还包括目标数据流在存储设备的闪存的原地址以及在主机的内存的目标地址,传输命令用于请求将存储设备的闪存中存储的目标数据流写入主机的内存;获取目标数据流,包括:基于存储设备的闪存的原地址,从存储设备的闪存中获取目标数据流,基于数据长度,按照预设传输速率控制目标数据流在主机和存储设备之间传输,包括:基于数据长度,按照预设传输速率将目标数据流从存储设备的闪存的原地址写入主机的内存的目标地址。
基于上述方法,当传输命令为读命令时,可以从存储设备的闪存中获取目标数据流,基于数据长度,按照预设传输速率将目标数据流从存储设备的闪存的原地址写入主机的内存的目标地址。
第三方面,本发明提供了一种数据传输方法,应用于主机,该方法包括:发送第一指令、第二指令、第三指令和第四指令到存储设备的存储控制器,第一指令用于指示存储控制器检测存储设备是否支持设置流控单元;第二指令用于指示存储控制器检测存储设备支持设置的流控单元的类型;第三指令用于开启存储控制器的设置流控单元的权限;第四指令用于指示存储控制器设置至少一个流控单元;
发送目标业务对应的传输命令到存储控制器,存储控制器用于接收传输命令,并将传输命令转发至至少一个流控单元中确定的目标流控单元,目标流控单元用于在主机或存储设备中获取目标数据流,并控制目标数据流按照预设传输速率在主机与存储设备之间传输,预设传输速率与目标业务所需的存储带宽值相匹配。
基于上述第三方面,对存储设备的进行检测和配置,可以提高配置至少一个流控单元时存储设备的可靠性和安全性,便于对流控单元进行精细化管理。由于该流控单元可以控制目标数据流按照预设传输速率在主机与存储设备之间传输,且预设传输速率与目标业务所需的存储带宽值相匹配,即可以将数据流标签对应的数据流,分发给目标业务对应的目标流控单元进行数据传输,即可以基于目标业务给存储设备的目标流控单元分配合理存储带宽值,控制目标流控单元传输数据的吞吐量保持在合理范围,降低存储设备功耗,避免存储设备异常过热,甚至损坏存储设备的问题,降低运营成本,满足不同用户或业务的需求。
第四方面,本发明提供了一种数据传输装置,应用于存储控制器,所述存储控制器与至少一个流控单元相连接,每个所述流控单元对应一个数据流标签;所述存储控制器、所述至少一个流控单元集成在存储设备中;该装置包括:第一收发模块,用于接收主机的内存中目标业务对应的传输命令,所述传输命令用于请求在所述主机和所述存储设备之间传输所述目标业务的目标数据流;第一处理模块,用于检测所述存储设备是否开启流控单元功能;所述第一处理模块,还用于在开启所述流控单元功能的情况下,检测所述传输命令是否携带有所述目标数据流的目标数据流标签;所述第一处理模块,还用于如果携带,则在预配置的所述至少一个流控单元中确定目标流控单元,并将所述传输命令转发至所述目标流控单元,所述目标流控单元用于在所述主机或所述存储设备中获取所述目标数据流,并控制所述目标数据流按照预设传输速率在所述主机与所述存储设备之间传输,所述预设传输速率与所述目标业务所需的存储带宽值相匹配。
第五方面,本发明提供了一种数据传输装置,应用于目标流控单元,所述目标流控单元配置在存储设备中,所述存储设备还包括存储控制器;所述装置包括:第二收发模块,用于接收来自所述存储控制器转发的传输命令,所述传输命令用于请求在主机和所述存储设备之间传输目标业务的目标数据流,所述传输命令包括所述目标数据流的数据长度;所述第二收发模块,用于获取所述目标数据流;第二处理模块,用于基于所述数据长度,按照所述预设传输速率控制所述目标数据流在所述主机和所述存储设备之间传输,所述预设传输速率与所述目标业务所需的存储带宽值相匹配。
第六方面,本发明提供了一种数据传输装置,应用于主机;该装置包括:第三收发模块,用于发送第一指令、第二指令、第三指令和第四指令到存储设备的存储控制器,所述第一指令用于指示所述存储控制器检测所述存储设备是否支持设置流控单元;所述第二指令用于指示所述存储控制器检测所述存储设备支持设置的所述流控单元的类型;所述第三指令用于开启所述存储控制器的设置所述流控单元的权限;所述第四指令用于指示所述存储控制器设置至少一个流控单元;第三收发模块,还用于发送目标业务对应的传输命令到存储控制器,所述存储控制器用于接收所述传输命令,并将所述传输命令转发至所述至少一个流控单元中确定的目标流控单元,所述目标流控单元用于在所述主机或所述存储设备中获取所述目标数据流,并控制所述目标数据流按照预设传输速率在所述主机与所述存储设备之间传输,所述预设传输速率与所述目标业务所需的存储带宽值相匹配。
第七方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的数据传输方法,或者执行上述第二方面或其对应的任一实施方式的数据传输方法,或者执行上述第三方面或其对应的任一实施方式的数据传输方法。
第八方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的数据传输方法,或者执行上述第二方面或其对应的任一实施方式的数据传输方法,或者执行上述第三方面或其对应的任一实施方式的数据传输方法。
第九方面,本发明提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的数据传输方法,或者执行上述第二方面或其对应的任一实施方式的数据传输方法,或者执行上述第三方面或其对应的任一实施方式的数据传输方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的主机与存储设备的交互示意图;
图2是根据本发明实施例的数据传输系统的拓扑图;
图3是根据本发明实施例的数据传输方法的流程图;
图4是根据本发明实施例的又一数据传输方法的流程图;
图5是根据本发明实施例的另一数据传输方法的流程图;
图6是根据本发明实施例的数据传输装置的结构框图;
图7是根据本发明实施例的又一数据传输装置的结构框图;
图8是根据本发明实施例的另一数据传输装置的结构框图;
图9是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的技术方案应用于主机与存储设备的交互场景。如图1所示,图1是本发明实施例的主机与存储设备的交互示意图。在图1中,非易失性内存控制器接口规范(Non-Volatile Memory Express,NVMe)协议规范了主机和存储设备之间的读写交互方式。在主机和存储设备(例如,NVMe设备)之间进行读写交互时,主机通过位于主机内存的指令队列和存储设备完成交互,指令队列包括了提交队列(Submission Queue,SQ)和完成队列(Completion Queue,CQ)。主机需要将存储设备执行的指令(Submit Queue Entry,SQE)放入SQ队列中,然后通知存储设备从SQ队列里面读取SQE指令,存储设备内部的存储控制器通过高速串行计算机扩展总线标准(Peripheral Component Interconnect express,PCIe)消息从主机内存的SQ队列中读取SQE指令,并在存储设备内部执行该指令,通过直接存储器访问(Direct Memory Access,DMA)和主机内存进行数据交换,存储控制器将执行完成的指令结果CQE通过PCIe消息放入主机的CQ队列中,并通知主机完成一次读写交互。
如背景技术所述,存储设备与主机之间的交互过程中,主机需要为存储设备分配足够的带宽资源。面对多用户或多任务环境的企业级存储系统中,系统管理员可能需要对不同的任务或者不同的用户分配不同的带宽资源配额。这种方式会为存储设备分配的带宽资源过多,导致存储设备功耗较大,使得存储设备异常过热,甚至损坏存储设备,增加运营成本。
为了解决上述技术问题,本发明提供了一种数据传输方法,该方法可以在主机给每个数据流打上标签,使存储控制器区分不同业务或者不同用户的数据流,并分发到对应的流控单元,对不同的数据流进行带宽管理。可以为存储设备中不同业务或者不同用户对应的流控单元分配的合理的带宽资源,避免出现存储设备功耗较大、存储设备异常过热,甚至损坏存储设备的问题。
下面以图2所示数据传输系统20为例,对本发明实施例提供的方法进行描述。图2仅为示意图,并不构成对本申请提供的技术方案的适用场景的限定。
如图2所示,图2是根据本发明实施例的数据传输系统的拓扑图。图2中,数据传输系统20可以包括存储设备201和主机202。
其中,存储设备201包括存储控制器2011、第一流控单元2012、第二流控单元2013、闪存2014。主机202包括内存2021。
本发明实施例中,存储设备201可以是任意一种存储设备,例如,存储设备可以是NVMe设备、固态硬盘、混合硬盘、存储卡等。
本发明实施例中,存储控制器2011可以是存储设备201的主控制器,对NVMe命令进行处理的功能模块。
本发明实施例中,第一流控单元2012或第二流控单元2013为存储设备201用于管理和控制数据流的组件。流控单元用于确保数据流按照预定的方式传输,避免拥塞,并优化资源利用。存储控制器2011与第一流控单元2012或第二流控单元2013相连接。
流控单元包括指令解析模块、令牌桶模块和DMA模块。其中,指令解析模块用于解析传输命令。令牌桶模块模块用于确定流控单元对应的令牌生成频率和令牌容量。令牌生成频率和令牌容量由目标业务所需的存储带宽值确定的。DMA模块用于传输数据流。
本发明实施例中,闪存2014可以是flash存储介质。
本发明实施例中,主机202可以是能够执行应用程序并与网络上的其他设备进行通信的计算机系统。例如,主机可以是服务器、工作站、笔记本电脑、台式电脑、移动设备(如智能手机和平板电脑)等任何能够接入网络并参与网络通信的设备。
本发明实施例中,内存2011可以是安装在计算机主机中的用于存储当前正在运行的程序和数据流的易失性存储器。
图2所示的数据传输系统20仅用于举例,并非用于限制本申请的技术方案。本领域的技术人员应当明白,在具体实现过程中,数据传输系统20还可以包括更多的流控单元,不予限制。
根据本发明实施例,提供了一种数据传输方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种数据传输方法,可用于上述的存储控制器,图3是根据本发明实施例的数据传输方法的流程图,如图3所示,该流程包括如下步骤:
S301:接收主机的内存中目标业务对应的传输命令。
其中,传输命令用于请求在主机和存储设备之间传输目标业务的目标数据流。传输命令包括目标数据流的数据长度。传输命令可以是SQE命令。传输命令包括第一字段和第二字段。
第一字段可以是SQE命令中的DTYPE字段。第一字段用于指示传输命令的类型。传输命令的类型包括读命令类型和写命令类型。
第二字段可以是SQE命令中的DSPEC字段。第二字段用于指示数据流标签。
本发明实施例中,一个目标业务可以对应多个传输命令。
示例性的,存储设备的存储控制器Controller从主机内存的SQ队列中读取目标业务对应的传输命令。
S302:检测存储设备是否开启流控单元功能。
在一些可选的实施方式中,存储控制器对第一字段和第二字段进行校验,确定第一字段和第二字段是否符合存储设备对应的存储协议;在第一字段和第二字段均符合存储协议的情况下,确定存储设备开启流控单元功能;在第一字段或第二字段不符合存储协议的情况下,确定存储设备未开启流控单元功能。
其中,存储协议可以是存储设备对应的协议,例如,存储协议为NVMe协议。
一种示例中,存储控制器读取第一字段和第二字段的值;根据NVMe协议,确定第一字段的值是否是第一字段的合法值范围内;如果是,则确定第一字段符合存储设备对应的存储协议;如果否,则确定第一字段不符合存储设备对应的存储协议。根据第一字段的值,确定第二字段的校验规则;并基于该校验规则,确定第二字段的值是否符合该校验规则;若符合,则确定第二字段符合存储设备对应的存储协议;若不符合,则确定第二字段符合存储设备对应的存储协议。
S303:在开启流控单元功能的情况下,检测传输命令是否携带有目标数据流的目标数据流标签。
在一些可选的实施方式中,存储控制器确定第二字段是否与目标数据流标签对应的字段一致;若一致,则确定传输命令携带有目标数据流标签。
可以理解的,若不一致,则存储控制器确定传输命令未携带有目标数据流标签。存储控制器会统一处理未携带有目标数据流标签的传输命令所对应的数据流,不再转发给流控单元。
S304:如果携带,则在预配置的至少一个流控单元中确定目标流控单元,并将传输命令转发至目标流控单元。
其中,目标流控单元用于在主机或存储设备中获取目标数据流,并控制目标数据流按照预设传输速率在主机与存储设备之间传输。
预设传输速率与目标业务所需的存储带宽值相匹配。预设传输速率小于等于目标业务所需的存储带宽值。
本发明实施例中,每个流控单元对应一个数据流标签。不同流控单元用于处理不同业务或不同用户的数据流。每个流控单元与每个业务一一对应。
一种示例中,如果携带,存储控制器根据目标数据流标签和预设对应关系,在预配置的至少一个流控单元中确定目标流控单元。
其中,预设对应关系为目标数据流标签和目标流控单元的对应关系。
在一些可选的实施方式中,存储控制器获取主机的内存中所有传输命令所属的至少一个业务;根据至少一个业务配置对应的至少一个流控单元和每个流控单元对应的数据流标签。
在一些可选的实施方式中,存储控制器在根据至少一个业务配置对应的至少一个流控单元之前,接收主机下发的第一指令,检测存储设备是否支持设置流控单元,并反馈第一信息到主机;接收主机下发的第二指令,检测存储设备支持设置的流控单元的类型,并反馈第二信息到主机;接收主机下发的第三指令,开启存储控制器的设置流控单元的权限,并反馈第三信息到主机;在存储设备支持设置流控单元、支持设置的流控单元的类型为允许配置类型、权限已开启的情况下,接收主机下发的第四指令。
其中,第四指令用于配置至少一个流控单元。
本发明实施例中,第一指令可以是Identify Controller指令。IdentifyController指令用于查询存储设备是否支持directive的特性,即检测存储设备是否支持设置流控单元。第一信息用于指示存储设备支持设置流控单元。例如,第一信息可以是基于identify Controller数据结构的OACS字段的bit5置1确定的,即表示支持directive特性,即表示存储设备支持设置流控单元。
本发明实施例中,第二指令可以是identify directive receive指令。identifydirective receive指令用于获取存储设备支持的directive类型,即检测存储设备支持设置的流控单元的类型。第二信息用于指示存储设备支持设置的流控单元的类型为允许配置类型。例如,第二信息可以是存储设备支持的stream类型的directive指令,即存储设备支持设置的流控单元的类型为允许配置类型。
本发明实施例中,第三指令可以是identify directive send指令。identifydirective send指令用于使能存储控制器Controller的流控功能,即开启存储控制器的设置流控单元的权限。第三信息用于指示权限已开启。
本发明实施例中,第四指令可以是stream directive send指令。streamdirective send指令使存储控制器配置一个流控单元,同时指定该流控单元的数据流标签。
在一些可选的实施方式中,目标流控单元设置有令牌桶。存储控制器获取目标业务所需的存储带宽值和存储设备的最小内存页大小;根据存储带宽值和最小内存页大小,确定令牌桶的令牌容量。
其中,令牌容量为令牌桶允许容纳的最大令牌数,最大令牌数用于控制主机与存储设备之间的目标数据流的预设传输速率。
基于上述S301至S304的方法,可以在获取主机内存的目标业务的传输命令后,在检测存储设备开启流控单元功能,且传输命令有目标数据流的目标数据流标签,可以将传输命令转发给对应的流控单元。由于该流控单元可以控制目标数据流按照预设传输速率在主机与存储设备之间传输,且预设传输速率与目标业务所需的存储带宽值相匹配,即可以将数据流标签对应的数据流,分发给目标业务对应的目标流控单元进行数据传输,即可以基于目标业务给存储设备的目标流控单元分配合理存储带宽值,控制目标流控单元传输数据的吞吐量保持在合理范围,降低存储设备功耗,避免存储设备异常过热,甚至损坏存储设备的问题,降低运营成本,满足不同用户或业务的需求。
在本实施例中提供了一种数据传输方法,可用于上述的流控单元,图4是根据本发明实施例的又一数据传输方法的流程图,如图4所示,该流程包括如下步骤:
S401:接收来自存储控制器转发的传输命令。
一种示例中,当传输命令为写命令时,传输命令还包括目标数据流在主机的内存的原地址以及在存储设备的闪存的目标地址,传输命令用于请求将主机的内存中存储的目标数据流写入闪存。
一种示例中,当传输命令为读命令时,传输命令还包括目标数据流在存储设备的闪存的原地址以及在主机的内存的目标地址,传输命令用于请求将存储设备的闪存中存储的目标数据流写入主机的内存。
S402:获取目标数据流。
S403:基于数据长度,按照预设传输速率控制目标数据流在主机和存储设备之间传输。
其中,预设传输速率与目标业务所需的存储带宽值相匹配。
在一些可选的实施方式中,目标流控单元获取当前时刻令牌桶内的令牌数, 根据数据长度和存储设备对应的最小内存页大小,确定存储目标数据流的数据块的数量;在数据块的数量小于等于令牌数的情况下,按照预设传输速率控制目标数据流在主机和存储设备之间传输;或者,在数据块的数量大于令牌数情况下,等待预设时长,按照预设传输速率控制目标数据流在主机和存储设备之间传输。
其中,预设时长为令牌数累加到数据块的数量时所用的时长。
本发明实施例中,令牌数小于等于令牌桶的令牌容量。
本发明实施例中,最小内存页可以是存储设备的最小单位,例如,最小内存页为4k。
本发明实施例中,以存储带宽值为1M,最小内存页为4k为例,令牌桶的令牌容量为256(1M/4k)。
在一些可选的实施方式中,目标流控单元在数据块的数量大于令牌数情况下,确定数据块的数量与令牌数的差值;计算差值与累加每块令牌所需的时长的乘积,确定预设时长,累加每块令牌所需的时长为1与令牌容量之比。
在一些可选的实施方式中,当传输命令为写命令时,目标流控单元基于主机的内存的原地址,从主机的内存中获取目标数据流;基于数据长度,按照预设传输速率将目标数据流从主机的内存的原地址写入存储设备的闪存的目标地址。
在一些可选的实施方式中,当传输命令为读命令时,目标流控单元基于存储设备的闪存的原地址,从存储设备的闪存中获取目标数据流;基于数据长度,按照预设传输速率将目标数据流从存储设备的闪存的原地址写入主机的内存的目标地址。
基于上述S401至S403,目标流控单元可以在接收到存储控制器转发的传输命令后,可以基于传输命令包括的目标数据流的数据长度,按照预设传输速率控制目标数据流在主机和存储设备之间传输,由于该流控单元可以控制目标数据流按照预设传输速率在主机与存储设备之间传输,且预设传输速率与目标业务所需的存储带宽值相匹配,即可以将数据流标签对应的数据流,分发给目标业务对应的目标流控单元进行数据传输,即可以基于目标业务给存储设备的目标流控单元分配合理存储带宽值,控制目标流控单元传输数据的吞吐量保持在合理范围,降低存储设备功耗,避免存储设备异常过热,甚至损坏存储设备的问题,降低运营成本,满足不同用户或业务的需求。
在本实施例中提供了一种数据传输方法,可用于上述的主机,图5是根据本发明实施例的另一数据传输方法的流程图,如图5所示,该流程包括如下步骤:
S501:发送第一指令、第二指令、第三指令和第四指令到存储设备的存储控制器。
具体包括:
S5011:发送第一指令到存储设备的存储控制器。
第一指令用于指示存储控制器检测存储设备是否支持设置流控单元。
S5012:接收存储控制器反馈的第一信息。
第一信息用于指示存储设备支持设置流控单元。
S5013:发送第二指令到存储控制器。
第二指令用于指示存储控制器检测存储设备支持设置的流控单元的类型。
S5014:接收存储控制器反馈的第二信息。
第二信息用于指示存储设备支持设置的流控单元的类型为允许配置类型。
S5015:发送第三指令到存储控制器,第三指令用于开启存储控制器的设置流控单元的权限。
S5016:接收存储控制器反馈的第三信息,第三信息用于指示存储控制器的设置流控单元的权限开启。
S5017:在存储设备支持设置流控单元、支持设置的流控单元的类型为允许配置类型、权限已开启的情况下,发送第四指令到存储控制器。
S502:发送目标业务对应的传输命令到存储控制器。
基于上述S501至S502,主机对存储设备的进行检测和配置,可以提高配置至少一个流控单元时存储设备的可靠性和安全性,便于对流控单元进行精细化管理。由于该流控单元可以控制目标数据流按照预设传输速率在主机与存储设备之间传输,且预设传输速率与目标业务所需的存储带宽值相匹配,即可以将数据流标签对应的数据流,分发给目标业务对应的目标流控单元进行数据传输,即可以基于目标业务给存储设备的目标流控单元分配合理存储带宽值,控制目标流控单元传输数据的吞吐量保持在合理范围,降低存储设备功耗,避免存储设备异常过热,甚至损坏存储设备的问题,降低运营成本,满足不同用户或业务的需求。
在本实施例中还提供了一种数据传输系统,数据传输系统包括主机和存储设备,存储设备包括存储控制器、目标流控单元。
主机用于发送第一指令、第二指令、第三指令和第四指令到存储设备的存储控制器,并发送目标业务对应的传输命令到存储控制器。
存储控制器用于接收主机的内存中目标业务对应的传输命令,并检测存储设备是否开启流控单元功能;在开启流控单元功能的情况下,检测传输命令是否携带有目标数据流的目标数据流标签;如果携带,则在预配置的至少一个流控单元中确定目标流控单元,并将传输命令转发至目标流控单元。
目标流控单元用于接收来自存储控制器转发的传输命令,并获取目标数据流;基于数据长度,按照预设传输速率控制目标数据流在主机和存储设备之间传输,预设传输速率与目标业务所需的存储带宽值相匹配。
上述具体实现过程可参照上述S301至S304,以及S401至S403,S501至S502,不予赘述。
在本实施例中还提供了一种数据传输装置,该数据传输装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种数据传输装置,如图6所示,图6是根据本发明实施例的数据传输装置的结构框图;应用于存储控制器,存储控制器与至少一个流控单元相连接,每个流控单元对应一个数据流标签;存储控制器、至少一个流控单元集成在存储设备中;该装置包括:
第一收发模块601,用于接收主机的内存中目标业务对应的传输命令,传输命令用于请求在主机和存储设备之间传输目标业务的目标数据流;
第一处理模块602,用于检测存储设备是否开启流控单元功能;
第一处理模块602,还用于在开启流控单元功能的情况下,检测传输命令是否携带有目标数据流的目标数据流标签;
第一处理模块602,还用于如果携带,则在预配置的至少一个流控单元中确定目标流控单元,并将传输命令转发至目标流控单元,目标流控单元用于在主机或存储设备中获取目标数据流,并控制目标数据流按照预设传输速率在主机与存储设备之间传输,预设传输速率与目标业务所需的存储带宽值相匹配。
在一些可选的实施方式中,第一收发模块601,还用于获取主机的内存中所有传输命令所属的至少一个业务;第一处理模块602,还用于根据至少一个业务配置对应的至少一个流控单元和每个流控单元对应的数据流标签,每个流控单元与每个业务一一对应。
在一些可选的实施方式中,第一处理模块602,具体用于接收主机下发的第一指令,检测存储设备是否支持设置流控单元,并反馈第一信息到主机,第一信息用于指示存储设备支持设置流控单元。
第一处理模块602,还具体用于接收主机下发的第二指令,检测存储设备支持设置的流控单元的类型,并反馈第二信息到主机,第二信息用于指示存储设备支持设置的流控单元的类型为允许配置类型。
第一处理模块602,还具体用于接收主机下发的第三指令,开启存储控制器的设置流控单元的权限,并反馈第三信息到主机,第三信息用于指示权限已开启。
第一处理模块602,还具体用于在存储设备支持设置流控单元、支持设置的流控单元的类型为允许配置类型、权限已开启的情况下,接收主机下发的第四指令,第四指令用于配置至少一个流控单元。
在一些可选的实施方式中,传输命令包括第一字段和第二字段,第一字段用于指示传输命令的类型;第二字段用于指示数据流标签;第一处理模块602,还具体用于对第一字段和第二字段进行校验,确定第一字段和第二字段是否符合存储设备对应的存储协议;第一处理模块602,还具体用于在第一字段和第二字段均符合存储协议的情况下,确定存储设备开启流控单元功能;第一处理模块602,还具体用于在第一字段或第二字段不符合存储协议的情况下,确定存储设备未开启流控单元功能。
在一些可选的实施方式中,第一处理模块602,还具体用于确定第二字段是否与目标数据流标签对应的字段一致;第一处理模块602,还具体用于若一致,则确定传输命令携带有目标数据流标签。
在一些可选的实施方式中,第一处理模块602,还具体用于如果携带,根据目标数据流标签和预设对应关系,在预配置的至少一个流控单元中确定目标流控单元,预设对应关系为目标数据流标签和目标流控单元的对应关系。
在一些可选的实施方式中,目标流控单元设置有令牌桶;第一收发模块601,还用于获取目标业务所需的存储带宽值和存储设备的最小内存页大小;第一处理模块602,还具体用于根据存储带宽值和最小内存页大小,确定令牌桶的令牌容量,令牌容量为令牌桶允许容纳的最大令牌数,最大令牌数用于控制主机与存储设备之间的目标数据流的预设传输速率。
本实施例提供一种数据传输装置,如图7所示,图7是根据本发明实施例的又一数据传输装置的结构框图;应用于目标流控单元,目标流控单元配置在存储设备中,存储设备还包括存储控制器;该装置包括:
第二收发模块701,用于接收来自存储控制器转发的传输命令,传输命令用于请求在主机和存储设备之间传输目标业务的目标数据流,传输命令包括目标数据流的数据长度;
第二收发模块701,用于获取目标数据流;
第二处理模块702,用于基于数据长度,按照预设传输速率控制目标数据流在主机和存储设备之间传输,预设传输速率与目标业务所需的存储带宽值相匹配。
在一些可选的实施方式中,目标流控单元设置有令牌桶;第二处理模块702,具体用于获取当前时刻令牌桶内的令牌数,令牌数小于等于令牌桶的令牌容量,令牌容量是基于目标业务所需的存储带宽值确定的令牌桶中的最大令牌数;
第二处理模块702,还具体用于根据数据长度和存储设备对应的最小内存页大小,确定存储目标数据流的数据块的数量;
第二处理模块702,还具体用于在数据块的数量小于等于令牌数的情况下,按照预设传输速率控制目标数据流在主机和存储设备之间传输;
或者,第二处理模块702,还具体用于在数据块的数量大于令牌数情况下,等待预设时长,按照预设传输速率控制目标数据流在主机和存储设备之间传输,预设时长为令牌数累加到数据块的数量时所用的时长。
在一些可选的实施方式中,第二处理模块702,还用于在数据块的数量大于令牌数情况下,确定数据块的数量与令牌数的差值;第二处理模块702,还用于计算差值与累加每块令牌所需的时长的乘积,确定预设时长,累加每块令牌所需的时长为1与令牌容量之比。
在一些可选的实施方式中,存储设备还包括闪存;当传输命令为写命令时,传输命令还包括目标数据流在主机的内存的原地址以及在存储设备的闪存的目标地址;传输命令用于请求将主机的内存中存储的目标数据流写入闪存。第二收发模块701,还具体用于基于主机的内存的原地址,从主机的内存中获取目标数据流;第二处理模块702,还具体用于基于数据长度,按照预设传输速率将目标数据流从主机的内存的原地址写入存储设备的闪存的目标地址。
在一些可选的实施方式中,当传输命令为读命令时,传输命令还包括目标数据流在存储设备的闪存的原地址以及在主机的内存的目标地址,传输命令用于请求将存储设备的闪存中存储的目标数据流写入主机的内存;第二收发模块701,还具体用于基于存储设备的闪存的原地址,从存储设备的闪存中获取目标数据流;处理模块702,还具体用于基于数据长度,按照预设传输速率将目标数据流从存储设备的闪存的原地址写入主机的内存的目标地址。
本实施例提供一种数据传输装置,如图8所示,图8是根据本发明实施例的另一数据传输装置的结构框图;应用于主机,该装置包括:第三收发模块801,用于发送第一指令、第二指令、第三指令和第四指令到存储设备的存储控制器,第一指令用于指示存储控制器检测存储设备是否支持设置流控单元;第二指令用于指示存储控制器检测存储设备支持设置的流控单元的类型;第三指令用于开启存储控制器的设置流控单元的权限;第四指令用于指示存储控制器设置至少一个流控单元。
第三收发模块801,还用于发送目标业务对应的传输命令到存储控制器,存储控制器用于接收传输命令,并将传输命令转发至至少一个流控单元中确定的目标流控单元,目标流控单元用于在主机或存储设备中获取目标数据流,并控制目标数据流按照预设传输速率在主机与存储设备之间传输,预设传输速率与目标业务所需的存储带宽值相匹配。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的数据传输装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图6、图7或图8所示的数据传输装置。
请参阅图9,图9是本发明可选实施例提供的计算机设备的结构示意图,如图9所示,该计算机设备包括:一个或多个处理器10、存储器40,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器40存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器40可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器40可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器40可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器40可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器40还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种数据传输方法,其特征在于,应用于存储控制器,所述存储控制器与至少一个流控单元相连接,每个所述流控单元对应一个数据流标签;所述存储控制器、所述至少一个流控单元集成在存储设备中;所述方法包括:
获取主机的内存中所有传输命令所属的至少一个业务;
根据所述至少一个业务配置对应的所述至少一个流控单元和每个所述流控单元对应的所述数据流标签,每个所述流控单元与每个所述业务一一对应;
接收主机的内存中目标业务对应的传输命令,所述传输命令用于请求在所述主机和所述存储设备之间传输所述目标业务的目标数据流;
检测所述存储设备是否开启流控单元功能;
在开启所述流控单元功能的情况下,检测所述传输命令是否携带有所述目标数据流的目标数据流标签;
如果携带,则在预配置的所述至少一个流控单元中确定目标流控单元,并将所述传输命令转发至所述目标流控单元,所述目标流控单元用于在所述主机或所述存储设备中获取所述目标数据流,并控制所述目标数据流按照预设传输速率在所述主机与所述存储设备之间传输,所述预设传输速率与所述目标业务所需的存储带宽值相匹配;
其中,在根据所述至少一个业务配置对应的所述至少一个流控单元之前,还包括:
接收所述主机下发的第一指令,检测所述存储设备是否支持设置流控单元,并反馈第一信息到所述主机,所述第一信息用于指示所述存储设备支持设置流控单元;
接收所述主机下发的第二指令,检测所述存储设备支持设置的所述流控单元的类型,并反馈第二信息到所述主机,所述第二信息用于指示所述存储设备支持设置的所述流控单元的类型为允许配置类型;
接收所述主机下发的第三指令,开启所述存储控制器的设置所述流控单元的权限,并反馈第三信息到所述主机,所述第三信息用于指示所述权限已开启;
在所述存储设备支持设置流控单元、支持设置的所述流控单元的类型为所述允许配置类型、所述权限已开启的情况下,接收所述主机下发的第四指令,所述第四指令用于配置所述至少一个流控单元。
2.根据权利要求1所述的方法,其特征在于,所述传输命令包括第一字段和第二字段,所述第一字段用于指示所述传输命令的类型;所述第二字段用于指示所述数据流标签;所述检测所述存储设备是否开启流控单元功能,包括:
对所述第一字段和所述第二字段进行校验,确定所述第一字段和所述第二字段是否符合所述存储设备对应的存储协议;
在所述第一字段和所述第二字段均符合所述存储协议的情况下,确定所述存储设备开启所述流控单元功能;
在所述第一字段或所述第二字段不符合所述存储协议的情况下,确定所述存储设备未开启所述流控单元功能。
3.根据权利要求2所述的方法,其特征在于,所述在开启所述流控单元功能的情况下,检测所述传输命令是否携带有所述目标数据流的目标数据流标签;包括:
确定所述第二字段是否与所述目标数据流标签对应的字段一致;
若一致,则确定所述传输命令携带有所述目标数据流标签。
4.根据权利要求3所述的方法,其特征在于,所述如果携带,则在预配置的所述至少一个流控单元中确定目标流控单元,包括:
如果携带,根据所述目标数据流标签和预设对应关系,在预配置的所述至少一个流控单元中确定所述目标流控单元,所述预设对应关系为所述目标数据流标签和所述目标流控单元的对应关系。
5.根据权利要求4所述的方法,其特征在于,所述目标流控单元设置有令牌桶;所述方法还包括:
获取所述目标业务所需的所述存储带宽值和所述存储设备的最小内存页大小;
根据所述存储带宽值和所述最小内存页大小,确定所述令牌桶的令牌容量,所述令牌容量为所述令牌桶允许容纳的最大令牌数,所述最大令牌数用于控制所述主机与所述存储设备之间的所述目标数据流的所述预设传输速率。
6.一种数据传输系统,其特征在于,所述数据传输系统包括主机和存储设备,所述存储设备包括存储控制器、目标流控单元;
所述主机用于存储多个传输命令,并发送第一指令、第二指令、第三指令和第四指令到存储设备的存储控制器,所述第一指令用于指示所述存储控制器检测所述存储设备是否支持设置流控单元;所述第二指令用于指示所述存储控制器检测所述存储设备支持设置的所述流控单元的类型;所述第三指令用于开启所述存储控制器的设置所述流控单元的权限;所述第四指令用于指示所述存储控制器设置至少一个流控单元;
所述主机还用于发送目标业务对应的传输命令到存储控制器,所述存储控制器用于接收所述传输命令,并将所述传输命令转发至所述至少一个流控单元中确定的目标流控单元,所述目标流控单元用于在所述主机或所述存储设备中获取目标数据流,并控制所述目标数据流按照预设传输速率在所述主机与所述存储设备之间传输,所述预设传输速率与所述目标业务所需的存储带宽值相匹配;
所述存储控制器用于获取所述主机的内存中目标业务对应的传输命令,并执行权利要求1-5中任一项所述的数据传输方法;
所述目标流控单元用于接收来自所述存储控制器转发的传输命令,所述传输命令用于请求在主机和所述存储设备之间传输目标业务的目标数据流,所述传输命令包括所述目标数据流的数据长度;获取所述目标数据流;基于所述数据长度,按照预设传输速率控制所述目标数据流在所述主机和所述存储设备之间传输,所述预设传输速率与所述目标业务所需的存储带宽值相匹配。
7.一种数据传输装置,其特征在于,应用于存储控制器,所述存储控制器与至少一个流控单元相连接,每个所述流控单元对应一个数据流标签;所述存储控制器、所述至少一个流控单元集成在存储设备中;所述装置包括:
第一收发模块,还用于获取主机的内存中所有传输命令所属的至少一个业务;
第一处理模块,用于根据所述至少一个业务配置对应的所述至少一个流控单元和每个所述流控单元对应的所述数据流标签,每个所述流控单元与每个所述业务一一对应;
所述第一收发模块,用于接收主机的内存中目标业务对应的传输命令,所述传输命令用于请求在所述主机和所述存储设备之间传输所述目标业务的目标数据流;
所述第一处理模块,用于检测所述存储设备是否开启流控单元功能;
所述第一处理模块,还用于在开启所述流控单元功能的情况下,检测所述传输命令是否携带有所述目标数据流的目标数据流标签;
所述第一处理模块,还用于如果携带,则在预配置的所述至少一个流控单元中确定目标流控单元,并将所述传输命令转发至所述目标流控单元,所述目标流控单元用于在所述主机或所述存储设备中获取所述目标数据流,并控制所述目标数据流按照预设传输速率在所述主机与所述存储设备之间传输,所述预设传输速率与所述目标业务所需的存储带宽值相匹配;
所述第一收发模块,还用于在根据所述至少一个业务配置对应的所述至少一个流控单元之前,获取所述主机的内存中所有传输命令所属的至少一个业务;
所述第一处理模块,还用于根据所述至少一个业务配置对应的所述至少一个流控单元和每个所述流控单元对应的所述数据流标签,每个所述流控单元与每个所述业务一一对应;
所述第一收发模块,还用于接收所述主机下发的第一指令,检测所述存储设备是否支持设置流控单元,并反馈第一信息到所述主机,所述第一信息用于指示所述存储设备支持设置流控单元;
所述第一收发模块,还用于接收所述主机下发的第二指令,检测所述存储设备支持设置的所述流控单元的类型,并反馈第二信息到所述主机,所述第二信息用于指示所述存储设备支持设置的所述流控单元的类型为允许配置类型;
所述第一收发模块,还用于接收所述主机下发的第三指令,开启所述存储控制器的设置所述流控单元的权限,并反馈第三信息到所述主机,所述第三信息用于指示所述权限已开启;
所述第一收发模块,还用于在所述存储设备支持设置流控单元、支持设置的所述流控单元的类型为所述允许配置类型、所述权限已开启的情况下,接收所述主机下发的第四指令,所述第四指令用于配置所述至少一个流控单元。
8.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至5中任一项所述的数据传输方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至5中任一项所述的数据传输方法。
10.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令用于使计算机执行权利要求1至5中任一项所述的数据传输方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411406511.3A CN118916312B (zh) | 2024-10-10 | 2024-10-10 | 一种数据传输方法、装置、系统、计算机设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411406511.3A CN118916312B (zh) | 2024-10-10 | 2024-10-10 | 一种数据传输方法、装置、系统、计算机设备及存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN118916312A CN118916312A (zh) | 2024-11-08 |
| CN118916312B true CN118916312B (zh) | 2025-01-24 |
Family
ID=93299802
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202411406511.3A Active CN118916312B (zh) | 2024-10-10 | 2024-10-10 | 一种数据传输方法、装置、系统、计算机设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN118916312B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120561046A (zh) * | 2025-07-30 | 2025-08-29 | 苏州元脑智能科技有限公司 | 多控制器存储系统的数据传输方法和存储介质、程序产品 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116915412A (zh) * | 2023-07-24 | 2023-10-20 | 山东云海国创云计算装备产业创新中心有限公司 | 读写限流方法、系统、装置、计算机设备及存储介质 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0764960A (ja) * | 1993-08-30 | 1995-03-10 | Sanyo Electric Co Ltd | データフロープロセサ |
| US20070097864A1 (en) * | 2005-11-01 | 2007-05-03 | Cisco Technology, Inc. | Data communication flow control |
| US8199648B2 (en) * | 2007-07-03 | 2012-06-12 | Cisco Technology, Inc. | Flow control in a variable latency system |
| US20120179883A1 (en) * | 2011-01-12 | 2012-07-12 | Broadcom Corpotation | System and method for dynamically adjusting memory performance |
| CN116636183A (zh) * | 2021-05-31 | 2023-08-22 | 华为技术有限公司 | 计算机系统及总线流量控制方法 |
-
2024
- 2024-10-10 CN CN202411406511.3A patent/CN118916312B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116915412A (zh) * | 2023-07-24 | 2023-10-20 | 山东云海国创云计算装备产业创新中心有限公司 | 读写限流方法、系统、装置、计算机设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118916312A (zh) | 2024-11-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112513813B (zh) | 在按需网络代码执行系统中执行辅助功能 | |
| CN109391694B (zh) | 基于sftp的文件传输方法及相关设备 | |
| WO2023116438A1 (zh) | 一种数据访问方法、装置以及设备 | |
| US12452331B1 (en) | File-sharing method, apparatus and system, electronic device, and storage medium | |
| CN118860507B (zh) | 业务交互系统、方法、存储介质、电子设备 | |
| CN118916312B (zh) | 一种数据传输方法、装置、系统、计算机设备及存储介质 | |
| CN111699479A (zh) | 日志处理方法、设备及计算机可读存储介质 | |
| CN117370046A (zh) | 进程间通信方法、系统、设备和存储介质 | |
| CN118827745A (zh) | 请求管理方法、装置、计算机设备以及存储介质 | |
| CN118605964A (zh) | 一种智能网卡的资源配置方法、计算机设备及介质 | |
| CN118550879A (zh) | 文件存储方法、装置、计算机设备及存储介质 | |
| CN115080479B (zh) | 传输方法、服务器、设备、裸金属实例及基板管理控制器 | |
| CN109818977B (zh) | 一种接入服务器通信优化方法、接入服务器以及通信系统 | |
| US20220263869A1 (en) | Data validation for zero copy protocols | |
| US9552324B2 (en) | Dynamic data collection communication between adapter functions | |
| CN116527440A (zh) | 数据传输方法、设备及存储介质 | |
| CN119363292B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
| CN119814770B (zh) | 一种数据传输方法、云平台、计算机设备及存储介质 | |
| CN118838808B (zh) | 测试用例的调度方法及电子设备 | |
| CN119440803B (zh) | 一种控制权限的获取方法、装置、计算机设备及存储介质 | |
| CN114301875B (zh) | 一种dhcp代理端的管控方法、装置及电子设备 | |
| CN106445650B (zh) | 一种中断处理方法、ioapic及计算机系统 | |
| CN109901935B (zh) | 一种与USB Key进行通信的方法及设备 | |
| CN119814770A (zh) | 一种数据传输方法、云平台、计算机设备及存储介质 | |
| CN112445628B (zh) | 进程间资源共享方法、装置与电子设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |