基于工业互联网现场层装置的拥塞控制方法及现场层装置与流程

文档序号:12865920阅读:178来源:国知局
基于工业互联网现场层装置的拥塞控制方法及现场层装置与流程

本申请涉及计算机技术领域,尤其涉及一种基于工业互联网现场层装置的拥塞控制方法及现场层装置。



背景技术:

工业互联网是全球工业系统与高级计算、分析、感应技术以及互联网连接融合的结果。它通过智能机器间的连接并最终将人机连接,结合软件和大数据分析,重构全球工业、激发生产力,让世界更美好、更快速、更安全、更清洁且更经济。

在工业互联网中,多交换芯片堆叠过程中的拥塞管理主要是通过堆叠端口向对端芯片发送暂停(pause)帧的形式来阻止对端发送报文到拥塞端口。由于pause帧中没有携带具体拥塞端口的信息,采用pause帧流控,会阻塞对端芯片上所有通过堆叠端口发送过来的报文,即使该报文的目的端口并不是拥塞端口,也会由于堆叠口被pause帧流控,而不能正常转发,这对带宽造成了极大的浪费。所以,现有技术存在对堆叠芯片中的交换芯片的拥塞控制不合理的技术问题。



技术实现要素:

本申请实施例提供一种基于工业互联网现场层装置的拥塞控制方法及现场层装置,通过设计能够通过标准以太网端口传递的拥塞数据帧,能够基于端口信息、队列优先级等信息灵活控制报文流量,实现更加精细化的流控,为用户提供多样化的服务质量保证。

本申请实施例提供的具体技术方案如下:

第一方面,本发明实施例提供了一种基于工业互联网现场层装置的拥塞控制方法,所述现场层装置包括堆叠芯片,所述堆叠芯片包括第一交换芯片,所述现场层装置包括现场总线通讯协议模块、工业流程控制管理模块、异构现场设备集成模块,所述工业流程控制管理模块用于信息监测和/或采集,并将监测和/或采集的信息发送至所述现场总线通讯协议模块,所述总线通讯协议模块基于该信息确定控制策略,并控制所述异构现场设备集成模块转发与所述控制策略的相关参数,实现对工业互联网系统相关设备的控制,所述方法包括:

所述工业流程控制管理模块基于监测和/或采集的信息确定所述第一交换芯片中第一端口的第一优先级队列处于拥塞状态;

所述现场总线通讯协议模块基于所述工业流程控制管理模块传输的确定所述第一交换芯片中第一端口的第一优先级队列处于拥塞状态的信息,生成拥塞控制信息ccm(congestioncontrolmechanism),其中,所述ccm携带所述第一交换芯片的芯片标识、所述第一端口的端口标识以及所述第一端口的第一优先级队列的拥塞信息,所述第一交换芯片包括至少一个端口,每个端口对应至少一个优先级队列;基于所述ccm,组装拥塞控制帧ccf(congestioncontrolframe),所述ccf中包括所述ccm以及生存时间ttl,所述ttl用于表征所述ccf可被转发的次数;

所述现场总线通讯协议模块控制所述异构现场设备集成模块将所述ccf通过堆叠端口发送至所述堆叠芯片中的第二交换芯片,以使得所述第二交换芯片能基于所述ccf停止调度发往所述第一交换芯片的第一端口的第一优先级队列的报文。

可能的实施方式中,在生成拥塞控制信息ccm之前,所述方法还包括:

统计在预设时间范围内调度至所述第一优先级队列的报文流量;

在所述报文流量大于预设阈值时,确定所述第一端口的所述第一优先级队列处于拥塞状态。

可能的实施方式中,在组装拥塞控制帧ccf时,所述方法还包括:

获得所述堆叠端口的带宽;

基于所述堆叠端口的带宽,确定所述ccf的传输带宽,其中,所述ccf的传输带宽为所述堆叠端口的带宽的n分之一,n为大于1的整数。

第二方面,本发明实施例提供了一种基于工业互联网现场层装置的拥塞控制方法,所述现场层装置包括堆叠芯片,所述堆叠芯片包括第二交换芯片,所述现场层装置包括现场总线通讯协议模块、工业流程控制管理模块、异构现场设备集成模块,所述工业流程控制管理模块用于信息监测和/或采集,并将监测和/或采集的信息发送至所述现场总线通讯协议模块,所述总线通讯协议模块基于该信息确定控制策略,并控制所述异构现场设备集成模块转发与所述控制策略的相关参数,实现对工业互联网系统相关设备的控制,所述方法包括:

所述工业流程控制管理模块接收通过堆叠端口传输至所述第二交换芯片的拥塞控制帧ccf,所述ccf为所述堆叠芯片中第一交换芯片发送的;

所述现场总线通讯协议模块对所述ccf进行解析,提取所述ccf中的拥塞控制信息ccm;

所述现场总线通讯协议模块基于所述ccm,确定所述第一交换芯片中的第一端口的第一优先级队列处于拥塞状态,停止所述第二交换芯片调度发往所述第一交换芯片的第一端口的第一优先级队列的报文。

可能的实施方式中,所述对所述ccf进行解析,提取所述ccf中的拥塞控制信息ccm,包括:

获取所述ccf中的ttl;

判断所述ttl是否大于0;

如果是,则对所述ccf进行解析,提取所述ccf中的拥塞控制信息ccm。

第三方面,本发明实施例提供了一种工业互联网现场层装置,包括堆叠芯片,交换芯片位于所述堆叠芯片中,所述现场层装置包括现场总线通讯协议模块、工业流程控制管理模块、异构现场设备集成模块,所述工业流程控制管理模块用于信息监测和/或采集,并将监测和/或采集的信息发送至所述现场总线通讯协议模块,所述总线通讯协议模块基于该信息确定控制策略,并控制所述异构现场设备集成模块转发与所述控制策略的相关参数,实现对工业互联网系统相关设备的控制,所述现场总线通讯协议模块具体包括:

所述工业流程控制管理模块基于监测和/或采集的信息确定所述堆叠芯片中第一交换芯片中第一端口的第一优先级队列处于拥塞状态;

所述现场总线通讯协议模块基于所述工业流程控制管理模块传输的确定所述第一交换芯片中第一端口的第一优先级队列处于拥塞状态的信息,生成拥塞控制信息ccm,其中,所述ccm携带所述第一交换芯片的芯片标识、所述第一端口的端口标识以及所述第一端口的第一优先级队列的拥塞信息,所述第一交换芯片包括至少一个端口,每个端口对应至少一个优先级队列;基于所述ccm,组装拥塞控制帧ccf,所述ccf中包括所述ccm以及生存时间ttl,所述ttl用于表征所述ccf可被转发的次数;

所述现场总线通讯协议模块控制所述异构现场设备集成模块将所述ccf通过堆叠端口发送至所述堆叠芯片中的第二交换芯片,以使得所述第二交换芯片能基于所述ccf停止调度发往所述第一交换芯片的第一端口的第一优先级队列的报文;

