CN112073325A - 数据拥塞控制及带宽预估方法 - Google Patents
数据拥塞控制及带宽预估方法 Download PDFInfo
- Publication number
- CN112073325A CN112073325A CN201910498498.1A CN201910498498A CN112073325A CN 112073325 A CN112073325 A CN 112073325A CN 201910498498 A CN201910498498 A CN 201910498498A CN 112073325 A CN112073325 A CN 112073325A
- Authority
- CN
- China
- Prior art keywords
- message
- post
- bandwidth
- information
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000012790 confirmation Methods 0.000 claims abstract description 150
- 238000004891 communication Methods 0.000 claims abstract description 64
- 230000004044 response Effects 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims description 26
- 238000009825 accumulation Methods 0.000 claims description 23
- 238000011217 control strategy Methods 0.000 claims description 11
- 230000003993 interaction Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 108010001267 Protein Subunits Proteins 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/127—Avoiding congestion; Recovering from congestion by using congestion prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种数据拥塞控制方法,包括:获得用于表示Post消息占用通信带宽的第一数据,其中,所述Post消息为源端设备通过系统总线发送给目的端设备且不需要目的端设备返回确认消息的请求消息;获得用于表示确认消息占用通信带宽的第二数据,其中,所述确认消息为目的端设备针对源端设备通过系统总线发送的Non‑post消息返回的确认响应消息;所述Non‑post消息为源端设备通过系统总线发送给目的端设备的需要目的端设备返回确认消息的请求消息;根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制。采用上述方法,能对系统总线互连网络的数据传输进行有效的拥塞控制,提高系统应用的执行性能。
Description
技术领域
本申请涉及系统总线互连领域,具体涉及一种数据拥塞控制方法、装置及电子设备。本申请同时涉及一种带宽预估方法。本申请还涉及另一种带宽预估方法。本申请还涉及一种总线交换系统。
背景技术
随着各种高速IO设备(Input/Output,输入/输出设备)不断出现,服务器内IO设备对系统总线(即IO总线)的争用问题越发凸显,甚至使服务器中的系统总线互连网络形成数据拥塞,严重影响系统应用的执行性能。
当前系统总线缺乏有效的拥塞控制机制,例如PCIE总线,依靠点对点Credit(信用)流控的反压机制进行流量控制,所谓点对点Credit流控是指针对一条链路上的数据传输将接收方的缓冲区空余空间反向通知发送方进行流量控制。缺乏有效的拥塞控制机制,使得系统总线互连网络的数据传输无法通过降低源端流量以进行有效的拥塞控制,从而影响系统应用的执行性能。
因此,如何对系统总线互连网络的数据传输进行拥塞控制,是需要解决的问题。
发明内容
本申请提供一种数据拥塞控制方法,能对系统总线互连网络的数据传输进行有效的拥塞控制,提高系统应用的执行性能。
本申请提供一种数据拥塞控制方法,包括:
获得用于表示Post消息占用通信带宽的第一数据,其中,所述Post消息为源端设备通过系统总线发送给目的端设备且不需要目的端设备返回确认消息的请求消息;
获得用于表示确认消息占用通信带宽的第二数据,其中,所述确认消息为目的端设备针对源端设备通过系统总线发送的Non-post消息返回的确认响应消息;所述Non-post消息为源端设备通过系统总线发送给目的端设备的需要目的端设备返回确认消息的请求消息;
根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制。
可选的,所述根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制,包括:
根据所述第一数据,获得第一带宽需求值和第一带宽预测状态信息;
根据所述第二数据,获得第二带宽需求值和第二带宽预测状态信息;
根据所述第一带宽需求值、第一带宽预测状态信息、第二带宽需求值和第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制。
可选的,所述根据所述第一带宽需求值、第一带宽预测状态信息、第二带宽需求值和第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制,包括:
如果第一带宽需求值与第二带宽需求值之和满足预设拥塞控制条件,则根据第一带宽预测状态信息以及第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制。
可选的,所述根据第一带宽预测状态信息以及第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制,包括:
如果第二带宽预测状态信息不为确认消息排空状态,则控制Non-post消息的处理速度。
可选的,所述根据第一带宽预测状态信息以及第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制,包括:
如果第二带宽预测状态信息指示的第二带宽预测状态不为响应消息排空状态,并且第一带宽预测状态信息指示的第一带宽预测状态不为Post消息排空状态,或者,如果第二带宽预测状态信息为确认消息排空状态,则按照预设Post消息拥塞控制策略对Post消息进行拥塞控制。
可选的,所述按照预设Post消息拥塞控制策略对Post消息进行拥塞控制,包括:
获得满足所述预设Post消息拥塞控制策略的目标源端设备的标识信息,以及所述目标源端设备的Post消息带宽需求值;
根据所述目标源端设备的标识信息以及Post消息带宽需求值,针对所述目标源端设备生成带宽控制类型为控制Post消息的拥塞控制信息;
根据所述拥塞控制信息对Post消息进行拥塞控制。
可选的,所述目标源端设备为任一发送Post消息的源端设备,或,带宽需求值满足Post消息带宽阈值条件的源端设备,或,带宽预测状态信息指示为Post消息积压状态的源端设备。
可选的,所述如果第二带宽预测状态信息不为确认消息排空状态,则控制Non-post消息的处理速度,包括:
根据第一带宽需求值,生成带宽控制类型为控制Non-post消息的拥塞控制信息;
根据所述拥塞控制信息对Non-post消息进行拥塞控制。
可选的,所述根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制,包括:
统计每个时段的Post消息带宽实际值和确认消息带宽实际值;
根据当前时段和前一个相邻时段的Post消息带宽实际值,获得Post消息带宽预测状态信息,根据当前时段和前一个相邻时段的确认消息带宽实际值,获得确认消息带宽预测状态信息;
根据所述Post消息带宽预测状态信息和所述确认消息带宽预测状态信息,对所述数据进行拥塞控制。
可选的,所述确认消息至少包括下述一种消息:
针对Non-post读操作请求返回的确认消息;
针对Non-post写操作请求返回的确认消息。
可选的,所述获得用于表示Post消息占用通信带宽的第一数据,包括:
获得入发送缓冲区的Post消息的第一Post控制信息;
获得出发送缓冲区的Post消息的第二Post控制信息;
根据所述第一Post控制信息和第二Post控制信息,得到第一数据。
可选的,还包括:
获得当前时段发送缓冲区中的Post消息的第一长度信息;
获得与当前时段相邻的前一个相邻时段发送缓冲区中的Post消息的第二长度信息;
根据第一长度信息和第二长度信息,确定至少一个源端设备发出的Post消息的Post消息带宽预估数据。
可选的,所述获得用于表示确认消息占用通信带宽的第二数据,包括:根据入接收缓冲区的Non-post消息的控制信息,生成所述第二数据。
可选的,所述获得用于表示确认消息占用通信带宽的第二数据,包括:
获得出接收缓冲区且未收到确认消息的未确认Non-post消息的信息;
根据所述未确认Non-post消息的信息,生成所述第二数据。
可选的,所述根据所述未确认Non-post消息的信息,生成所述第二数据,包括:
根据所述未确认Non-post消息的信息,获得待接收的确认消息的总包长度信息;其中,所述待接收的确认消息为所述未确认Non-post消息对应的确认消息;
根据所述待接收的确认消息的总包长度信息,生成所述第二数据。
可选的,还包括:根据收到的确认消息的包长度信息,更新所述待接收的确认消息的总包长度信息。
可选的,所述根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制,包括:
根据所述第一数据和所述第二数据,生成拥塞控制消息;
根据所述拥塞控制消息,对所述数据进行拥塞控制;
其中,所述数据包括Post消息、Non-post消息以及确认消息中的至少一种消息。
可选的,所述根据所述拥塞控制消息,对所述数据进行拥塞控制,包括:
如果判断所述拥塞控制消息的拥塞控制类型为控制Non-post请求速率类型,则根据所述控制消息中的控制数据,降低对Non-post消息的仲裁速率;
如果判断所述拥塞控制消息的拥塞控制类型为控制Post请求速率类型,则将所述拥塞控制消息发送给对应的系统总线设备。
本申请还提供一种带宽预估方法,包括:
获得当前时段发送消息存储区域中Post消息的信息;
根据所述当前时段发送消息存储区域中Post消息的信息,确定Post消息的带宽预测状态和Post消息的带宽需求值;
根据所述带宽预测状态和所述带宽需求值,确定所述Post消息的带宽预估数据。
可选的,所述根据所述当前时段发送消息存储区域中Post消息的信息,确定Post消息的带宽预测状态和Post消息的带宽需求值,包括:
根据所述当前时段发送消息存储区域中Post消息的信息,获得当前时段中Post消息的包长度累加值,作为第一总长度值;
如果所述第一总长度值满足第一阈值条件,则将Post消息的带宽预测状态确定为Post消息积压状态;否则,获得与当前时段相邻的前一个相邻时段的Post消息的信息,根据所述第一总长度值和所述前一个相邻时段的Post消息的信息,获得所述Post消息的带宽预估数据。
可选的,所述根据所述第一总长度值和所述前一个相邻时段的Post消息的信息,获得所述Post消息的带宽预估数据,包括:
根据所述前一个相邻时段的Post消息的信息,获得前一个相邻时段的Post消息的包长度累加值,作为第二总长度值;
如果第一总长度值不大于第二总长度值,则将Post消息的带宽预测状态确定为Post消息排空状态,将Post息的带宽需求值确定为预定值;
如果第一总长度值与第二总长度值的差值满足第二阈值条件,则将Post消息的带宽预测状态确定为Post消息累积状态,并且根据第一总长度值与第二总长度值确定Post消息的带宽需求值。
可选的,还包括:
获得当前时段发送消息存储区域中目标源端设备的Post消息的包长度累加值,作为第一源端设备Post消息总长度值;
根据所述第一源端设备Post消息总长度值,确定所述目标源端设备的Post消息的带宽预测状态以及带宽需求值;
将所述目标源端设备的Post消息的带宽预测状态以及带宽需求值,作为所述目标源端设备的Post消息的带宽预估数据。
可选的,还包括:
如果所述第一源端设备Post消息总长度值满足第三阈值条件,则将所述目标源端设备的Post消息的带宽预测状态确定为Post消息积压状态;否则,获得与当前时段相邻的前一个相邻时段目标源端设备的Post消息的信息,根据所述第一源端设备Post消息总长度值和所述前一个相邻时段目标源端设备的Post消息的信息,获得所述目标源端设备的Post消息的带宽预估数据。
本申请还提供一种带宽预估方法,包括:
获得当前时段待接收的确认消息的信息;
获得连接总线设备的端口的物理峰值带宽数据;
根据所述待接收的确认消息的信息以及所述物理峰值带宽数据,获得确认消息的带宽预估数据。
可选的,所述待接收的确认消息为出接收消息存储区域且未收到确认消息的未确认Non-post消息对应的确认消息;
所述获得当前时段待接收的确认消息的信息,包括:
获得所述未确认Non-post消息的控制信息;
根据所述未确认Non-post消息的控制信息,获得所述待接收的确认消息的包长度累加信息;
获得当前时段收到的确认消息的包长度信息,根据当前时段收到的确认消息的包长度信息以及所述包长度累加信息,得到当前时段待接收的确认消息的包长度信息,作为所述当前时段待接收的确认消息的信息。
可选的,所述根据所述待接收的确认消息的信息以及所述物理峰值带宽数据,获得确认消息的带宽预估数据,包括:
根据所述当前时段待接收的确认消息的包长度信息,以及所述物理峰值带宽数据,获得当前时段带宽需求值;
如果所述当前时段带宽需求值不满足第一确认消息带宽阈值条件,则将所述确认消息带宽预测状态确定为确认消息排空状态;如果所述当前时段带宽需求值满足第一确认消息带宽阈值条件,但不满足第二确认消息带宽阈值条件,则将所述确认消息带宽预测状态确定为确认消息累积状态;如果所述当前时段带宽需求值满足第一确认消息带宽阈值条件,并且满足第二确认消息带宽阈值条件,则将所述确认消息带宽预测状态确定为确认消息积压状态;
将所述当前时段带宽需求值和所述确认消息带宽预测状态信息,作为所述确认消息的带宽预估数据。
本申请还提供一种总线交换系统,应用于系统总线互连网络,包括:内部交换模块、至少一个端口模块;
所述内部交换模块,用于处理所述至少一个端口模块中的各端口模块之间的数据交换;
所述至少一个端口模块,用于与接入所述系统总线互连网络的总线设备或者第一总线交换系统进行数据交互,根据接收的Non-post消息的信息获得确认消息带宽预估数据;根据待发送的Post消息的信息获得Post消息带宽预估数据;根据Post消息带宽预估数据以及确认消息带宽预估数据,对系统总线互连网络的数据交互进行拥塞控制。
可选的,所述至少一个端口模块,包括:发送模块和接收模块;
所述接收模块,用于接收总线设备的消息,将接收的消息转发至所述内部交换模块;将接收的Non-post消息的信息输出给所述至少一个端口模块的发送模块;
所述发送模块,用于接收来自所述内部交换模块的消息,并将所述消息发送至总线设备,根据当前时段以及前一个相邻时段发送缓冲区中Post消息的信息获得Post消息带宽预估数据,根据所述至少一个端口模块的接收模块的Non-post消息的信息获得确认消息带宽预估数据,根据Post消息带宽预估数据以及确认消息带宽预估数据,得到后一个时段的拥塞信息,生成对应的拥塞控制信息,输出所述拥塞控制信息。
可选的,所述接收模块,包括:接收缓冲区及控制模块、Non-post消息统计模块以及仲裁模块;其中,
所述接收缓冲区及控制模块,用于缓存来自总线设备的消息,并根据所述仲裁模块的仲裁通知,将缓存的来自总线设备的消息发送给所述仲裁模块;将Non-post消息输出给所述内部交换模块,将所述Non-post消息的控制信息提供给Non-post消息统计模块;
所述Non-post消息统计模块,用于统计所述接收模块输出到内部交换模块且未收到确认响应消息的Non-post消息数目,以及所述未收到确认消息的Non-post消息包长度信息,并作为Non-post消息的信息发送给发送模块;根据发送模块返回的确认消息的信息,更新所述Non-post消息的信息;
所述仲裁模块,用于接收拥塞控制消息、接收来自接收缓冲区及控制模块的消息,如果收到拥塞控制类型为控制Non-post的拥塞控制消息,则根据所述拥塞控制消息的拥塞控制数值,调整对接收缓冲区及控制模块中的Non-post消息的仲裁速度;如果收到拥塞控制类型为控制Post的拥塞控制消息,则将所述拥塞控制消息转发给所述内部交换模块。
可选的,所述发送模块,包括发送缓冲区及控制模块、Post通信带宽预测模块、确认消息通信带宽预测模块、带宽分配决策模块、以及拥塞控制消息产生模块;其中,
所述发送缓冲区及控制模块,用于缓存来自内部交换模块的消息并发送至总线设备;针对入发送缓冲区的Post消息,或者出发送缓冲区的Post消息,将Post消息的控制信息提供给Post通信带宽预测模块;针对入发送缓冲区的确认消息,将所述确认消息的控制信息提供给接收模块的Non-post消息统计模块;
所述Post通信带宽预测模块,用于预测当前时段的后一个时段总线设备发出的Post消息的带宽预估数据;
所述确认消息通信带宽预测模块,用于根据Non-post消息统计模块提供的Non-post消息的信息,预测当前时段的后一个时段确认消息的带宽预估数据;
所述带宽分配决策模块,用于根据Post消息的带宽预估数据以及确认消息的带宽预估数据,获得用于生成拥塞控制消息的信息,并发送给拥塞控制消息产生模块;
所述拥塞控制消息产生模块,用于根据接收到的用于生成拥塞控制消息的信息,生成拥塞控制消息,并发送给所述仲裁模块。
本申请还提供一种数据拥塞控制装置,包括:
第一带宽预估单元,用于获得用于表示Post消息占用通信带宽的第一数据,其中,所述Post消息为源端设备通过系统总线发送给目的端设备且不需要目的端设备返回确认消息的请求消息;
第二带宽预估单元,用于获得用于表示确认消息占用通信带宽的第二数据,其中,所述确认消息为目的端设备针对源端设备通过系统总线发送的Non-post消息返回的确认响应消息;所述Non-post消息为源端设备通过系统总线发送给目的端设备的需要目的端设备返回确认消息的请求消息;
拥塞控制单元,用于根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制。
本申请还提供一种电子设备,包括:
存储器,以及处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
获得用于表示Post消息占用通信带宽的第一数据,其中,所述Post消息为源端设备通过系统总线发送给目的端设备且不需要目的端设备返回确认消息的请求消息;
获得用于表示确认消息占用通信带宽的第二数据,其中,所述确认消息为目的端设备针对源端设备通过系统总线发送的Non-post消息返回的确认响应消息;所述Non-post消息为源端设备通过系统总线发送给目的端设备的需要目的端设备返回确认消息的请求消息;
根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制。
与现有技术相比,本申请具有以下优点:
本申请提供的数据拥塞控制方法,通过获得用于表示Post消息占用通信带宽的第一数据,获得用于表示确认消息占用通信带宽的第二数据,根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制,由于Post消息以及确认消息是服务器内占用系统总线带宽的主要流量,因此对Post消息占用通信带宽以及确认消息占用通信带宽进行预估,能更精确的识别拥塞发生的时机和状态,从而能提供有效的拥塞控制,解决了系统总线互连网络的数据传输的拥塞控制问题。
本申请提供的一种带宽预估方法,通过根据当前时段发送缓冲区中Post消息的信息,确定Post消息的带宽预测状态和Post消息的带宽需求值,根据所述带宽预测状态和所述带宽需求值,确定所述Post消息的带宽预估数据。通过对Post消息占用带宽进行较为准确的预估,使得能够针对通过系统总线进行传输的数据进行更精确的拥塞控制,从而解决数据拥塞问题。
本申请提供的另一种带宽预估方法,通过根据当前时段待接收的确认消息的信息以及连接总线设备的端口的物理峰值带宽数据,获得确认消息的带宽预估数据。进一步的,可以根据Non-post消息较精确的预测对应的确认消息的带宽需求数据。通过对确认消息占用的带宽数据进行更准确的预估,使得能够针对通过系统总线传输的数据进行更为精确的拥塞控制,从而进一步解决数据拥塞问题。
附图说明
图1是系统总线互连网络数据传输的网络环境示意图;
图2是本申请第一实施例提供的一种数据拥塞控制方法的处理流程图;
图3是本申请第一实施例包括的数据拥塞决策算法的流程图;
图4是本申请第二实施例提供的一种带宽预估方法的处理流程图;
图5是本申请第二实施例包括的Post消息带宽预测方法的流程图;
图6是本申请第二实施例包括的源端设备Post消息带宽预测方法的流程图;
图7是本申请第三实施例提供的一种带宽预估方法的处理流程图;
图8是本申请第三实施例提供的确认消息带宽预测方法的流程图;
图9是本申请第四实施例提供的一种总线交换系统的示意图;
图10是本申请第四实施例提供的一种总线交换系统的示意图;
图11是本申请第五实施例提供的一种数据拥塞控制装置示意图;
图12是本申请第六实施例提供的一种电子设备示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种数据拥塞控制方法、装置及电子设备。本申请还提供一种带宽预估方法。本申请还提供另一种带宽预估方法。本申请还提供一种总线交换系统,在下面的实施例中逐一进行详细说明。
本申请第一实施例提供一种数据拥塞控制方法。所述数据拥塞控制方法,用于对系统总线互连网络的数据传输进行拥塞控制,以提高系统应用的执行性能。
为便于理解,首先介绍系统总线互连网络数据传输的几个概念及网络环境。
系统总线互连网络数据传输中,传输的是读写语义的消息,例如,Post Write、Non-post Write、Non-post Read、Completion。所谓Post Write(PWr),为不需要目的方返回确认消息的写通信操作,也称为非阻塞写。所谓Non-post Write(NPWr),为需要目的方返回确认消息的写通信操作,也称为阻塞写。所谓Non-post Read为读通信操作,所有的读通信操作均需要返回数据,因此读通信操作为Non-post操作,也称为阻塞操作。所谓Completion(CPL),为目的端收到Non-post Read操作消息后返回的读取的数据。
请参考图1,图中包括多种IO设备,例如:第一计算设备101、第二计算设备102、存储设备103、系统设备104、网卡105,这些IO设备接入系统总线106,通过系统总线106进行数据传输,系统总线106为用于互连服务器内各种IO设备的通信总线,可以是PCIE总线,也可以是其他总线,例如CCIX、OpenCAPI、GenZ等总线。由于高速IO设备的应用,服务器内的各种高速IO设备对系统总线的争用问题越发凸显,有时甚至形成数据拥塞。例如,第一计算设备101读内存获得返回消息(Completion),与网卡105写往第一计算设备101的非阻塞写消息(Post Write)发生碰撞,造成数据拥塞。数据拥塞一方面会导致两种消息流量的无序带宽竞争,另一方面数据拥塞会反压至所有与第一计算设备101通信的设备,造成严重性能下降,所谓反压是指将接收方的缓冲区空余空间反向通知发送方以在发送方进行流量控制的机制。
以下结合图2和图3对本申请第一实施例提供的数据拥塞控制方法进行说明。
图2所示的数据拥塞控制方法,包括:步骤S201至步骤S203。
步骤S201,获得用于表示Post消息占用通信带宽的第一数据。
其中,所述Post消息为源端设备通过系统总线发送给目的端设备且不需要目的端设备返回确认消息的请求消息。例如,Post消息为Post Write消息。
所述第一数据为针对Post消息占用通信带宽预测得到的预估数据,例如,根据当前时段的Post消息的包长度信息预测相邻后一个时段Post消息的带宽需求值以及带宽预测状态。本实施例中,所谓时段可以是时隙(Timeslot)。
本实施例中,根据发送缓冲区的Post消息的控制信息对Post消息占用的通信带宽进行预测,所述发送缓冲区用于暂时存储来自系统总线内部交换模块并将发往系统总线设备的消息。通过进入发送缓冲区的Post消息以及发送出发送缓冲区的Post消息可以预测Post消息占用的通信带宽。具体的,通过下述处理获得用于表示Post消息占用通信带宽的第一数据:
获得入发送缓冲区的Post消息的第一Post控制信息;
获得出发送缓冲区的Post消息的第二Post控制信息;
根据所述第一Post控制信息和第二Post控制信息,得到第一数据。
其中,第一Post控制信息为入发送缓冲区的Post消息的控制信息,例如,入发送缓冲区的Post消息的请求类型、请求标识、请求地址、请求长度等信息;第二Post控制信息为由发送缓冲区发送出的Post消息的控制信息,例如,出发送缓冲区的Post消息的请求类型、请求标识、请求地址、请求长度等信息。
本实施例中,优选根据Post消息的长度信息确定每个源端设备的Post消息的带宽预估数据,所谓源端设备,是指接入系统总线互连网络的且发送Post消息的总线设备。具体包括下述处理:
获得当前时段发送缓冲区中的Post消息的第一长度信息;
获得与当前时段相邻的前一个相邻时段发送缓冲区中的Post消息的第二长度信息;
根据第一长度信息和第二长度信息,确定至少一个源端设备发出的Post消息的Post消息带宽预估数据。
步骤S202,获得用于表示确认消息占用通信带宽的第二数据。
其中,所述确认消息为目的端设备针对源端设备通过系统总线发送的Non-post消息返回的确认响应消息;所述Non-post消息为源端设备通过系统总线发送给目的端设备的需要目的端设备返回确认消息的请求消息。
本实施例中,所述确认消息至少包括下述一种消息:针对Non-post读操作请求返回的确认消息;针对Non-post写操作请求返回的确认消息。例如,所述确认消息为针对Non-post Read消息返回的Completion消息。
所述获得用于表示确认消息占用通信带宽的第二数据,包括:根据入接收缓冲区的Non-post消息的控制信息,生成所述第二数据。由于系统总线互连网络中传输的读写语义消息中的Non-post消息与确认消息成对出现,例如,Non-post Read与Completion成对出现,因此,根据Non-post消息的控制信息能够准确预测确认消息的发生,进一步,可以准确的得到确认消息的带宽预估数据。
本实施例提供的一个实施方式中,具体通过下述处理获得所述第二数据:获得出接收缓冲区且未收到确认消息的未确认Non-post消息的信息;根据所述未确认Non-post消息的信息,生成所述第二数据。其中,所述根据所述未确认Non-post消息的信息,生成所述第二数据,包括:根据所述未确认Non-post消息的信息,获得待接收的确认消息的总包长度信息;根据所述待接收的确认消息的总包长度信息,生成所述第二数据。其中,所述待接收的确认消息为所述未确认Non-post消息对应的确认消息。进一步,还包括:根据收到的确认消息的包长度信息,更新所述待接收的确认消息的总包长度信息。
步骤S203,根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制。
本实施例中,带宽预估数据包括带宽需求值和带宽预测状态信息,所述带宽需求值,是指针对一类消息进行预测得到的需要占用的通信带宽,例如针对Post消息进行预测得到的Post消息需要占用的通信带宽,再如,针对确认消息进行预测得到的确认消息需要占用的通信带宽;所述带宽预测状态是指针对一类消息进行预测得到的需求状态,例如排空状态或积压状态,以便后续根据不同状态采取不同的策略进行拥塞控制。当然,带宽预测状态还可以在排空状态和积压状态之间根据消息的累积程度细分为一个或多个级别,例如将缓冲区中消息逐渐增多的状态确定为累积状态,或者根据消息增多的数量或速度划分为第一累积状态、第二累积状态等多个状态。所谓消息排空,是指出缓冲区的消息数大于入缓冲区的消息数,也就是缓冲区中消息数呈现减少的趋势;所谓消息积压,是指缓冲区已占满导致无可用缓冲空间或者无空余缓冲空间但是仍然有消息排队待进入缓冲区;所谓消息累积,是指有可用缓冲空间,但是出缓冲区的消息数小于入缓冲区的消息数,也就是缓冲区中消息数呈现增加的趋势。
本实施例提供的一个实施方式中,通过下述处理对通过系统总线传输的数据进行拥塞控制:根据所述第一数据,获得第一带宽需求值和第一带宽预测状态信息;根据所述第二数据,获得第二带宽需求值和第二带宽预测状态信息;根据所述第一带宽需求值、第一带宽预测状态信息、第二带宽需求值和第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制。具体的,包括下述处理:如果第一带宽需求值与第二带宽需求值之和满足预设拥塞控制条件,则根据第一带宽预测状态信息以及第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制。进一步,包括下述至少一种处理方式:
方式一、如果第二带宽预测状态信息不为确认消息排空状态,则控制Non-post消息的处理速度。进一步,包括:根据第一带宽需求值,生成带宽控制类型为控制Non-post消息的拥塞控制信息;根据所述拥塞控制信息对Non-post消息进行拥塞控制。
方式二、如果第二带宽预测状态信息指示的第二带宽预测状态不为响应消息排空状态,并且第一带宽预测状态信息指示的第一带宽预测状态不为Post消息排空状态,或者,如果第二带宽预测状态信息为确认消息排空状态,则按照预设Post消息拥塞控制策略对Post消息进行拥塞控制。其中,所述按照预设Post消息拥塞控制策略对Post消息进行拥塞控制,包括:
获得满足所述预设Post消息拥塞控制策略的目标源端设备的标识信息,以及所述目标源端设备的Post消息带宽需求值;
根据所述目标源端设备的标识信息以及Post消息带宽需求值,针对所述目标源端设备生成带宽控制类型为控制Post消息的拥塞控制信息;
根据所述拥塞控制信息对Post消息进行拥塞控制。
其中,所述目标源端设备为任一发送Post消息的源端设备,或,带宽需求值满足Post消息带宽阈值条件的源端设备,或,带宽预测状态信息指示为Post消息积压状态的源端设备。
请参考图3,图中给出了实际应用中拥塞控制的决策算法,其中的符号含义分别为:BW_cpl为确认消息带宽需求值;BW_post为Post消息带宽需求值,BW为系统总线的通信带宽;α为小于1的系数;State_cpl为确认消息带宽预测状态;Cpl排空为确认消息排空状态;State_post为Post消息带宽预测状态;Post排空为Post消息排空状态;State_i为第i个源端设备的Post消息状态;BW_post_i为第i个源端设备的Post消息的带宽需求值。决策算法的具体步骤包括:
S301,判断确认消息带宽需求值与Post消息带宽需求值的加和是否小于BW*α;若条件成立,则不进行拥塞控制;否则跳转至S302;
S302,判断确认消息带宽预测状态是否为确认消息排空状态,即判断State_cpl==Cpl排空是否成立;若条件成立,则转入S305;若不成立,则转入S303;
S303,进行Non-post消息速度控制,根据确认消息带宽需求值BW_cpl生成拥塞控制类型为控制Non-post类型的拥塞控制消息,用于控制处理Non-post消息的速度,并转入S304;
S304,判断Post带宽预测状态是否为Post排空状态,即判断State_post!=Post排空是否成立,如果成立则转入S305;
S305,进行Post消息拥塞控制,随机选择p个不为Post排空状态的源端设备,即State_i!=Post排空的源端设备,提取所述源端设备的ID,根据所述源端设备的带宽需求值BW_post_i生成拥塞控制类型为控制Post的拥塞控制消息,用于控制处理Post消息的速度。当然,S305中,还可以是按照其他策略选取其他源端设备控制Post消息的速度,例如,选择Post带宽需求值大于阈值的几个源端设备,或者对BW_post_i排序按照顺序选择最大的几个源端设备,或者选择Post带宽预测状态为Post积压的源端设备,进行Post消息控制,例如降低Post消息的速度。
本实施例提供的一个实施方式中,所述根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制,包括下述处理:
统计每个时段的Post消息带宽实际值和确认消息带宽实际值;
根据当前时段和前一个相邻时段的Post消息带宽实际值,获得Post消息带宽预测状态信息,根据当前时段和前一个相邻时段的确认消息带宽实际值,获得确认消息带宽预测状态信息;
根据所述Post消息带宽预测状态信息和所述确认消息带宽预测状态信息,对所述数据进行拥塞控制。
本实施例提供的一个实施方式中,还包括生成拥塞控制消息,根据拥塞控制信息进行拥塞控制,具体包括:
根据所述第一数据和所述第二数据,生成拥塞控制消息;
根据所述拥塞控制消息,对所述数据进行拥塞控制;其中,所述数据包括Post消息、Non-post消息以及确认消息中的至少一种消息。
进一步,所述根据所述拥塞控制消息,对所述数据进行拥塞控制,包括:
如果判断所述拥塞控制消息的拥塞控制类型为控制Non-post请求速率类型,则根据所述控制消息中的控制数据,降低对Non-post消息的仲裁速率;
如果判断所述拥塞控制消息的拥塞控制类型为控制Post请求速率类型,则将所述拥塞控制消息发送给对应的系统总线设备。
至此,对本申请第一实施例提供的数据拥塞控制方法进行了详细介绍。所述数据拥塞控制方法,用于根据Post消息带宽预估数据以及确认消息带宽预估数据,对系统总线互连网络的数据传输进行拥塞控制,以提高系统应用的执行性能。
以上述实施例为基础,本申请第二实施例提供了一种带宽预估方法。
以下结合图4至图6对本申请第二实施例提供的所述带宽预估方法进行说明。
图4所示的带宽预估方法,包括:步骤S401至步骤S403。
S401,获得当前时段发送消息存储区域中Post消息的信息。
所述Post消息为源端设备通过系统总线发送给目的端设备且不需要目的端设备返回确认消息的请求消息。例如,Post消息为Post Write消息。
本实施例中,根据发送消息存储区域的Post消息的控制信息对Post消息占用的通信带宽进行预测。所述发送消息存储区域可以是发送缓冲区。所述发送缓冲区用于暂时存储来自系统总线内部交换模块并将发往系统总线设备的消息。具体的,根据当前时段发送缓冲区的Post消息的信息,例如包长度信息,预测相邻后一个时段Post消息的带宽需求值以及带宽预测状态。本步骤为获得当前时段发送缓冲区中Post消息的信息,包括获得发送缓冲区的Post消息的控制信息,使用所述控制信息对Post消息占用的通信带宽进行预测。所述控制信息,至少包括请求长度信息,还可以包括:Post消息的请求类型、请求标识、请求地址等信息中的任一信息。
S402,根据所述当前时段发送消息存储区域中Post消息的信息,确定Post消息的带宽预测状态和Post消息的带宽需求值。
本实施例中,通过下述处理确定Post消息的带宽预测状态和Post消息的带宽需求值:
根据所述当前时段发送消息存储区域中Post消息的信息,获得当前时段中Post消息的包长度累加值,作为第一总长度值;
如果所述第一总长度值满足第一阈值条件,则将Post消息的带宽预测状态确定为Post消息积压状态;否则,获得与当前时段相邻的前一个相邻时段的Post消息的信息,根据所述第一总长度值和所述前一个相邻时段的Post消息的信息,获得所述Post消息的带宽预估数据。
其中,所述根据所述第一总长度值和所述前一个相邻时段的Post消息的信息,获得所述Post消息的带宽预估数据,包括:
根据所述前一个相邻时段的Post消息的信息,获得前一个相邻时段的Post消息的包长度累加值,作为第二总长度值;
如果第一总长度值不大于第二总长度值,则将Post消息的带宽预测状态确定为Post消息排空状态,将Post息的带宽需求值确定为预定值;
如果第一总长度值与第二总长度值的差值满足第二阈值条件,则将Post消息的带宽预测状态确定为Post消息累积状态,并且根据第一总长度值与第二总长度值确定Post消息的带宽需求值。
S403,根据所述带宽预测状态和所述带宽需求值,确定所述Post消息的带宽预估数据。
本实施例中,将所述带宽预测状态和所述带宽需求值作为所述Post消息的带宽预估数据。
请参考图5,图中示出了一种系统总线Post消息的带宽预估数据的处理步骤,图中的符号含义分别为:Len_new为当前时段的Post消息长度信息;Len_old为前一个相邻时段的Post消息长度信息;TH_hi为第一阈值条件;TH为第二阈值条件;Post积压表示Post消息预测带宽状态为消息积压状态;Post排空为表示Post消息预测带宽状态为消息排空状态;Post累积为表示Post消息预测带宽状态为消息累积状态;BW_post为Post消息带宽需求值;State为Post消息带宽预测状态。图中的处理步骤包括:
S501,当前时段开始后,判断Len_new是否大于阈值TH_hi,如果是,则表示发送缓冲区中的待发送Post消息数较多,需要进行拥塞控制,转入S501-1;否则转入S502;
S501-1,将State设置为Post积压状态,以便进行Post消息拥塞控制;
S502,判断Len_new是否大于Len_old,即比较当前时段与前一个相邻时段的Post消息长度信息,如果判断结果为否,则说明当前时段相比前一个相邻时段Post消息长度降低,为排空状态,将State设置为Post排空状态,带宽需求预定值为0;如果判断结果为是,转入S503;
S503,判断Len_new与Len_old的差值是否不超过第二阈值TH,例如判断Len_new>Len_old+TH是否成立,如果是,则说明当前时段与前一个相邻时段相比待发送Post消息增多达到了一定程度,设置Post消息带宽预测状态为Post积压状态,对应的Post消息带宽需求值采用BW_post=f(Len_new,Len_old,t)公式计算;如果否,则说明当前时段与前一个相邻时段相比待发送Post消息虽然增多但尚未达到积压的程度,设置State为Post累积状态,并采用BW_post=f(Len_new,Len_old,t)公式计算带宽需求值,该公式中f函数与(Len_new-Len_old)的值成正比。
本实施例中,还包括确定接入系统总线互连网络的每个源端设备的Post带宽预估数据。例如,通过下述方法获得目标源端设备的Post消息带宽预估数据:
获得当前时段发送消息存储区域中目标源端设备的Post消息的包长度累加值,作为第一源端设备Post消息总长度值;
根据所述第一源端设备Post消息总长度值,确定所述目标源端设备的Post消息的带宽预测状态以及带宽需求值;
将所述目标源端设备的Post消息的带宽预测状态以及带宽需求值,作为所述目标源端设备的Post消息的带宽预估数据。
进一步,如果所述第一源端设备Post消息总长度值满足第三阈值条件,则将所述目标源端设备的Post消息的带宽预测状态确定为Post消息积压状态;否则,获得与当前时段相邻的前一个相邻时段目标源端设备的Post消息的信息,根据所述第一源端设备Post消息总长度值和所述前一个相邻时段目标源端设备的Post消息的信息,获得所述目标源端设备的Post消息的带宽预估数据。
请参考图6,图中示出了获得第i个目标源端设备的Post消息的带宽预估数据的处理步骤,其处理逻辑与图5中的处理逻辑相似。图中的符号含义分别为:Len_new_i为当前时段第i个设备的Post消息长度信息;Len_old_i为前一个相邻时段第i个设备的Post消息长度信息;TH_hi_i为第i个设备的第三阈值;TH_i为第四阈值;BW_post_i为第i个设备Post消息带宽需求值;State_i为第i个设备的Post消息带宽预测状态。图中的处理步骤包括:
S601,当前时段开始后,判断Len_new_i是否大于阈值TH_hi_i,如果是,则表示发送缓冲区中第i个设备的待发送Post消息数较多,需要进行拥塞控制,转入S601-1;否则转入S602;
S601-1,将State_i设置为Post积压状态,以便对第i个设备进行Post消息拥塞控制;
S602,判断Len_new_i是否大于Len_old_i,即比较当前时段与前一个相邻时段第i个设备的Post消息长度信息,如果判断结果为否,则说明当前时段相比前一个相邻时段第i个设备的Post消息长度降低,为排空状态,将State_i设置为Post排空状态,带宽需求预定值为0;如果判断结果为是,转入S603;
S603,判断Len_new_i与Len_old_i的差值是否不超过第四阈值TH_i,例如,判断Len_new_i>Len_old_i+TH_i是否成立,如果是,则说明当前时段与前一个相邻时段相比第i个设备的待发送Post消息增多达到了一定程度,设置State_i为Post积压状态,对应的Post消息带宽需求值采用BW_post_i=f(Len_new_i,Len_old_i,t)公式计算;如果否,则说明当前时段与前一个相邻时段相比第i个设备的待发送Post消息虽然增多但尚未达到积压的程度,设置State_i为Post累积状态,并采用BW_post_i=f(Len_new_i,Len_old_i,t)公式计算带宽需求值,该公式中f函数与(Len_new_i-Len_old_i)的值成正比。
以上述实施例为基础,本申请第三实施例提供了另一种带宽预估方法。
以下结合图7和图8对第三实施例提供的所述带宽预估方法进行说明。
图7所示的带宽预估方法,包括:步骤S701至步骤S703。
步骤S701,获得当前时段待接收的确认消息的信息。
本实施例中,所述待接收的确认消息为出接收消息存储区域且未收到确认消息的未确认Non-post消息对应的确认消息;其中,所述确认消息为目的端设备针对源端设备通过系统总线发送的Non-post消息返回的确认响应消息;所述Non-post消息为源端设备通过系统总线发送给目的端设备的需要目的端设备返回确认消息的请求消息。所述接收消息存储区域可以是接收缓冲区。所述接收缓冲区用于暂时存储来自系统总线设备并将发往系统总线内部交换模块的消息。
所述获得当前时段待接收的确认消息的信息,包括:
获得所述未确认Non-post消息的控制信息;
根据所述未确认Non-post消息的控制信息,获得所述待接收的确认消息的包长度累加信息;
获得当前时段收到的确认消息的包长度信息,根据当前时段收到的确认消息的包长度信息以及所述包长度累加信息,得到当前时段待接收的确认消息的包长度信息,作为所述当前时段待接收的确认消息的信息。
由于系统总线互连网络中传输的读写语义消息中的Non-post消息与确认消息成对出现,例如,Non-post Read与Completion成对出现,因此,根据Non-post消息的控制信息能够准确预测确认消息的发生,进一步,可以准确的得到确认消息的带宽预估数据。
步骤S702,获得连接总线设备的端口的物理峰值带宽数据。
本实施例中,所述物理峰值带宽数据可以根据总线频率、数据位宽以及物理信道传输速率获得。
步骤S703,根据所述待接收的确认消息的信息以及所述物理峰值带宽数据,获得确认消息的带宽预估数据。
本实施例中,所述根据所述待接收的确认消息的信息以及所述物理峰值带宽数据,获得确认消息的带宽预估数据,包括:
根据所述当前时段待接收的确认消息的包长度信息,以及所述物理峰值带宽数据,获得当前时段带宽需求值;
如果所述当前时段带宽需求值不满足第一确认消息带宽阈值条件,则将所述确认消息带宽预测状态确定为确认消息排空状态;如果所述当前时段带宽需求值满足第一确认消息带宽阈值条件,但不满足第二确认消息带宽阈值条件,则将所述确认消息带宽预测状态确定为确认消息累积状态;如果所述当前时段带宽需求值满足第一确认消息带宽阈值条件,并且满足第二确认消息带宽阈值条件,则将所述确认消息带宽预测状态确定为确认消息积压状态;
将所述当前时段带宽需求值和所述确认消息带宽预测状态信息,作为所述确认消息的带宽预估数据。
请参考图8,图中示出了系统总线确认消息的带宽预估数据的处理步骤,图中的符号含义分别为:BW_cpl为确认消息的带宽需求值;BNcpl为待接收的确认消息的数据量;BWpeak为端口物理峰值带宽;TH1为第一阈值;TH2为第二阈值;Cpl积压表示确认消息预测带宽状态为消息积压状态;Cpl排空为表示确认消息预测带宽状态为消息排空状态;Cpl累积为表示确认消息预测带宽状态为消息累积状态;State_cpl表示确认消息带宽预测状态。图中的处理步骤包括:
S801,当前时段开始后,采用公式:BW_cpl=min{BNcpl/t,BWpeak},计算BW_cpl;
S802,判断BW_cpl是否大于第一阈值TH1;如果是,则转S803;如果否,则将State_cpl设置为Cpl排空;
S803,判断BW_cpl是否大于第一阈值TH2;如果是,则将State_cpl设置为Cpl积压;如果否,则将State_cpl设置为Cpl累积。
以上述实施例为基础,本申请第四实施例提供了一种总线交换系统。
以下结合图9和图10对第四实施例提供的所述总线交换系统进行说明。
图9所示的总线交换系统,应用于系统总线互连网络,包括:内部交换模块901、至少一个端口模块902;
所述内部交换模块901,用于处理所述至少一个端口模块中的各端口模块之间的数据交换;
所述至少一个端口模块902,用于与接入所述系统总线互连网络的总线设备或者第一总线交换系统进行数据交互,根据接收的Non-post消息的信息获得确认消息带宽预估数据;根据待发送的Post消息的信息获得Post消息带宽预估数据;根据Post消息带宽预估数据以及确认消息带宽预估数据,对系统总线互连网络的数据交互进行拥塞控制。
本实施例的一个实施方式请参考图10,图中包括内部交换模块1001以及至少一个端口模块1002,所述至少一个端口模块包括:发送模块1003和接收模块1004;
所述接收模块1003,用于接收总线设备的消息,将接收的消息转发至所述内部交换模块1001;将接收的Non-post消息的信息输出给所述至少一个端口模块1002的发送模块1004;
所述发送模块1004,用于接收来自所述内部交换模块1001的消息,并将所述消息发送至总线设备,根据当前时段以及前一个相邻时段发送缓冲区中Post消息的信息获得Post消息带宽预估数据,根据所述至少一个端口模块1002的接收模块1003的Non-post消息的信息获得确认消息带宽预估数据,根据Post消息带宽预估数据以及确认消息带宽预估数据,得到后一个时段的拥塞信息,生成对应的拥塞控制信息,输出所述拥塞控制信息。
其中,所述接收模块1003,包括:接收缓冲区及控制模块1003-1、Non-post消息统计模块1003-2以及仲裁模块1003-3;其中,
所述接收缓冲区及控制模块1003-1,用于缓存来自总线设备的消息,并根据所述仲裁模块的仲裁通知,将缓存的来自总线设备的消息发送给所述仲裁模块;将Non-post消息输出给所述内部交换模块,将所述Non-post消息的控制信息提供给Non-post消息统计模块;
所述Non-post消息统计模块1003-2,用于统计所述接收模块输出到内部交换模块且未收到确认响应消息的Non-post消息数目,以及所述未收到确认消息的Non-post消息包长度信息,并作为Non-post消息的信息发送给发送模块;根据发送模块返回的确认消息的信息,更新所述Non-post消息的信息;
所述仲裁模块1003-3,用于接收拥塞控制消息、接收来自接收缓冲区及控制模块的消息,如果收到拥塞控制类型为控制Non-post的拥塞控制消息,则根据所述拥塞控制消息的拥塞控制数值,调整对接收缓冲区及控制模块中的Non-post消息的仲裁速度;如果收到拥塞控制类型为控制Post的拥塞控制消息,则将所述拥塞控制消息转发给所述内部交换模块。
其中,所述发送模块1004,包括发送缓冲区及控制模块1004-1、Post通信带宽预测模块1004-2、确认消息通信带宽预测模块1004-3、带宽分配决策模块1004-4、以及拥塞控制消息产生模块1004-5;其中,
所述发送缓冲区及控制模块1004-1,用于缓存来自内部交换模块的消息并发送至总线设备;针对入发送缓冲区的Post消息,或者出发送缓冲区的Post消息,将Post消息的控制信息提供给Post通信带宽预测模块;针对入发送缓冲区的确认消息,将所述确认消息的控制信息提供给接收模块的Non-post消息统计模块;
所述Post通信带宽预测模块1004-2,用于获得发送缓冲区的Post消息的信息,根据所述信息预测当前时段的后一个时段总线设备发出的Post消息的带宽预估数据;
所述确认消息通信带宽预测模块1004-3,用于获得Non-post消息统计模块提供的Non-post消息的信息,根据所述信息预测当前时段的后一个时段确认消息的带宽预估数据;
所述带宽分配决策模块1004-4,用于根据Post消息的带宽预估数据以及确认消息的带宽预估数据,获得用于生成拥塞控制消息的信息,并发送给拥塞控制消息产生模块;
所述拥塞控制消息产生模块1004-5,用于根据接收到的用于生成拥塞控制消息的信息,生成拥塞控制消息,并发送给所述仲裁模块。
与本申请第一实施例相对应,本申请第五实施例提供了一种数据拥塞控制装置。以下结合图11对第五实施例提供的数据拥塞控制装置进行说明。
图11所示的数据拥塞控制装置,包括:
第一带宽预估单元1101,用于获得用于表示Post消息占用通信带宽的第一数据,其中,所述Post消息为源端设备通过系统总线发送给目的端设备且不需要目的端设备返回确认消息的请求消息;
第二带宽预估单元1102,用于获得用于表示确认消息占用通信带宽的第二数据,其中,所述确认消息为目的端设备针对源端设备通过系统总线发送的Non-post消息返回的确认响应消息;所述Non-post消息为源端设备通过系统总线发送给目的端设备的需要目的端设备返回确认消息的请求消息;
拥塞控制单元1103,用于根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制。
可选的,所述拥塞控制单元1103,具体用于:根据所述第一数据,获得第一带宽需求值和第一带宽预测状态信息;根据所述第二数据,获得第二带宽需求值和第二带宽预测状态信息;根据所述第一带宽需求值、第一带宽预测状态信息、第二带宽需求值和第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制。
可选的,所述拥塞控制单元1103,具体用于:如果第一带宽需求值与第二带宽需求值之和满足预设拥塞控制条件,则根据第一带宽预测状态信息以及第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制。
可选的,所述拥塞控制单元1103,包括Non-post控制子单元,所述Non-post控制子单元用于:如果第二带宽预测状态信息不为确认消息排空状态,则控制Non-post消息的处理速度。
可选的,所述拥塞控制单元1103,具体用于:如果第二带宽预测状态信息指示的第二带宽预测状态不为响应消息排空状态,并且第一带宽预测状态信息指示的第一带宽预测状态不为Post消息排空状态,或者,如果第二带宽预测状态信息为确认消息排空状态,则按照预设Post消息拥塞控制策略对Post消息进行拥塞控制。
可选的,所述拥塞控制单元1103,包括Post拥塞控制子单元,所述Post拥塞控制子单元用于:
获得满足所述预设Post消息拥塞控制策略的目标源端设备的标识信息,以及所述目标源端设备的Post消息带宽需求值;
根据所述目标源端设备的标识信息以及Post消息带宽需求值,针对所述目标源端设备生成带宽控制类型为控制Post消息的拥塞控制信息;
根据所述拥塞控制信息对Post消息进行拥塞控制。
可选的,所述目标源端设备为任一发送Post消息的源端设备,或,带宽需求值满足Post消息带宽阈值条件的源端设备,或,带宽预测状态信息指示为Post消息积压状态的源端设备。
可选的,所述Non-post控制子单元,具体用于:
根据第一带宽需求值,生成带宽控制类型为控制Non-post消息的拥塞控制信息;
根据所述拥塞控制信息对Non-post消息进行拥塞控制。
可选的,所述拥塞控制单元1103,具体用于:
统计每个时段的Post消息带宽实际值和确认消息带宽实际值;
根据当前时段和前一个相邻时段的Post消息带宽实际值,获得Post消息带宽预测状态信息,根据当前时段和前一个相邻时段的确认消息带宽实际值,获得确认消息带宽预测状态信息;
根据所述Post消息带宽预测状态信息和所述确认消息带宽预测状态信息,对所述数据进行拥塞控制。
可选的,所述确认消息至少包括下述一种消息:
针对Non-post读操作请求返回的确认消息;
针对Non-post写操作请求返回的确认消息。
可选的,所述第一带宽预估单元1101,具体用于:
获得入发送缓冲区的Post消息的第一Post控制信息;
获得出发送缓冲区的Post消息的第二Post控制信息;
根据所述第一Post控制信息和第二Post控制信息,得到第一数据。
可选的,所述第一带宽预估单元1101,还用于:
获得当前时段发送缓冲区中的Post消息的第一长度信息;
获得与当前时段相邻的前一个相邻时段发送缓冲区中的Post消息的第二长度信息;
根据第一长度信息和第二长度信息,确定至少一个源端设备发出的Post消息的Post消息带宽预估数据。
可选的,所述第二带宽预估单元1102,具体用于:根据入接收缓冲区的Non-post消息的控制信息,生成所述第二数据。
可选的,所述第二带宽预估单元1102,具体用于:
获得出接收缓冲区且未收到确认消息的未确认Non-post消息的信息;
根据所述未确认Non-post消息的信息,生成所述第二数据。
可选的,所述第二带宽预估单元1102,具体用于:
根据所述未确认Non-post消息的信息,获得待接收的确认消息的总包长度信息;其中,所述待接收的确认消息为所述未确认Non-post消息对应的确认消息;
根据所述待接收的确认消息的总包长度信息,生成所述第二数据。
可选的,所述第二带宽预估单元1102,还用于:根据收到的确认消息的包长度信息,更新所述待接收的确认消息的总包长度信息。
可选的,所述拥塞控制单元1103,具体用于:
根据所述第一数据和所述第二数据,生成拥塞控制消息;
根据所述拥塞控制消息,对所述数据进行拥塞控制;
其中,所述数据包括Post消息、Non-post消息以及确认消息中的至少一种消息。
可选的,所述拥塞控制单元1103,具体用于:
如果判断所述拥塞控制消息的拥塞控制类型为控制Non-post请求速率类型,则根据所述控制消息中的控制数据,降低对Non-post消息的仲裁速率;
如果判断所述拥塞控制消息的拥塞控制类型为控制Post请求速率类型,则将所述拥塞控制消息发送给对应的系统总线设备。
与本申请第一实施例相对应,本申请第六实施例提供了一种用于第一实施例提供的所述数据拥塞控制方法的电子设备。以下结合图12对第六实施例提供的电子设备进行说明。
图12所示的电子设备,包括:
存储器1201,以及处理器1202;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
获得用于表示Post消息占用通信带宽的第一据,其中,所述Post消息为源端设备通过系统总线发送给目的端设备且不需要目的端设备返回确认消息的请求消息;
获得用于表示确认消息占用通信带宽的第二数据,其中,所述确认消息为目的端设备针对源端设备通过系统总线发送的Non-post消息返回的确认响应消息;所述Non-post消息为源端设备通过系统总线发送给目的端设备的需要目的端设备返回确认消息的请求消息;
根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制。
可选的,所述处理器还用于执行下述计算机可执行指令:根据所述第一数据,获得第一带宽需求值和第一带宽预测状态信息;根据所述第二数据,获得第二带宽需求值和第二带宽预测状态信息;根据所述第一带宽需求值、第一带宽预测状态信息、第二带宽需求值和第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制。
可选的,所述处理器还用于执行下述计算机可执行指令:
如果第一带宽需求值与第二带宽需求值之和满足预设拥塞控制条件,则根据第一带宽预测状态信息以及第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制。
可选的,所述处理器还用于执行下述计算机可执行指令:如果第二带宽预测状态信息不为确认消息排空状态,则控制Non-post消息的处理速度。
可选的,所述处理器还用于执行下述计算机可执行指令:
如果第二带宽预测状态信息指示的第二带宽预测状态不为响应消息排空状态,并且第一带宽预测状态信息指示的第一带宽预测状态不为Post消息排空状态,或者,如果第二带宽预测状态信息为确认消息排空状态,则按照预设Post消息拥塞控制策略对Post消息进行拥塞控制。
可选的,所述处理器还用于执行下述计算机可执行指令:
获得满足所述预设Post消息拥塞控制策略的目标源端设备的标识信息,以及所述目标源端设备的Post消息带宽需求值;
根据所述目标源端设备的标识信息以及Post消息带宽需求值,针对所述目标源端设备生成带宽控制类型为控制Post消息的拥塞控制信息;
根据所述拥塞控制信息对Post消息进行拥塞控制。
可选的,所述目标源端设备为任一发送Post消息的源端设备,或,带宽需求值满足Post消息带宽阈值条件的源端设备,或,带宽预测状态信息指示为Post消息积压状态的源端设备。
可选的,所述处理器还用于执行下述计算机可执行指令:
根据第一带宽需求值,生成带宽控制类型为控制Non-post消息的拥塞控制信息;
根据所述拥塞控制信息对Non-post消息进行拥塞控制。
可选的,所述处理器还用于执行下述计算机可执行指令:
统计每个时段的Post消息带宽实际值和确认消息带宽实际值;
根据当前时段和前一个相邻时段的Post消息带宽实际值,获得Post消息带宽预测状态信息,根据当前时段和前一个相邻时段的确认消息带宽实际值,获得确认消息带宽预测状态信息;
根据所述Post消息带宽预测状态信息和所述确认消息带宽预测状态信息,对所述数据进行拥塞控制。
可选的,所述确认消息至少包括下述一种消息:
针对Non-post读操作请求返回的确认消息;
针对Non-post写操作请求返回的确认消息。
可选的,所述处理器还用于执行下述计算机可执行指令:
获得入发送缓冲区的Post消息的第一Post控制信息;
获得出发送缓冲区的Post消息的第二Post控制信息;
根据所述第一Post控制信息和第二Post控制信息,得到第一数据。
可选的,所述处理器还用于执行下述计算机可执行指令:
获得当前时段发送缓冲区中的Post消息的第一长度信息;
获得与当前时段相邻的前一个相邻时段发送缓冲区中的Post消息的第二长度信息;
根据第一长度信息和第二长度信息,确定至少一个源端设备发出的Post消息的Post消息带宽预估数据。
可选的,所述处理器还用于执行下述计算机可执行指令:根据入接收缓冲区的Non-post消息的控制信息,生成所述第二数据。
可选的,所述处理器还用于执行下述计算机可执行指令:
获得出接收缓冲区且未收到确认消息的未确认Non-post消息的信息;
根据所述未确认Non-post消息的信息,生成所述第二数据。
可选的,所述处理器还用于执行下述计算机可执行指令:
根据所述未确认Non-post消息的信息,获得待接收的确认消息的总包长度信息;其中,所述待接收的确认消息为所述未确认Non-post消息对应的确认消息;
根据所述待接收的确认消息的总包长度信息,生成所述第二数据。
可选的,所述处理器还用于执行下述计算机可执行指令:根据收到的确认消息的包长度信息,更新所述待接收的确认消息的总包长度信息。
可选的,所述处理器还用于执行下述计算机可执行指令:
根据所述第一数据和所述第二数据,生成拥塞控制消息;
根据所述拥塞控制消息,对所述数据进行拥塞控制;
其中,所述数据包括Post消息、Non-post消息以及确认消息中的至少一种消息。
可选的,所述处理器还用于执行下述计算机可执行指令:
如果判断所述拥塞控制消息的拥塞控制类型为控制Non-post请求速率类型,则根据所述控制消息中的控制数据,降低对Non-post消息的仲裁速率;
如果判断所述拥塞控制消息的拥塞控制类型为控制Post请求速率类型,则将所述拥塞控制消息发送给对应的系统总线设备。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (32)
1.一种数据拥塞控制方法,其特征在于,包括:
获得用于表示Post消息占用通信带宽的第一数据,其中,所述Post消息为源端设备通过系统总线发送给目的端设备且不需要目的端设备返回确认消息的请求消息;
获得用于表示确认消息占用通信带宽的第二数据,其中,所述确认消息为目的端设备针对源端设备通过系统总线发送的Non-post消息返回的确认响应消息;所述Non-post消息为源端设备通过系统总线发送给目的端设备的需要目的端设备返回确认消息的请求消息;
根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制,包括:
根据所述第一数据,获得第一带宽需求值和第一带宽预测状态信息;
根据所述第二数据,获得第二带宽需求值和第二带宽预测状态信息;
根据所述第一带宽需求值、第一带宽预测状态信息、第二带宽需求值和第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一带宽需求值、第一带宽预测状态信息、第二带宽需求值和第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制,包括:
如果第一带宽需求值与第二带宽需求值之和满足预设拥塞控制条件,则根据第一带宽预测状态信息以及第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制。
4.根据权利要求3所述的方法,其特征在于,所述根据第一带宽预测状态信息以及第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制,包括:
如果第二带宽预测状态信息不为确认消息排空状态,则控制Non-post消息的处理速度。
5.根据权利要求3所述的方法,其特征在于,所述根据第一带宽预测状态信息以及第二带宽预测状态信息,对通过系统总线传输的数据进行拥塞控制,包括:
如果第二带宽预测状态信息指示的第二带宽预测状态不为响应消息排空状态,并且第一带宽预测状态信息指示的第一带宽预测状态不为Post消息排空状态,或者,如果第二带宽预测状态信息为确认消息排空状态,则按照预设Post消息拥塞控制策略对Post消息进行拥塞控制。
6.根据权利要求5所述的方法,其特征在于,所述按照预设Post消息拥塞控制策略对Post消息进行拥塞控制,包括:
获得满足所述预设Post消息拥塞控制策略的目标源端设备的标识信息,以及所述目标源端设备的Post消息带宽需求值;
根据所述目标源端设备的标识信息以及Post消息带宽需求值,针对所述目标源端设备生成带宽控制类型为控制Post消息的拥塞控制信息;
根据所述拥塞控制信息对Post消息进行拥塞控制。
7.根据权利要求6所述的方法,其特征在于,所述目标源端设备为任一发送Post消息的源端设备,或,带宽需求值满足Post消息带宽阈值条件的源端设备,或,带宽预测状态信息指示为Post消息积压状态的源端设备。
8.根据权利要求4所述的方法,其特征在于,所述如果第二带宽预测状态信息不为确认消息排空状态,则控制Non-post消息的处理速度,包括:
根据第一带宽需求值,生成带宽控制类型为控制Non-post消息的拥塞控制信息;
根据所述拥塞控制信息对Non-post消息进行拥塞控制。
9.根据权利要求1所述的方法,其特征在于,所述根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制,包括:
统计每个时段的Post消息带宽实际值和确认消息带宽实际值;
根据当前时段和前一个相邻时段的Post消息带宽实际值,获得Post消息带宽预测状态信息,根据当前时段和前一个相邻时段的确认消息带宽实际值,获得确认消息带宽预测状态信息;
根据所述Post消息带宽预测状态信息和所述确认消息带宽预测状态信息,对所述数据进行拥塞控制。
10.根据权利要求1所述的方法,其特征在于,所述确认消息至少包括下述一种消息:
针对Non-post读操作请求返回的确认消息;
针对Non-post写操作请求返回的确认消息。
11.根据权利要求1所述的方法,其特征在于,所述获得用于表示Post消息占用通信带宽的第一数据,包括:
获得入发送缓冲区的Post消息的第一Post控制信息;
获得出发送缓冲区的Post消息的第二Post控制信息;
根据所述第一Post控制信息和第二Post控制信息,得到第一数据。
12.根据权利要求11所述的方法,其特征在于,还包括:
获得当前时段发送缓冲区中的Post消息的第一长度信息;
获得与当前时段相邻的前一个相邻时段发送缓冲区中的Post消息的第二长度信息;
根据第一长度信息和第二长度信息,确定至少一个源端设备发出的Post消息的Post消息带宽预估数据。
13.根据权利要求1所述的方法,其特征在于,所述获得用于表示确认消息占用通信带宽的第二数据,包括:根据入接收缓冲区的Non-post消息的控制信息,生成所述第二数据。
14.根据权利要求1所述的方法,其特征在于,所述获得用于表示确认消息占用通信带宽的第二数据,包括:
获得出接收缓冲区且未收到确认消息的未确认Non-post消息的信息;
根据所述未确认Non-post消息的信息,生成所述第二数据。
15.根据权利要求14所述的方法,其特征在于,所述根据所述未确认Non-post消息的信息,生成所述第二数据,包括:
根据所述未确认Non-post消息的信息,获得待接收的确认消息的总包长度信息;其中,所述待接收的确认消息为所述未确认Non-post消息对应的确认消息;
根据所述待接收的确认消息的总包长度信息,生成所述第二数据。
16.根据权利要求15所述的方法,其特征在于,还包括:根据收到的确认消息的包长度信息,更新所述待接收的确认消息的总包长度信息。
17.根据权利要求1所述的方法,其特征在于,所述根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制,包括:
根据所述第一数据和所述第二数据,生成拥塞控制消息;
根据所述拥塞控制消息,对所述数据进行拥塞控制;
其中,所述数据包括Post消息、Non-post消息以及确认消息中的至少一种消息。
18.根据权利要求17所述的方法,其特征在于,所述根据所述拥塞控制消息,对所述数据进行拥塞控制,包括:
如果判断所述拥塞控制消息的拥塞控制类型为控制Non-post请求速率类型,则根据所述控制消息中的控制数据,降低对Non-post消息的仲裁速率;
如果判断所述拥塞控制消息的拥塞控制类型为控制Post请求速率类型,则将所述拥塞控制消息发送给对应的系统总线设备。
19.一种带宽预估方法,其特征在于,包括:
获得当前时段发送消息存储区域中Post消息的信息;
根据所述当前时段发送消息存储区域中Post消息的信息,确定Post消息的带宽预测状态和Post消息的带宽需求值;
根据所述带宽预测状态和所述带宽需求值,确定所述Post消息的带宽预估数据。
20.根据权利要求19所述的方法,其特征在于,所述根据所述当前时段发送消息存储区域中Post消息的信息,确定Post消息的带宽预测状态和Post消息的带宽需求值,包括:
根据所述当前时段发送消息存储区域中Post消息的信息,获得当前时段中Post消息的包长度累加值,作为第一总长度值;
如果所述第一总长度值满足第一阈值条件,则将Post消息的带宽预测状态确定为Post消息积压状态;否则,获得与当前时段相邻的前一个相邻时段的Post消息的信息,根据所述第一总长度值和所述前一个相邻时段的Post消息的信息,获得所述Post消息的带宽预估数据。
21.根据权利要求20所述的方法,其特征在于,所述根据所述第一总长度值和所述前一个相邻时段的Post消息的信息,获得所述Post消息的带宽预估数据,包括:
根据所述前一个相邻时段的Post消息的信息,获得前一个相邻时段的Post消息的包长度累加值,作为第二总长度值;
如果第一总长度值不大于第二总长度值,则将Post消息的带宽预测状态确定为Post消息排空状态,将Post息的带宽需求值确定为预定值;
如果第一总长度值与第二总长度值的差值满足第二阈值条件,则将Post消息的带宽预测状态确定为Post消息累积状态,并且根据第一总长度值与第二总长度值确定Post消息的带宽需求值。
22.根据权利要求19所述的方法,其特征在于,还包括:
获得当前时段发送消息存储区域中目标源端设备的Post消息的包长度累加值,作为第一源端设备Post消息总长度值;
根据所述第一源端设备Post消息总长度值,确定所述目标源端设备的Post消息的带宽预测状态以及带宽需求值;
将所述目标源端设备的Post消息的带宽预测状态以及带宽需求值,作为所述目标源端设备的Post消息的带宽预估数据。
23.根据权利要求22所述的方法,其特征在于,还包括:
如果所述第一源端设备Post消息总长度值满足第三阈值条件,则将所述目标源端设备的Post消息的带宽预测状态确定为Post消息积压状态;否则,获得与当前时段相邻的前一个相邻时段目标源端设备的Post消息的信息,根据所述第一源端设备Post消息总长度值和所述前一个相邻时段目标源端设备的Post消息的信息,获得所述目标源端设备的Post消息的带宽预估数据。
24.一种带宽预估方法,其特征在于,包括:
获得当前时段待接收的确认消息的信息;
获得连接总线设备的端口的物理峰值带宽数据;
根据所述待接收的确认消息的信息以及所述物理峰值带宽数据,获得确认消息的带宽预估数据。
25.根据权利要求24所述的方法,其特征在于,所述待接收的确认消息为出接收消息存储区域且未收到确认消息的未确认Non-post消息对应的确认消息;
所述获得当前时段待接收的确认消息的信息,包括:
获得所述未确认Non-post消息的控制信息;
根据所述未确认Non-post消息的控制信息,获得所述待接收的确认消息的包长度累加信息;
获得当前时段收到的确认消息的包长度信息,根据当前时段收到的确认消息的包长度信息以及所述包长度累加信息,得到当前时段待接收的确认消息的包长度信息,作为所述当前时段待接收的确认消息的信息。
26.根据权利要求25所述的方法,其特征在于,所述根据所述待接收的确认消息的信息以及所述物理峰值带宽数据,获得确认消息的带宽预估数据,包括:
根据所述当前时段待接收的确认消息的包长度信息,以及所述物理峰值带宽数据,获得当前时段带宽需求值;
如果所述当前时段带宽需求值不满足第一确认消息带宽阈值条件,则将所述确认消息带宽预测状态确定为确认消息排空状态;如果所述当前时段带宽需求值满足第一确认消息带宽阈值条件,但不满足第二确认消息带宽阈值条件,则将所述确认消息带宽预测状态确定为确认消息累积状态;如果所述当前时段带宽需求值满足第一确认消息带宽阈值条件,并且满足第二确认消息带宽阈值条件,则将所述确认消息带宽预测状态确定为确认消息积压状态;
将所述当前时段带宽需求值和所述确认消息带宽预测状态信息,作为所述确认消息的带宽预估数据。
27.一种总线交换系统,其特征在于,应用于系统总线互连网络,包括:内部交换模块、至少一个端口模块;
所述内部交换模块,用于处理所述至少一个端口模块中的各端口模块之间的数据交换;
所述至少一个端口模块,用于与接入所述系统总线互连网络的总线设备或者第一总线交换系统进行数据交互,根据接收的Non-post消息的信息获得确认消息带宽预估数据;根据待发送的Post消息的信息获得Post消息带宽预估数据;根据Post消息带宽预估数据以及确认消息带宽预估数据,对系统总线互连网络的数据交互进行拥塞控制。
28.根据权利要求27所述的系统,其特征在于,所述至少一个端口模块,包括:发送模块和接收模块;
所述接收模块,用于接收总线设备的消息,将接收的消息转发至所述内部交换模块;将接收的Non-post消息的信息输出给所述至少一个端口模块的发送模块;
所述发送模块,用于接收来自所述内部交换模块的消息,并将所述消息发送至总线设备,根据当前时段以及前一个相邻时段发送缓冲区中Post消息的信息获得Post消息带宽预估数据,根据所述至少一个端口模块的接收模块的Non-post消息的信息获得确认消息带宽预估数据,根据Post消息带宽预估数据以及确认消息带宽预估数据,得到后一个时段的拥塞信息,生成对应的拥塞控制信息,输出所述拥塞控制信息。
29.根据权利要求28所述的系统,其特征在于,所述接收模块,包括:接收缓冲区及控制模块、Non-post消息统计模块以及仲裁模块;其中,
所述接收缓冲区及控制模块,用于缓存来自总线设备的消息,并根据所述仲裁模块的仲裁通知,将缓存的来自总线设备的消息发送给所述仲裁模块;将Non-post消息输出给所述内部交换模块,将所述Non-post消息的控制信息提供给Non-post消息统计模块;
所述Non-post消息统计模块,用于统计所述接收模块输出到内部交换模块且未收到确认响应消息的Non-post消息数目,以及所述未收到确认消息的Non-post消息包长度信息,并作为Non-post消息的信息发送给发送模块;根据发送模块返回的确认消息的信息,更新所述Non-post消息的信息;
所述仲裁模块,用于接收拥塞控制消息、接收来自接收缓冲区及控制模块的消息,如果收到拥塞控制类型为控制Non-post的拥塞控制消息,则根据所述拥塞控制消息的拥塞控制数值,调整对接收缓冲区及控制模块中的Non-post消息的仲裁速度;如果收到拥塞控制类型为控制Post的拥塞控制消息,则将所述拥塞控制消息转发给所述内部交换模块。
30.根据权利要求29所述的系统,其特征在于,所述发送模块,包括发送缓冲区及控制模块、Post通信带宽预测模块、确认消息通信带宽预测模块、带宽分配决策模块、以及拥塞控制消息产生模块;其中,
所述发送缓冲区及控制模块,用于缓存来自内部交换模块的消息并发送至总线设备;针对入发送缓冲区的Post消息,或者出发送缓冲区的Post消息,将Post消息的控制信息提供给Post通信带宽预测模块;针对入发送缓冲区的确认消息,将所述确认消息的控制信息提供给接收模块的Non-post消息统计模块;
所述Post通信带宽预测模块,用于预测当前时段的后一个时段总线设备发出的Post消息的带宽预估数据;
所述确认消息通信带宽预测模块,用于根据Non-post消息统计模块提供的Non-post消息的信息,预测当前时段的后一个时段确认消息的带宽预估数据;
所述带宽分配决策模块,用于根据Post消息的带宽预估数据以及确认消息的带宽预估数据,获得用于生成拥塞控制消息的信息,并发送给拥塞控制消息产生模块;
所述拥塞控制消息产生模块,用于根据接收到的用于生成拥塞控制消息的信息,生成拥塞控制消息,并发送给所述仲裁模块。
31.一种数据拥塞控制装置,其特征在于,包括:
第一带宽预估单元,用于获得用于表示Post消息占用通信带宽的第一数据,其中,所述Post消息为源端设备通过系统总线发送给目的端设备且不需要目的端设备返回确认消息的请求消息;
第二带宽预估单元,用于获得用于表示确认消息占用通信带宽的第二数据,其中,所述确认消息为目的端设备针对源端设备通过系统总线发送的Non-post消息返回的确认响应消息;所述Non-post消息为源端设备通过系统总线发送给目的端设备的需要目的端设备返回确认消息的请求消息;
拥塞控制单元,用于根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制。
32.一种电子设备,其特征在于,包括:
存储器,以及处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
获得用于表示Post消息占用通信带宽的第一数据,其中,所述Post消息为源端设备通过系统总线发送给目的端设备且不需要目的端设备返回确认消息的请求消息;
获得用于表示确认消息占用通信带宽的第二数据,其中,所述确认消息为目的端设备针对源端设备通过系统总线发送的Non-post消息返回的确认响应消息;所述Non-post消息为源端设备通过系统总线发送给目的端设备的需要目的端设备返回确认消息的请求消息;
根据所述第一数据和所述第二数据,对通过系统总线传输的数据进行拥塞控制。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910498498.1A CN112073325B (zh) | 2019-06-10 | 2019-06-10 | 数据拥塞控制及带宽预估方法 |
PCT/CN2020/093714 WO2020248857A1 (zh) | 2019-06-10 | 2020-06-01 | 数据拥塞控制及带宽预估方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910498498.1A CN112073325B (zh) | 2019-06-10 | 2019-06-10 | 数据拥塞控制及带宽预估方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112073325A true CN112073325A (zh) | 2020-12-11 |
CN112073325B CN112073325B (zh) | 2023-05-12 |
Family
ID=73658134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910498498.1A Active CN112073325B (zh) | 2019-06-10 | 2019-06-10 | 数据拥塞控制及带宽预估方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112073325B (zh) |
WO (1) | WO2020248857A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979169A (zh) * | 2022-05-27 | 2022-08-30 | 山东派盟网络科技有限公司 | 一种网络资源推送方法、装置、存储介质及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713633A (zh) * | 2004-06-24 | 2005-12-28 | 华为技术有限公司 | 一种网络流量控制的方法 |
CN101141406A (zh) * | 2007-10-17 | 2008-03-12 | 杭州华三通信技术有限公司 | 分布式流量控制方法、系统及装置 |
CN101594630A (zh) * | 2009-06-30 | 2009-12-02 | 中兴通讯股份有限公司 | 上行链路拥塞检测和流量控制方法及设备 |
CN101902449A (zh) * | 2009-05-31 | 2010-12-01 | 友益(Ux)有限公司 | 网络设备之间持续http连接的仿真 |
US20130107714A1 (en) * | 2011-10-26 | 2013-05-02 | Sangfor Networks Company Limited | Method and Device for Network traffic Control |
CN103929784A (zh) * | 2013-01-10 | 2014-07-16 | 中国移动通信集团上海有限公司 | 一种用户带宽控制方法、装置及系统 |
CN104272680A (zh) * | 2012-03-09 | 2015-01-07 | 英国电讯有限公司 | 用信号通知拥塞 |
CN106549876A (zh) * | 2015-09-22 | 2017-03-29 | 中兴通讯股份有限公司 | 基于icap协议的网络拥塞控制方法、装置及客户端 |
CN108432194A (zh) * | 2016-04-28 | 2018-08-21 | 华为技术有限公司 | 一种拥塞处理的方法、主机及系统 |
CN108667739A (zh) * | 2017-03-27 | 2018-10-16 | 华为技术有限公司 | 拥塞控制方法、装置及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7827325B2 (en) * | 2007-10-31 | 2010-11-02 | International Business Machines Corporation | Device, system, and method of speculative packet transmission |
CN105323188B (zh) * | 2015-10-30 | 2018-10-12 | 北京星网锐捷网络技术有限公司 | 网络流量控制方法、装置及交换机 |
CN109428771B (zh) * | 2017-08-21 | 2021-02-09 | 深圳市中兴微电子技术有限公司 | 一种高速外围组件互联报文性能检测方法和装置 |
CN107733689A (zh) * | 2017-09-15 | 2018-02-23 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 基于优先级的动态加权轮询调度策略方法 |
CN109684269B (zh) * | 2018-12-26 | 2020-06-02 | 成都九芯微科技有限公司 | 一种pcie交换芯片内核及工作方法 |
-
2019
- 2019-06-10 CN CN201910498498.1A patent/CN112073325B/zh active Active
-
2020
- 2020-06-01 WO PCT/CN2020/093714 patent/WO2020248857A1/zh active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713633A (zh) * | 2004-06-24 | 2005-12-28 | 华为技术有限公司 | 一种网络流量控制的方法 |
CN101141406A (zh) * | 2007-10-17 | 2008-03-12 | 杭州华三通信技术有限公司 | 分布式流量控制方法、系统及装置 |
CN101902449A (zh) * | 2009-05-31 | 2010-12-01 | 友益(Ux)有限公司 | 网络设备之间持续http连接的仿真 |
CN101594630A (zh) * | 2009-06-30 | 2009-12-02 | 中兴通讯股份有限公司 | 上行链路拥塞检测和流量控制方法及设备 |
US20130107714A1 (en) * | 2011-10-26 | 2013-05-02 | Sangfor Networks Company Limited | Method and Device for Network traffic Control |
CN104272680A (zh) * | 2012-03-09 | 2015-01-07 | 英国电讯有限公司 | 用信号通知拥塞 |
CN103929784A (zh) * | 2013-01-10 | 2014-07-16 | 中国移动通信集团上海有限公司 | 一种用户带宽控制方法、装置及系统 |
CN106549876A (zh) * | 2015-09-22 | 2017-03-29 | 中兴通讯股份有限公司 | 基于icap协议的网络拥塞控制方法、装置及客户端 |
CN108432194A (zh) * | 2016-04-28 | 2018-08-21 | 华为技术有限公司 | 一种拥塞处理的方法、主机及系统 |
CN108667739A (zh) * | 2017-03-27 | 2018-10-16 | 华为技术有限公司 | 拥塞控制方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
陈洋: "传感网络数据传输的拥塞控制机制", 《西安文理学院学报(自然科学版)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979169A (zh) * | 2022-05-27 | 2022-08-30 | 山东派盟网络科技有限公司 | 一种网络资源推送方法、装置、存储介质及电子设备 |
CN114979169B (zh) * | 2022-05-27 | 2024-03-29 | 山东派盟网络科技有限公司 | 一种网络资源推送方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2020248857A1 (zh) | 2020-12-17 |
CN112073325B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2615802B1 (en) | Communication apparatus and method of content router to control traffic transmission rate in content-centric network (CCN), and content router | |
US9225668B2 (en) | Priority driven channel allocation for packet transferring | |
US5809078A (en) | Relay node system and relay control method of the same system | |
US20130194927A1 (en) | Router, method for controlling router, and program | |
US20080192765A1 (en) | Apparatus and method for packet buffer management in IP network system | |
US20140036680A1 (en) | Method to Allocate Packet Buffers in a Packet Transferring System | |
EP4175232A1 (en) | Congestion control method and device | |
CN111107017A (zh) | 一种交换机报文拥塞的处理方法、设备以及存储介质 | |
CN111836370B (zh) | 一种基于竞争的资源预约方法及设备 | |
US20230283578A1 (en) | Method for forwarding data packet, electronic device, and storage medium for the same | |
CN112737940B (zh) | 一种数据传输的方法和装置 | |
CN112073325B (zh) | 数据拥塞控制及带宽预估方法 | |
CN109756429A (zh) | 带宽分配方法及设备 | |
CN117807000A (zh) | 通道总线仲裁电路、加速装置、方法、系统、装置及介质 | |
JP3226096B2 (ja) | Atmセルバッファシステム及びその輻輳制御方法 | |
US9537799B2 (en) | Phase-based packet prioritization | |
US20160232125A1 (en) | Storage apparatus and method for processing plurality of pieces of client data | |
CN115622945A (zh) | 一种报文处理方法及装置 | |
CN115967687A (zh) | 快转发报文方法、网络设备、存储介质及计算机程序产品 | |
CN111813717B (zh) | 一种数据帧存储切换的装置及方法 | |
CN115794366A (zh) | 一种内存预取方法及装置 | |
JP5571826B1 (ja) | パケット転送処理装置および方法 | |
CN110580202A (zh) | 服务器系统内消息的处理方法、装置及系统 | |
CN112486871A (zh) | 一种用于片上总线的路由方法以及系统 | |
CN113938441B (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 |