所述工业流程控制管理模块接收通过堆叠端口传输致所述第二交换芯片的拥塞控制帧ccf,所述ccf为所述堆叠芯片中第一交换芯片发送的;

所述现场总线通讯协议模块对所述ccf进行解析,提取所述ccf中的拥塞控制信息ccm;

所述现场总线通讯协议模块基于所述ccm,确定所述第一交换芯片中的第一端口的第一优先级队列处于拥塞状态,停止所述第二交换芯片调度发往所述第一交换芯片的第一端口的第一优先级队列的报文。

可能的实施方式中,所述工业流程控制管理模块还用于:

在产生拥塞信息之前,统计在预设时间范围内调度至所述第一优先级队列的报文流量;

在所述报文流量大于预设阈值时,确定所述第一端口的所述第一优先级队列处于拥塞状态。

可能的实施方式中,所述现场总线通讯协议模块还用于:

获得所述堆叠端口的带宽;

基于所述堆叠端口的带宽,确定所述ccf的传输带宽,其中,所述ccf的传输带宽为所述堆叠端口的带宽的n分之一,n为大于1的整数。

可能的实施方式中,所述分析子模块还用于:

判断所述第二ttl是否大于0;

如果是,则对所述第二ccf进行解析,提取所述ccf中的所述第二ccm。

第四方面,本发明实施例提供了一种现场层装置,包括:一个或多个处理器;以及一个或多个计算机可读介质,所述可读介质上存储有用于拥塞控制的程序,其中,所述程序被所述一个或多个处理器执行时,使得所述装置执行上述第一方面和第二方面中任一项的方法。

第五方面,本发明实施例提供了一个或多个计算机可读介质,所述可读介质上存储有用于拥塞控制的程序,其中,所述程序被一个或多个处理器执行时,使得现场层装置执行上述第一方面和第二方面中任一项的方法。

基于上述技术方案,本发明实施例中,位于堆叠芯片中的第一交换芯片在检测到第一端口的第一优先级队列处于拥塞状态时,产生拥塞控制信息,并组装生成拥塞控制ccf,通过堆叠端口发送给堆叠芯片中的第二交换芯片,第二交换芯片在接收到该ccf后,通过解析该ccf,提取ccm,获知第一交换芯片的第一端口的第一优先级队列处于拥塞状态,停止调度发往第一交换芯片的第一端口的第一优先级队列的报文。本发明实施例中的拥塞控制方法能够基于端口、优先级进行拥塞控制,有效解决了现有技术中对堆叠芯片中的交换芯片的拥塞控制不合理的技术问题,实现更加灵活且精确地对流量进行控制,使带宽资源得到最大限度的利用。

附图说明

图1a为本申请实施例一中工业互联网操作系统的功能架构图;

图1为本申请实施例一中应用于第一交换芯片的现场层装置的拥塞控制方法的流程图;

图2为本申请实施例一中ccf的结构示意图;

图3为本申请实施例一中采用环状组网的堆叠芯片结构示意图;

图4为本申请实施例一中的队列示意图;

图5为本申请实施例二中应用于第二交换芯片的现场层装置的拥塞控制方法的流程图;

图6为本申请实施例三中交换芯片的现场层装置的现场总线通讯协议模块的结构示意图;

图7为本申请实施例三中ccf在交换芯片a与交换芯片b间进行传输时的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在实际应用中,工业互联网操作系统是实现网络化工业控制、云工业控制、可视化工厂和工业大数据分析等的基础系统,也是实现控制信息流、管理信息流和供应链信息流之间交互融合的统一系统,是实现工业现场可控性的可靠保障。如图1a所示的工业互联网操作系统的功能架构图中,工业互联网操作系统至少包括:应用层、云控制层和现场层,其中,应用层至少包括:统一的工业建模标准模块、软件定义工业流程模块和工业可视化管理模块;云控制层至少包括:实时数据库、工业私有云平台和工业大数据分析平台;现场层至少包括:现场总线通讯协议模块、工业流程控制管理模块、异构现场设备集成模块和工业管理软件加载模块。此外,工业互联网操作系统还包括涵盖应用层、云控制层和现场层的工业数据安全模块。

对于集成各种异构现场设备模块,从芯片层面提供流量控制方法,解决多芯片堆叠应用中的拥塞控制问题。本发明设计一款能够通过标准以太网端口传递的拥塞数据帧,能够基于端口信息、队列优先级等信息灵活控制流量,实现更加精细化的流控,为用户提供多样化的服务质量保证,打造国产化自主可控的关键芯片。

为了能实现对芯片堆叠过程中的交换芯片的流量进行精确的拥塞控制,本申请实施例中,设计了一种基于工业互联网现场层装置的拥塞控制方法,应用于第一交换芯片中的现场层装置,所述第一交换芯片位于堆叠芯片中,所述现场层装置包括现场总线通讯协议模块、工业流程控制管理模块、异构现场设备集成模块,所述工业流程控制管理模块用于信息监测和/或采集,并将监测和/或采集的信息发送至所述现场总线通讯协议模块,所述总线通讯协议模块基于该信息确定控制策略,并控制所述异构现场设备集成模块转发与所述控制策略的相关参数,实现对工业互联网系统相关设备的控制,所述方法包括:

所述工业流程控制管理模块基于监测和/或采集的信息确定所述第一交换芯片中第一端口的第一优先级队列处于拥塞状态;

所述现场总线通讯协议模块基于所述工业流程控制管理模块传输的确定所述第一交换芯片中第一端口的第一优先级队列处于拥塞状态的信息,生成拥塞控制信息ccm,其中,所述ccm携带所述第一交换芯片的芯片标识、所述第一端口的端口标识以及所述第一端口的第一优先级队列的拥塞信息,所述第一交换芯片包括至少一个端口,每个端口对应至少一个优先级队列;基于所述ccm,组装拥塞控制帧ccf,所述ccf中包括所述ccm以及生存时间ttl,所述ttl用于表征所述ccf可被转发的次数;

所述现场总线通讯协议模块控制所述异构现场设备集成模块将所述ccf通过堆叠端口发送至所述堆叠芯片中的第二交换芯片,以使得所述第二交换芯片能基于所述ccf停止调度发往所述第一交换芯片的第一端口的第一优先级队列的报文。

实施例一

在本实施例中的一种基于工业互联网现场层装置的拥塞控制方法,所述现场层装置包括堆叠芯片,所述堆叠芯片包括第一交换芯片,如图1a所示,所述现场层装置包括现场总线通讯协议模块、工业流程控制管理模块、异构现场设备集成模块,所述工业流程控制管理模块用于信息监测和/或采集,并将监测和/或采集的信息发送至所述现场总线通讯协议模块,所述总线通讯协议模块基于该信息确定控制策略,并控制所述异构现场设备集成模块转发与所述控制策略的相关参数,实现对工业互联网系统相关设备的控制,拥塞控制方法包括如图1所示的步骤:

步骤101:所述工业流程控制管理模块基于监测和/或采集的信息确定所述第一交换芯片中第一端口的第一优先级队列处于拥塞状态;

步骤102:所述现场总线通讯协议模块基于所述工业流程控制管理模块传输的确定所述第一交换芯片中第一端口的第一优先级队列处于拥塞状态的信息,生成拥塞控制信息ccm,其中,所述ccm携带所述第一交换芯片的芯片标识、所述第一端口的端口标识以及所述第一端口的第一优先级队列的拥塞信息,所述第一交换芯片包括至少一个端口,每个端口对应至少一个优先级队列;基于所述ccm,组装拥塞控制帧ccf,所述ccf中包括所述ccm以及生存时间ttl,所述ttl用于表征所述ccf可被转发的次数;

步骤103:所述现场总线通讯协议模块控制所述异构现场设备集成模块将所述ccf通过堆叠端口发送至所述堆叠芯片中的第二交换芯片,以使得所述第二交换芯片能基于所述ccf停止调度发往所述第一交换芯片的第一端口的第一优先级队列的报文。

其中,确定第一交换芯片中第一端口的第一优先级队列处于拥塞状态可通过如下方式:

统计在预设时间范围内调度至所述第一优先级队列的报文流量;

在所述报文流量大于预设阈值时,确定所述第一端口的所述第一优先级队列处于拥塞状态。

在组装拥塞控制帧ccf时,所述方法还包括:获得所述堆叠端口的带宽;基于所述堆叠端口的带宽,确定所述ccf的传输带宽,其中,所述ccf的传输带宽为所述堆叠端口的带宽的n分之一,n为大于1的整数。

在ccf中需要设定ttl的初始值,以限定该ccf可被转发的次数,所以,在组装拥塞控制帧ccf时,所述方法还包括:获取所述堆叠芯片的组网结构;基于所述组网结构,确定所述ttl的初始值。

具体的,在本实施例中,现场层装置包括堆叠芯片,该堆叠芯片中包括第一交换芯片和第二交换芯片,该现场层装置的现场总线通讯协议模块中的qos子模块预先配置各端口的优先级队列以及判断优先级队列处于拥塞状态的第一预设阈值以及恢复至非拥塞状态的第二预设阈值,第一预设阈值大于第二预设阈值。当调度至该优先级队列的报文流量大于第一预设阈值时,确定该优先级队列处于拥塞状态,当调度至该优先级队列的报文流量小于第二预设阈值时,确定该优先级队列处于非拥塞状态。

比如:第一交换芯片具有32个端口,每个端口对应8个优先级队列,每个优先级队列设置有对应的预设阈值。第一端口可为32个端口中的任意一个,假设第一端口为端口1,第一交换芯片的端口1配置有优先级为0~7的队列,第一优先级队列可以是优先级为0~7中的任何一个队列,假设第一优先级队列为优先级为0的队列,优先级为0的队列对应的预设阈值为10,在qos模块检测到端口1的优先级为0的队列在预设时间范围内调度至该队列的报文流量为15,大于预设阈值10,第一交换芯片的现场层装置的现场总线通讯协议模块确定端口1的优先级为0的队列处于拥塞状态,产生对应的拥塞控制信息ccm。进而可以基于该ccm,组装生成ccf。在具体实施过程中,每个端口配置的优先级队列个数可根据实际情况进行设定,每个优先级队列对应的预设阈值也可根据实际情况进行设定,在此,本申请不作限定。

为了能实现对芯片堆叠过程中的交换芯片的流量进行精确的拥塞控制,本申请实施例中,设计了一种拥塞控制ccf,该帧的结构如图2所示。图2中各个域的说明如下:

dmac:目的mac地址,可设置为固定值0xffffffffffff,占用6字节;

smac:源mac地址,具体值可由用户配置,占用6字节;

type:报文类型,具体值可由用户配置,占用2字节;

ttl:生存时间,用于表征所述ccf可被转发的次数,ccf转发过程中,每经过一个芯片,该ttl值减1,占用1字节,ttl的初始值可根据实际组网情况确定,比如:堆叠芯片中包括5个交换芯片,采用环状组网的结构,ttl的初始值可设定为2,该ccf被转发2次即可将该ccf传播至堆叠芯片中其他4个交换芯片。

reserved:保留值,占用5字节;

ccm:拥塞控制信息,一个ccf包含n组ccm信息,n为配置的优先级队列的个数。每个ccm信息由交换芯片标识对应的掩码uid_mask(3bit)、交换芯片标识uid(useridentification)(5bit)和拥塞信息cci(congestioncontrolinformation)组成(32bit)。其中,uid为实际组网环境中的芯片标识,用于区分网络中的不同芯片,表明该ccm所属的芯片。uid_mask可用于屏蔽uid中的某些bit(1:屏蔽bit0;2:屏蔽bit1~bit0;3:屏蔽bit2~bit0;4:屏蔽bit3~bit0;0:所有bit均有效;5~7:reserved)。cci携带32个端口的拥塞信息,每个bit携带一个端口的拥塞信息,bit为1代表端口拥塞,bit为0代表端口未拥塞。ccf中的第0组ccm携带的是优先级为0的32个端口的拥塞信息,ccf中的第1组ccm携带的时优先级为1的32个端口的拥塞信息,以此类推,一个ccf总共携带n个优先级的32个端口的拥塞信息。

帧校验码fcs(framechecksequence):占用4字节。

进一步地,由于ccf在堆叠端口中进行传输时,会占用正常的数据报文的传输带宽。需要限制ccf的传输带宽,在本实施例中,ccf对应的传输带宽为堆叠端口的带宽的预设倍数,比如,ccf的传输带宽可以限制为堆叠端口的1/10带宽限制ccf的带宽,当然,ccf的传输带宽可根据实际需求进行设定,在此,本申请不做限定。这样,可以有效避免因ccf的传输占用较多的堆叠端口的带宽,导致正常报文传输受限的问题。

在具体实施过程中,现场总线通讯协议模块在确定第一交换芯片的第一端口的第一优先级队列处于拥塞状态时,按照上述ccm的格式生成指示第一端口的第一优先级队列处于拥塞状态的ccm,进而,按上述ccf格式生成ccf后,所述现场总线通讯协议模块控制所述异构现场设备集成模块将该ccf通过堆叠端口发送至堆叠芯片中的其他交换芯片,如:第二交换芯片,进而在第二交换芯片接收到该ccf时,现场总线通讯协议模块首先提取该ccf的ttl,在确定ttl的值大于0时,对该ccf进行解析。

在现场层装置的现场总线通讯协议模块对传输至第二交换芯片的ccf进行解析时,提取ccf中的ccm,获取ccm中的cci和uid,进而根据uid和cci,可以获知第一交换芯片的第一端口的第一优先级队列处于拥塞状态。比如:第一交换芯片包括32个端口,每个端口对应8个优先级队列,在端口1的优先级为0的队列处于拥塞状态时,端口1对应的标志位被置位为1,表明端口1出现拥塞,且端口1对应的优先级为0的队列的标志位也被置位为1,表明端口1中出现拥塞的是优先级为0的队列。第二交换芯片通过读取uid确定第一交换芯片出现拥塞,读取到端口1对应的标志位为1,确定第一交换芯片的端口1出现拥塞,读取端口1对应的优先级为0的队列的标志位为1,即可确定第一交换芯片的端口1对应的优先级为0的队列处于拥塞,进而,现场总线通讯协议模块控制第二交换芯片停止调度发往第一交换芯片的端口1对应的优先级为0的队列的报文。

为了能够更好地理解本实施例中的拥塞控制方法,下面给出一个完整的应用于堆叠芯片中的第一交换芯片的现场层装置的拥塞控制方法的示例。

多芯片堆叠组网场景如图3所示,五颗交换芯片进行堆叠,组成环状网络。每颗交换芯片采用a、b两个堆叠端口与其它两颗交换芯片相连。以交换芯片5为例,为使用拥塞控制功能,需做如下配置:

设置交换芯片5的uid值为5,ccf的ttl值为2,可以使ccf传递到交换芯片3和交换芯片1后不再继续传输,防止ccf在环路中循环;设置dmac值为0xffffffffffff,固定值;设置smac值为0x0180c2000000,该值可由用户灵活配置。

假设交换芯片5的普通端口0的优先级为0的报文发生阻塞,产生ccf在网络中的传播流程如下:

交换芯片5通过堆叠端口a和b分别传输ccf。

交换芯片4接收到ccf后,现场层装置的现场总线通讯协议模块检测到传输至交换芯片4的ccf的ttl值为2,则提取ccf中的ccm,将ccm发送给调度管理模块,基于ccm获知交换芯片5的端口0的优先级为0的报文发生阻塞,进而停止调度交换芯片4发往交换芯片5的端口0的优先级为0的报文,然后将ttl值减1,修改ccf中的ttl域,将ccf转发到交换芯片3。

交换芯片3接收到ccf后,现场层装置的现场总线通讯协议模块检测到传输至交换芯片3的ccf的ttl值为1,则提取ccf中的ccm,将ccm发送给调度管理模块,基于ccm获知交换芯片5的端口0的优先级为0的报文发生阻塞,进而停止调度交换芯片3往交换芯片5的端口0的优先级为0的报文。由于ttl值为1,交换芯片3将不再转发ccf给下一颗芯片交换芯片1。

同理,交换芯片2接收到ccf后,现场层装置的现场总线通讯协议模块检测到传输至交换芯片2的ttl值为2,则提取ccf中的ccm,将ccm发送给调度管理模块,基于ccm获知交换芯片5的端口0的优先级为0的报文发生阻塞,进而停止调度交换芯片2发往交换芯片5的端口0的优先级为0的报文,然后将ttl值减1,修改ccf中的ttl域,将ccf转发到交换芯片1。

交换芯片1接收到ccf后,现场层装置的现场总线通讯协议模块检测到传输至交换芯片1的ccf的ttl值为1,则提取ccf中的ccm,将ccm发送给调度管理模块,基于ccm获知交换芯片5的端口0的优先级为0的报文发生阻塞,进而停止调度交换芯片1往交换芯片5的端口0的优先级为0的报文,由于ttl值为1,交换芯片1将不再转发ccf给下一颗芯片交换芯片3。

进而,在交换芯片5的端口0的优先级为0在发生拥塞时,不是阻塞发往本芯片端口0的所有流量,仅流控堆叠芯片中其它芯片(包括芯片0本身)发往交换芯片5的端口0的优先级为0的队列的流量,而发往交换芯片5的端口0的优先级为1~7的流量可以正常发送。

所以,本实施例中的拥塞控制方法能够基于端口、优先级进行拥塞控制,有效解决了现有技术中对堆叠芯片中的交换芯片的拥塞控制不合理的技术问题,实现更加灵活且精确地对流量进行控制,使带宽资源得到最大限度的利用。

进一步,为了在对队列中的报文进行调度时,仅对完整报文进行调度,保证报文的连续性,精确控制已经发起调度请求但还未完成实际出队的cell的数量,降低缓存资源的消耗,在本实施例中,交换芯片中每个端口的队列如图4所示。队列中包含若干报文,而每一个报文中包含若干cell(元素)。队列中尾指针用于指向队列中最后一个cell。报文尾指针用于指向队列中最后一个完整报文的最后一个cell。调度头指针用于指向最新发起请求调度的cell。出队头指针用于指向最后一个完成调度的cell。报文调度头指针用于指向一个报文的第一个cell。这样,交换芯片就可以采用本申请实施例中的队列,在后续的步骤中,对报文进行相应的调度。

本申请实施例中,交换芯片对报文的调度具体流程如下:

监测队列的入队状态,确定所述入队状态表征报文入队时,对所述队列的报文尾指针进行更新,其中,所述报文尾指针用于指向所述队列中最后一个完整报文的最后一个单元cell;

计算所述队列的调度头指针与出队头指针的差值,获得调度差值,其中,所述调度头指针用于指向当前请求调度的cell,所述出队头指针用于指向最后一个完成调度的cell;

确定所述调度差值低于预设门限值,并且所述调度头指针小于所述报文尾指针时,对所述队列中的报文进行调度。

具体的,交换芯片中的调度模块监测队列的入队状态,确定入队状态表征报文入队时,将队列的尾指针进行更新,其中,尾指针用于指向队列中最后一个cell。然后,获取尾指针指向的cell的第一描述信息,并基于第一描述信息,确定尾指针指向的cell为一个报文的最后一个cell时,将报文尾指针指向尾指针指向的cell。这样,就可以通过尾指针确定队列中的最后一个cell,并通过报文尾指针确定队列中最后一个完整的报文,从而在后续的报文调度过程中,可以通过报文尾指针,仅对完整报文进行调度。

进而,交换芯片可以根据获得的调度差值,在后续发起调度请求时,精确控制已经发起调度请求但还未完成实际出队的cell的数量,从而降低缓存资源的消耗。

最后,交换芯片确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,基于调度头指针,确定调度头指针指向的cell,作为第一cell,并对第一cell的下一个cell发起调度请求,以及将调度头指针进行更新,指向第一cell的下一个cell。接着,交换芯片基于出队头指针,确定出队头指针指向的cell,作为第二cell,并确定第二cell的下一个cell完成调度时,将出队头指针进行更新,指向第二cell的下一个cell。然后,交换芯片基于更新后的调度头指针或/和更新后的出队头指针,对队列中的报文进行调度。这样,交换芯片就可以将出队头指针指向的cell至调度头指针指向的cell之间的各个cell,依次进行出队,完成调度。

本申请实施例中,通过报文尾指针确定队列的最后一个完整报文,从而可以仅对完整报文进行调度,保证了报文的连续性,以及通过队列的调度头指针与出队头指针的差值,可以精确控制已经发起调度请求但还未完成实际出队的cell的数量,从而降低了缓存资源的消耗。

实施例二

本实施例提供一种基于工业互联网现场层装置的拥塞控制方法,所述现场层装置包括堆叠芯片,所述堆叠芯片包括第二交换芯片,如图1a所示,所述现场层装置包括现场总线通讯协议模块、工业流程控制管理模块、异构现场设备集成模块,所述工业流程控制管理模块用于信息监测和/或采集,并将监测和/或采集的信息发送至所述现场总线通讯协议模块,所述总线通讯协议模块基于该信息确定控制策略,并控制所述异构现场设备集成模块转发与所述控制策略的相关参数,实现对工业互联网系统相关设备的控制,拥塞控制方法包括如图5所示的步骤:

步骤501:所述工业流程控制管理模块接收通过堆叠端口传输至所述第二交换芯片的拥塞控制帧ccf,所述ccf为所述堆叠芯片中第一交换芯片发送的;

步骤502:所述现场总线通讯协议模块对所述ccf进行解析,提取所述ccf中的拥塞控制信息ccm;

步骤503:所述现场总线通讯协议模块基于所述ccm,确定所述第一交换芯片中的第一端口的第一优先级队列处于拥塞状态,停止调度发往所述第一交换芯片的第一端口的第一优先级队列的报文。

其中,所述对所述ccf进行解析,提取所述ccf中的拥塞控制信息ccm,包括:

获取所述ccf中的ttl;

判断所述ttl是否大于0;

如果是,则对所述ccf进行解析,提取所述ccf中的拥塞控制信息ccm。

具体的,在本实施例中,现场层装置包括堆叠芯片,该堆叠芯片中包括第一交换芯片和第二交换芯片,该现场层装置的现场总线通讯协议模块中的qos子模块预先配置各端口的优先级队列以及判断优先级队列处于拥塞状态的第一预设阈值以及恢复至非拥塞状态的第二预设阈值,第一预设阈值大于第二预设阈值。当调度至该优先级队列的报文流量大于第一预设阈值时,确定该优先级队列处于拥塞状态,当调度至该优先级队列的报文流量小于第二预设阈值时,确定该优先级队列处于非拥塞状态。

比如:第一交换芯片具有32个端口,每个端口对应8个优先级队列,每个优先级队列设置有对应的预设阈值。第一端口可为32个端口中的任意一个,假设第一端口为端口1,第一交换芯片的端口1配置有优先级为0~7的队列,第一优先级队列可以是优先级为0~7中的任何一个队列,假设第一优先级队列为优先级为0的队列,优先级为0的队列对应的预设阈值为10,在qos模块检测到端口1的优先级为0的队列在预设时间范围内调度至该队列的报文流量为15,大于预设阈值10,第一交换芯片的现场层装置的现场总线通讯协议模块确定端口1的优先级为0的队列处于拥塞状态,产生对应的拥塞控制信息ccm。进而可以基于该ccm,组装生成ccf。在具体实施过程中,每个端口配置的优先级队列个数可根据实际情况进行设定,每个优先级队列对应的预设阈值也可根据实际情况进行设定,在此,本申请不作限定。

为了能实现对芯片堆叠过程中的交换芯片的流量进行精确的拥塞控制,本申请实施例中,设计了一种拥塞控制ccf,该帧的结构如图2所示。图2中各个域的说明如下:

dmac:目的mac地址,可设置为固定值0xffffffffffff,占用6字节;

smac:源mac地址,具体值可由用户配置,占用6字节;

type:报文类型,具体值可由用户配置,占用2字节;

ttl:生存时间,用于表征所述ccf可被转发的次数,ccf转发过程中,每经过一个芯片,该ttl值减1,占用1字节,ttl的初始值可根据实际组网情况确定,比如:堆叠芯片中包括5个交换芯片,采用环状组网的结构,ttl的初始值可设定为2,该ccf被转发2次即可将该ccf传播至堆叠芯片中其他4个交换芯片。

reserved:保留值,占用5字节;

ccm:拥塞控制信息,一个ccf包含n组ccm信息,n为配置的优先级队列的个数。每个ccm信息由交换芯片标识对应的掩码uid_mask(3bit)、交换芯片标识uid(useridentification)(5bit)和拥塞信息cci(congestioncontrolinformation)组成(32bit)。其中,uid为实际组网环境中的芯片标识,用于区分网络中的不同芯片,表明该ccm所属的芯片。uid_mask可用于屏蔽uid中的某些bit(1:屏蔽bit0;2:屏蔽bit1~bit0;3:屏蔽bit2~bit0;4:屏蔽bit3~bit0;0:所有bit均有效;5~7:reserved)。cci携带32个端口的拥塞信息,每个bit携带一个端口的拥塞信息,bit为1代表端口拥塞,bit为0代表端口未拥塞。ccf中的第0组ccm携带的是优先级为0的32个端口的拥塞信息,ccf中的第1组ccm携带的时优先级为1的32个端口的拥塞信息,以此类推,一个ccf总共携带n个优先级的32个端口的拥塞信息。

帧校验码fcs(framechecksequence):占用4字节。

进一步地,由于ccf在堆叠端口中进行传输时,会占用正常的数据报文的传输带宽。需要限制ccf的传输带宽,在本实施例中,ccf对应的传输带宽为堆叠端口的带宽的预设倍数,比如,ccf的传输带宽可以限制为堆叠端口的1/10带宽限制ccf的带宽,当然,ccf的传输带宽可根据实际需求进行设定,在此,本申请不做限定。这样,可以有效避免因ccf的传输占用较多的堆叠端口的带宽,导致正常报文传输受限的问题。

在具体实施过程中,现场总线通讯协议模块在确定第一交换芯片的第一端口的第一优先级队列处于拥塞状态时,按照上述ccm的格式生成指示第一端口的第一优先级队列处于拥塞状态的ccm,进而,按上述ccf格式生成ccf后,所述现场总线通讯协议模块控制所述异构现场设备集成模块将该ccf通过堆叠端口发送至堆叠芯片中的其他交换芯片,如:第二交换芯片,进而在第二交换芯片接收到该ccf时,现场总线通讯协议模块首先提取该ccf的ttl,在确定ttl的值大于0时,对该ccf进行解析。

在现场层装置的现场总线通讯协议模块对传输至第二交换芯片的ccf进行解析时,提取ccf中的ccm,获取ccm中的cci和uid,进而根据uid和cci,可以获知第一交换芯片的第一端口的第一优先级队列处于拥塞状态。比如:第一交换芯片包括32个端口,每个端口对应8个优先级队列,在端口1的优先级为0的队列处于拥塞状态时,端口1对应的标志位被置位为1,表明端口1出现拥塞,且端口1对应的优先级为0的队列的标志位也被置位为1,表明端口1中出现拥塞的是优先级为0的队列。第二交换芯片通过读取uid确定第一交换芯片出现拥塞,读取到端口1对应的标志位为1,确定第一交换芯片的端口1出现拥塞,读取端口1对应的优先级为0的队列的标志位为1,即可确定第一交换芯片的端口1对应的优先级为0的队列处于拥塞,进而,现场总线通讯协议模块控制第二交换芯片停止调度发往第一交换芯片的端口1对应的优先级为0的队列的报文。

为了能够更好地理解本实施例中的拥塞控制方法,下面给出一个完整的应用于堆叠芯片中的第一交换芯片的现场层装置的拥塞控制方法的示例。

多芯片堆叠组网场景如图3所示,五颗交换芯片进行堆叠,组成环状网络。每颗交换芯片采用a、b两个堆叠端口与其它两颗交换芯片相连。以交换芯片5为例,为使用拥塞控制功能,需做如下配置:

设置交换芯片5的uid值为5,ccf的ttl值为2,可以使ccf传递到交换芯片3和交换芯片1后不再继续传输,防止ccf在环路中循环;设置dmac值为0xffffffffffff,固定值;设置smac值为0x0180c2000000,该值可由用户灵活配置。

假设交换芯片5的普通端口0的优先级为0的报文发生阻塞,产生ccf在网络中的传播流程如下:

交换芯片5通过堆叠端口a和b分别传输ccf。

交换芯片4接收到ccf后,现场层装置的现场总线通讯协议模块检测到传输至交换芯片4的ccf的ttl值为2,则提取ccf中的ccm,将ccm发送给调度管理模块,基于ccm获知交换芯片5的端口0的优先级为0的报文发生阻塞,进而停止调度交换芯片4发往交换芯片5的端口0的优先级为0的报文,然后将ttl值减1,修改ccf中的ttl域,将ccf转发到交换芯片3。

交换芯片3接收到ccf后,现场层装置的现场总线通讯协议模块检测到传输至交换芯片3的ccf的ttl值为1,则提取ccf中的ccm,将ccm发送给调度管理模块,基于ccm获知交换芯片5的端口0的优先级为0的报文发生阻塞,进而停止调度交换芯片3往交换芯片5的端口0的优先级为0的报文。由于ttl值为1,交换芯片3将不再转发ccf给下一颗芯片交换芯片1。

同理,交换芯片2接收到ccf后,现场层装置的现场总线通讯协议模块检测到传输至交换芯片2的ttl值为2,则提取ccf中的ccm,将ccm发送给调度管理模块,基于ccm获知交换芯片5的端口0的优先级为0的报文发生阻塞,进而停止调度交换芯片2发往交换芯片5的端口0的优先级为0的报文,然后将ttl值减1,修改ccf中的ttl域,将ccf转发到交换芯片1。

交换芯片1接收到ccf后,现场层装置的现场总线通讯协议模块检测到传输至交换芯片1的ccf的ttl值为1,则提取ccf中的ccm,将ccm发送给调度管理模块,基于ccm获知交换芯片5的端口0的优先级为0的报文发生阻塞,进而停止调度交换芯片1往交换芯片5的端口0的优先级为0的报文,由于ttl值为1,交换芯片1将不再转发ccf给下一颗芯片交换芯片3。

进而,在交换芯片5的端口0的优先级为0在发生拥塞时,不是阻塞发往本芯片端口0的所有流量,仅流控堆叠芯片中其它芯片(包括芯片0本身)发往交换芯片5的端口0的优先级为0的队列的流量,而发往交换芯片5的端口0的优先级为1~7的流量可以正常发送。

实施例三

基于与实施例一与实施例二中拥塞控制方法同一发明构思,本实施例中提供了一种工业互联网现场层装置,包括堆叠芯片,交换芯片位于所述堆叠芯片中,如图1a所示,所述现场层装置包括现场总线通讯协议模块、工业流程控制管理模块、异构现场设备集成模块,所述工业流程控制管理模块用于信息监测和/或采集,并将监测和/或采集的信息发送至所述现场总线通讯协议模块,所述总线通讯协议模块基于该信息确定控制策略,并控制所述异构现场设备集成模块转发与所述控制策略的相关参数,实现对工业互联网系统相关设备的控制,所述现场总线通讯协议模块具体包括:

所述工业流程控制管理模块基于监测和/或采集的信息确定所述堆叠芯片中第一交换芯片中第一端口的第一优先级队列处于拥塞状态;

所述现场总线通讯协议模块基于所述工业流程控制管理模块传输的确定所述第一交换芯片中第一端口的第一优先级队列处于拥塞状态的信息,生成拥塞控制信息ccm,其中,所述ccm携带所述第一交换芯片的芯片标识、所述第一端口的端口标识以及所述第一端口的第一优先级队列的拥塞信息,所述第一交换芯片包括至少一个端口,每个端口对应至少一个优先级队列;基于所述ccm,组装拥塞控制帧ccf,所述ccf中包括所述ccm以及生存时间ttl,所述ttl用于表征所述ccf可被转发的次数;

所述现场总线通讯协议模块控制所述异构现场设备集成模块将所述ccf通过堆叠端口发送至所述堆叠芯片中的第二交换芯片,以使得所述第二交换芯片能基于所述ccf停止调度发往所述第一交换芯片的第一端口的第一优先级队列的报文;

所述工业流程控制管理模块接收通过堆叠端口传输致所述第二交换芯片的拥塞控制帧ccf,所述ccf为所述堆叠芯片中第一交换芯片发送的;

所述现场总线通讯协议模块对所述ccf进行解析,提取所述ccf中的拥塞控制信息ccm;

所述现场总线通讯协议模块基于所述ccm,确定所述第一交换芯片中的第一端口的第一优先级队列处于拥塞状态,停止所述第二交换芯片调度发往所述第一交换芯片的第一端口的第一优先级队列的报文。

具体的,如图6所示,所述现场总线通讯协议模块具体包括:

服务质量(qos)子模块601,在检测到堆叠芯片中的第一交换芯片中第一端口的第一优先级队列处于拥塞状态时,产生拥塞信息;

捕获(capture)子模块602,用于捕获所述qos模块产生的拥塞信息,生成拥塞控制信息第一ccm,其中,所述第一ccm携带所述交换芯片的芯片标识、所述第一端口的端口标识以及所述第一端口的第一优先级队列的拥塞信息;

生成(generate)子模块603,用于基于所述第一ccm,组装拥塞控制第一ccf,将所述第一ccf通过堆叠端口发送至所述堆叠芯片中的其他交换芯片,以使得接收到所述第一ccf的其他交换芯片能基于所述第一ccf停止调度发往所述交换芯片的第一端口的第一优先级队列的报文,其中,所述第一ccf中包括所述第一ccm以及第一生存时间ttl,所述第一ttl用于表征所述第一ccf可被转发的次数;

传输(transport)子模块604,用于接收所述堆叠芯片中上一颗交换芯片发送的第二ccf,获取所述第二ccf中的第二ttl,若所述第二ttl值大于1,修改所述第二ccf中的ttl域,将所述第二ttl值减1,然后将修改后的第二ccf转发到下一颗芯片;

分析(analyze)子模块605,用于解析所述第二ccf,提取所述第二ccf中的第二ccm;

调度(sch)子模块606,用于确定所述第二ccm所指示的交换芯片的第二端口的第二优先级队列处于拥塞状态,停止调度发往所述第二ccm指示的交换芯片的第二端口的第二优先级队列的报文以及停止调度发往本芯片的第一端口的第一优先级队列的报文。

其中,qos子模块601还用于:在产生拥塞信息之前,统计在第一预设时间范围内调度至所述第一优先级队列的报文流量;在所述报文流量大于预设阈值时,确定所述第一端口的所述第一优先级队列处于拥塞状态。

transport子模块604还用于:获得所述堆叠端口的带宽;基于所述堆叠端口的带宽,确定所述ccf的传输带宽,其中,所述ccf的传输带宽为所述堆叠端口的带宽的n分之一,n为大于1的整数。

所述生成子模块还用于:在组装所述第一ccf时,获取所述堆叠芯片的组网结构;基于所述组网结构,确定所述第一ttl的初始值。

所述分析子模块还用于:判断所述第二ttl是否大于0;如果是,则对所述第二ccf进行解析,提取所述ccf中的所述第二ccm。

具体的,在本发明实施例中,交换芯片中的qos子模块601,预先配置各端口的优先级队列以及判断优先级队列处于拥塞状态的第一预设阈值以及恢复至非拥塞状态的第二预设阈值,第一预设阈值大于第二预设阈值。当调度至该优先级队列的报文流量大于第一预设阈值时,确定该优先级队列处于拥塞状态,当调度至该优先级队列的报文流量小于第二预设阈值时,确定该优先级队列处于非拥塞状态。

比如:交换芯片具有32个端口,每个端口对应8个优先级队列,每个优先级队列设置有对应的预设阈值。如:qos子模块601配置交换芯片的端口1对应有优先级为0~7的队列,优先级为0的队列对应的预设阈值为10。在qos子模块601检测到端口1的优先级为0的队列在预设时间范围内调度至该队列的报文流量为15,大于预设阈值10,确定端口1的优先级为0的队列处于拥塞状态,产生拥塞信息。capture子模块602捕获所述qos子模块601产生的拥塞信息,根据该信息填充第一ccm。generate子模块603基于所述第一ccm,组装拥塞控制第一ccf。在具体实施过程中,每个端口配置的优先级队列个数可根据实际情况进行设定,每个优先级队列对应的预设阈值也可根据实际情况进行设定,在此,本申请不作限定。

为了能实现对芯片堆叠过程中的交换芯片的流量进行精确的拥塞控制,本申请实施例中,设计了一种拥塞控制ccf,该帧的结构如图2所示。图2中各个域的说明如下:

dmac:目的mac地址,可设置为固定值0xffffffffffff,占用6字节;

smac:源mac地址,可由用户配置,占用6字节;

type:报文类型,自定义,占用2字节;

ttl:生存时间,用于表征所述ccf可被转发的次数,ccf转发过程中,每经过一个芯片,该ttl值减1,占用1字节,ttl的初始值可根据实际组网情况确定,比如:堆叠芯片中包括5个交换芯片,采用环状组网的结构,ttl的初始值可设定为2,该ccf被转发2次即可将该ccf传播至堆叠芯片中其他4个交换芯片。

reserved:保留值,占用5字节;

ccm:拥塞控制信息,一个ccf包含n组ccm信息,n为配置的优先级队列的个数。每组ccm信息由交换芯片标识对应的掩码uid_mask(3bit)、交换芯片标识uid(5bit)和拥塞信息cci组成(32bit)。其中,uid为实际组网环境中的芯片标识,用于区分网络中的不同芯片,表明该ccm所属的芯片。uid_mask可用于屏蔽uid中的某些bit(1:屏蔽bit0;2:屏蔽bit1~bit0;3:屏蔽bit2~bit0;4:屏蔽bit3~bit0;0:所有bit均有效;5~7:reserved)。cci携带32个端口的拥塞信息,每个bit携带一个端口的拥塞信息,bit为1代表端口拥塞,bit为0代表端口未拥塞。ccf中的第0组ccm携带的是优先级为0的32个端口的拥塞信息,ccf中的第1组ccm携带的时优先级为1的32个端口的拥塞信息,以此类推,一个ccf共携带n个优先级的32个端口的拥塞信息。

帧校验码fcs:占用4字节。

进一步地,由于ccf在堆叠端口中进行传输时,会占用正常的数据报文的传输带宽。需要限制ccf的传输带宽,在本实施例中,ccf对应的传输带宽为堆叠端口的带宽的预设倍数,比如,ccf的传输带宽可以限制为堆叠端口的1/10带宽限制ccf的带宽,当然,ccf的传输带宽可根据实际需求进行设定,在此,本申请不做限定。这样,可以有效避免因ccf的传输占用较多的堆叠端口的带宽,导致正常报文传输受限的问题。

在具体实施过程中,在第一交换芯片确定第一端口的第一优先级队列处于拥塞状态时,generate子模块603按照上述ccm的格式生成指示第一端口的第一优先级队列处于拥塞状态的第一ccm,进而,按上述ccf格式生成第一ccf后,将所述第一ccf通过堆叠端口发送至所述堆叠芯片中的其他交换芯片,以使得接收到所述第一ccf的其他交换芯片能基于所述第一ccf停止调度发往所述交换芯片的第一端口的第一优先级队列的报文。

transport子模块604还用于接收堆叠芯片中的其他交换芯片发送的第二ccf,如:接收到第二交换芯片发送的第二ccf。在transport子模块604接收到第二ccf后,获取第二ccf的第二ttl,若第二ttl值大于1,将第二ttl值减1,修改第二ccf中的第二ttl域,然后将该第二ccf转发到下一颗交换芯片,并将该第二ccf转发至本芯片中的analyze子模块605,analyze子模块605首先提取该第二ccf的第二ttl,在确定第二ttl的值大于0时对该第二ccf进行解析,提取第二ccf中的第二ccm,将解析出的第二ccm发送给sch子模块606。sch子模块606基于该第二ccm,确定第二ccm所指示的交换芯片的第二端口的第二优先级队列处于拥塞状态,停止调度发往所述第二ccm指示的交换芯片的第二端口的第二优先级队列的报文。

analyze子模块605在对第二ccf进行解析时,提取第二ccf中的第二ccm,获取第二ccm中的cci和uid,进而根据uid和cci,可以获知第二交换芯片的对应端口的对应优先级队列处于拥塞状态。比如:第二交换芯片包括32个端口,每个端口对应8个优先级队列,在端口3的优先级为4的队列处于拥塞状态时,端口3对应的标志位被置位为1,表明端口3出现拥塞,且端口3对应的优先级为4的队列的标志位也被置位为1,表明端口3中出现拥塞的是优先级为4的队列。本实施例中的交换芯片通过读取uid确定第二交换芯片出现拥塞,读取到端口3对应的标志位为1,确定第二交换芯片的端口3出现拥塞,读取端口3对应的优先级为4的队列的标志位为1,即可确定第二交换芯片的端口3对应的优先级为4的队列处于拥塞。进而,sch子模块606停止调度发往第二交换芯片的端口3对应的优先级为4的队列的报文。

为了能够更好地理解本实施例中的拥塞控制方法,下面给出交换芯片a和交换芯片b中间ccf的转发过程。

如图7所示,porta和portb为两个堆叠端口,交换芯片a中某端口(可以是堆叠端口,也可以是普通端口)发生拥塞,当交换芯片a检测到某端口发生拥塞时,交换芯片a中的capture子模块捕获来自oqs子模块的端口和优先级队列信息,根据该信息填充ccm信息。

交换芯片a中的capture子模块将ccm信息发送至sch子模块,由sch子模块停止对送往本芯片的拥塞端口的相应流量的调度。交换芯片a中的capture子模块将ccm信息发送至generate子模块,由generate子模块将本芯片的ccm信息组装成ccf,通过堆叠端口发送给交换芯片b。

交换芯片b接收到ccf后,发送至transport子模块和analyze子模块,transport子模块在该ccf的ttl值大于1时,将ttl值减1,修改ccf中的ttl域,然后将该ccf转发到下一颗芯片。analyze子模块在ttl值大于0时,则对该ccf进行解析,将解析出的ccm信息发送给sch子模块,sch子模块根据解析出的uid、端口号和优先级队列信息,停止调度发往交换芯片ad的相应端口和优先级队列的报文。

进一步,为了在对队列中的报文进行调度时,仅对完整报文进行调度,保证报文的连续性,精确控制已经发起调度请求但还未完成实际出队的cell的数量,降低缓存资源的消耗,在本实施例中,交换芯片中每个端口的队列如图4所示。队列中包含若干报文,而每一个报文中包含若干cell(元素)。队列中尾指针用于指向队列中最后一个cell。报文尾指针用于指向队列中最后一个完整报文的最后一个cell。调度头指针用于指向最新发起请求调度的cell。出队头指针用于指向最后一个完成调度的cell。报文调度头指针用于指向一个报文的第一个cell。这样,交换芯片就可以采用本申请实施例中的队列,在后续的步骤中,对报文进行相应的调度。

本申请实施例中,交换芯片中sch子模块对报文的调度具体流程如下:

监测队列的入队状态,确定所述入队状态表征报文入队时,对所述队列的报文尾指针进行更新,其中,所述报文尾指针用于指向所述队列中最后一个完整报文的最后一个单元cell;

计算所述队列的调度头指针与出队头指针的差值,获得调度差值,其中,所述调度头指针用于指向当前请求调度的cell,所述出队头指针用于指向最后一个完成调度的cell;

确定所述调度差值低于预设门限值,并且所述调度头指针小于所述报文尾指针时,对所述队列中的报文进行调度。

具体的,交换芯片中的调度子模块监测队列的入队状态,确定入队状态表征报文入队时,将队列的尾指针进行更新,其中,尾指针用于指向队列中最后一个cell。然后,获取尾指针指向的cell的第一描述信息,并基于第一描述信息,确定尾指针指向的cell为一个报文的最后一个cell时,将报文尾指针指向尾指针指向的cell。这样,就可以通过尾指针确定队列中的最后一个cell,并通过报文尾指针确定队列中最后一个完整的报文,从而在后续的报文调度过程中,可以通过报文尾指针,仅对完整报文进行调度。

进而,sch子模块可以根据获得的调度差值,在后续发起调度请求时,精确控制已经发起调度请求但还未完成实际出队的cell的数量,从而降低缓存资源的消耗。

最后,sch子模块确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,基于调度头指针,确定调度头指针指向的cell,作为第一cell,并对第一cell的下一个cell发起调度请求,以及将调度头指针进行更新,指向第一cell的下一个cell。接着,第一交换芯片基于出队头指针,确定出队头指针指向的cell,作为第二cell,并确定第二cell的下一个cell完成调度时,将出队头指针进行更新,指向第二cell的下一个cell。然后,第一交换芯片基于更新后的调度头指针或/和更新后的出队头指针,对队列中的报文进行调度。这样,第一交换芯片就可以将出队头指针指向的cell至调度头指针指向的cell之间的各个cell,依次进行出队,完成调度。

本申请实施例中,通过报文尾指针确定队列的最后一个完整报文,从而可以仅对完整报文进行调度,保证了报文的连续性,以及通过队列的调度头指针与出队头指针的差值,可以精确控制已经发起调度请求但还未完成实际出队的cell的数量,从而降低了缓存资源的消耗。实施例四

本实施例提供一种现场层装置,包括:一个或多个处理器;以及一个或多个计算机可读介质,所述可读介质上存储有用于拥塞控制的程序,其中,所述程序被所述一个或多个处理器执行时,使得所述装置执行如实施例一或实施例二中的拥塞控制方法。

实施例五

本实施例提供一个或多个计算机可读介质,所述可读介质上存储有用于拥塞控制的程序,其中,所述程序被一个或多个处理器执行时,使得现场层装置执行如实施例一或实施例二中的拥塞控制方法。

基于上述技术方案,本发明实施例中,位于堆叠芯片中的第一交换芯片在检测到第一端口的第一优先级队列处于拥塞状态时,产生拥塞控制信息,并组装生成拥塞控制ccf,通过堆叠端口发送给堆叠芯片中的第二交换芯片,第二交换芯片在接收到该ccf后,通过解析该ccf,提取ccm,获知第一交换芯片的第一端口的第一优先级队列处于拥塞状态,停止调度发往第一交换芯片的第一端口的第一优先级队列的报文。本发明实施例中的拥塞控制方法能够基于端口、优先级进行拥塞控制,有效解决了现有技术中对堆叠芯片中的交换芯片的拥塞控制不合理的技术问题,实现更加灵活且精确地对流量进行控制,使带宽资源得到最大限度的利用。

本领域内的技术人员应明白,本申请实施例中的实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例中可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例中可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例中是参照根据本申请实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。

显然,本领域的技术人员可以对本申请实施例中实施例进行各种改动和变型而不脱离本申请实施例中实施例的精神和范围。这样,倘若本申请实施例中实施例的这些修改和变型属于本申请实施例中权利要求及其等同技术的范围之内,则本申请实施例中也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1