掌桥专利:专业的专利平台
掌桥专利
首页

一种确定反压水线值的方法和相关装置

文献发布时间:2024-04-18 19:53:33


一种确定反压水线值的方法和相关装置

技术领域

本发明涉及通信技术领域,尤其涉及一种确定反压水线值的方法和相关装置。

背景技术

通信网络通常包括多个网络设备,网络设备通过转发工作站(例如主机或服务器等)的报文,实现不同工作站之间的通信。其中,网络设备通常具有多个出端口,每个出端口具有多个不同优先级的队列,每个出端口的一个队列用于缓存需要经由该出端口转发的一种优先级的报文。网络设备对于接收到的每个报文,通常会将该报文缓存至与该报文匹配的队列,并以一定速率发送该队列中的报文,网络设备在接收侧和发送侧都采用了流量控制装置,即反压机制,以防止超过网络设备的处理能力而导致丢包。

当前通信芯片下行出口调度存在接收基于优先级的流量控制(priority-basedflowcontrol,PFC)反压时,基于静态水线算法生成对前级模块的反压信息,对于前级流量突发不大且是非周期性PFC场景时,该方案能够很好的满足性能要求,但对于前级模块流量突发较大,同时具有周期性低优先级PFC且发送短包(例如64字节短包)时,基于静态水线算法所计算得到的静态水线值将导致高低优先级的报文出现头部堵塞(headofline)问题,即低优先级PFC导致输出缓存队列长时间起端口级PFC给前级模块,从而使得高优先级流量也被压住,使得端口断流,以至于流量无法满足性能要求。

因此,如何准确的确定反压水线值,从而避免PFC流控不均衡导致流量断流是目前亟待解决的问题。

发明内容

本发明实施例公开了一种确定反压水线值的方法和相关装置,能够提高缓存利用率,准确的确定反压水线值,避免PFC流控不均衡导致的端口断流。

第一方面,本申请提供一种确定反压水线值的方法,所述方法包括:针对网络设备的每个通信端口设置队列计数值,所述通信端口包括至少两个不同优先级的队列,所述队列计数值用于统计所述至少两个不同优先级队列的数据占用的输出队列缓存的大小;对所述至少两个不同优先级队列的每一个优先级队列设置缓存分配值,所述缓存分配值指示所述每一个优先级队列缓存数据的能力;对所述每个通信端口设置空间保留值,所述空间保留值指示通信端口的保留空间大小,所述空间保留值为所述至少两个不同优先级队列的空间保留值之和;对所述每个通信端口设置端口水线值α,所述α指示通信端口内高优先队列能够占据的最大空间值;根据所述队列计数值、所述缓存分配值、所述空间保留值、所述α,计算得到所述通信端口的高优先级反压水线值。

在本申请提供的方案中,采用动态门限因子和保留空间配置,以取代静态高低水线配置,能够提高缓存利用率,准确确定反压水线值,避免PFC流控不均衡导致的端口断流,扩展了适用场景。

结合第一方面,在第一方面的一种可能的实现方式中,对所述每个通信端口设置端口低水线偏移量,所述端口低水线偏移量指示低优先级反压产生的门限;根据所述高优先级反压水线值和所述端口低水线偏移量,计算得到低优先级反压水线值。

在本申请提供的方案中,利用预先设置的端口低水线偏移量,可以进一步准确得到端口低优先级反压水线值。

结合第一方面,在第一方面的一种可能的实现方式中,对所述每个通信端口设置队列水线值cos_α,所述cos_α用于产生通信端口内的队列反压;根据所述高优先反压水线值、所述空间保留值、所述队列计数值、所述缓存分配值、所述cos_α,计算得到通信端口内的队列反压水线值。

在本申请提供的方案中,利用预先设置的队列水线值产生端口内的队列反压,从而可以进一步根据参数值计算得到通信端口内的队列反压水线值。

结合第一方面,在第一方面的一种可能的实现方式中,采用高优先级反压水线值计算公式计算所述通信端口的高优先级反压水线值,其中,所述高优先级反压水线值计算公式为:

port_th_h=α*(pdo_fifo_total_size(4k)-total_rsv_th-∑port∑(Max[(port_cos_cnt-cos_rsv_th),0])<<β)+port_rsv_th,

其中,所述port_th_h表示高优先级反压水线值,所述pdo_fifo_total_size(4k)表示所述通信设备的带宽,所述total_rsv_th表示所述通信设备的全局空间保留值,所述total_rsv_th为每个通信端口空间保留值之和,所述port_cos_cnt表示队列计数值,所述cos_rsv_th表示所述缓存分配值,所述β表示共享空间使用量的修正值,所述port_rsv_th表示所述通信端口的空间保留值。

在本申请提供的方案中,由于port_th_h是实时进行更新的,相当于静态水线算法所确定的水线值来说,本申请实施例所提供的算法可以根据队列缓存占用情况动态调整反压门限,保证所得到的水线值更加准确,充分利用缓存,避免了端口断流等不良影响,极大的扩展了适用场景。

结合第一方面,在第一方面的一种可能的实现方式中,采用低优先级反压水线值计算公式计算所述低优先级反压水线值,其中,所述低优先级反压水线值计算公式为:

port_th_1=port_th_h-low_th_offset,

其中,所述port_th_1表示低优先级反压水线值,所述low_th_offset表示端口低水线偏移量。

结合第一方面,在第一方面的一种可能的实现方式中,采用队列反压水线值计算公式计算所述通信端口内的队列反压水线值,其中,所述队列反压水线值计算公式为:

port_cos_th=port_cos_α*(port_th_h-port_rsv_th-∑(Max[(port_cos_cnt-cos_rsv_th),0])<<β)+cos[x]_rsv_th,

其中,所述port_cos_th表示队列反压水线值,所述port_cos_α表示队列水线值,所述port_rsv_th表示所述通信端口的空间保留值,所述port_cos_cnt表示队列计数值,所述cos_rsv_th表示所述缓存分配值,所述β表示共享空间使用量的修正值,所述cos[x]_rsv_th表示所述通信端口中优先级为x的队列的缓存分配值。

在本申请提供的方案中,port_cos_th也是根据队列缓存占用情况进行实时调整和变化的,其值随着队列缓存占用情况的改变而发生改变,从而可以完成对其进行动态调整的目的,保证所确定得到的水线值更加准确,有效扩展了适用场景。

第二方面,本申请提供了一种确定反压水线值的装置,该装置可以是中继设备,也可以是中继设备内的芯片。该装置具有上述第一方面涉及网络设备的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,该硬件或软件包括一个或多个与上述功能相对应的单元。

在一种可能的设计中,该通信装置包括:设置模块和计算模块,所述设置模块,用于对网络设备的每个通信端口设置队列计数值,所述通信端口包括至少两个不同优先级的队列,所述队列计数值用于统计所述至少两个不同优先级队列的数据占用的输出队列缓存的大小;对所述至少两个不同优先级队列的每一个优先级队列设置缓存分配值,所述缓存分配值指示所述每一个优先级队列缓存数据的能力;对所述每个通信端口设置空间保留值,所述空间保留值指示通信端口的保留空间大小,所述空间保留值为所述至少两个不同优先级队列的空间保留值之和;对所述每个通信端口设置端口水线值α,所述α指示通信端口内高优先队列能够占据的最大空间值;所述计算模块,用于根据所述队列计数值、所述缓存分配值、所述空间保留值、所述α,计算得到所述通信端口的高优先级反压水线值。

第三方面,本申请提供了一种网络设备,所述网络设备包括处理器和存储器,所述存储器调用所述存储器中的程序代码以执行上述第一方面以及结合上述第一方面中的任意一种实现方式的方法。

第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令可以由处理电路上的一个或多个处理器执行,当其在计算机上运行时,使得计算机执行上述第一方面或者第一方面的任意一个可选的实现方式所描述的方法。

第五方面,本申请提供了一种包含指令的计算机程序产品,其在计算机上运行时,使得计算机执行上述第一方面或者第一方面的任意一个可选的实现方式所描述的方法,该计算机产品可全部或部分的存储于封装于处理器当中的存储介质上,还可以全部或部分的存储在封装于处理器之外的存储介质中。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种PSTM系统架构示意图;

图2是本申请实施例提供的一种头部阻塞现象的示意图;

图3是本申请实施例提供的一种确定反压水线值的方法的流程示意图;

图4是本申请实施例提供的一种确定反压水线值装置的结构示意图;

图5是本申请实施例提供的一种网络设备的结构示意图。

具体实施方式

下面结合附图对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。

首先,结合附图对本申请中所涉及的部分用语和相关技术进行解释说明,以便于本领域技术人员理解。

基于优先级的流量控制(priority-basedflowcontrol,PFC)是对传统流控暂停机制的一种增强,与传统的流控机制相比,当出现拥塞时传统流控会阻止一条链路上的所有流量,而PFC允许在一条以太网链路上创建8个虚拟通道,并为每条虚拟通道指定一个优先等级(cos),允许单独暂停和重启其中任意一条虚拟通道,同时允许其他虚拟通道的流量无中断通过。

静态门限(staticthreshold)是指在判断流量反压或者丢弃时,基于静态配置值来计算的反压或丢弃门限。

动态门限(dynamicthreshold)是指在判断流量反压或者丢弃时,基于当前缓存占用情况根据一定算法动态计算的反压或者丢弃门限。

共享缓存(sharedbuffer)是指在进行缓存使用时,缓存空间不只是静态分配给队列,而是可以在多个队列间共享使用。

头部阻塞(headofline,HOL)一般在流量转发交换系统中用于描述多个端口或队列的流量在发往同一个目的地时由于头部报文竞争失败,导致后面的流量无法发往空闲目的地被阻塞的情况,在本申请中,可以理解为低优先级反压导致整个端口起反压从而影响到高优先流量。

线路侧介质访问控制汇聚层(linesidemediaaccesscontrolaggregation,LMAG)是一种芯片术语,局域网的数据链路层分为逻辑链路层(logicallinkcontrollayer,LLC)和介质访问控制层(mediaaccesscontrol,MAC)两个子层,MAC属于LLC下的一个子层,用于解决局域网中共用信道的使用产生竞争时,如何分配信道的使用权问题,线路控制、出错通知、帧的传递顺序和可选择的流量控制也在这一子层实现。

目前通信芯片在PUP协议调度管理(PUP scheduletrafficmanagement,PSTM)架构下PFC存在严重的HOL问题,LMAG侧传输过来的低优先级PFC将导致流量队列管理(trafficqueuemanagement,TQM)模块输出缓存队列长时间起端口级PFC给前级入口队列调度(ingressqueuescheduling,IQSC)模块,高优先级流量也将被压住从而导致TQM端口断流,如图1所示,其示出了一种PSTM系统架构图,地址管理模块(addressmanagement,ADM)对接收到的报文进行地址管理,存储有信元描述符(managecelldescriptor,MCD),一站式共用缓存模块(onestopsharedmemory,OSM)存储所接收到的报文中的数据,PSTM子系统中包括IQSC模块、入口调度(ingressscheduling,ISC)模块、出口调度(engressscheduling,ESC)模块、出口队列调度(engressqueuescheduling,EQSC)模块、TQM模块和中央信元缓存模块(control MCD buffer,CMB)模块,ISC与TQM之间可以进行交互以完成相关功能,例如ISC可以向TQM发送数据预入队通知和查询请求,TQM可以向ISC发送数据入队成功反馈、入队请求和出队事件等,当需要进行入队操作时,IQSC依次向ISC、ESC和EQSC发送入队请求,当需要进行出队操作时,EQSC则依次向ESC、ISC和IQSC下发额度(credit)。当PSTM子系统接收LMAG侧的低优先级PFC报文后,将压制TQM、IQSC和EQSC低优先级队列调度,低优先级报文在TQM输出队列中积压,逐步生成TQM到IQSC的低优先级PFC,当LMAG低优先级PFC撤销后,EQSC到IQSC的低优先级过冲很大,TQM的输出缓存将很快被全部占用,同时TQM输出队列突发导致给后级OSM的数据也会很多,从而导致OSM到TQM的端口长度(lengthofport,LP)反压一直存在,使得TQM无法输出报文,TQM的输出缓存队列一直满足目的端口(targetport)PFC反压置起条件导致端口长时间断流,如图2所示,在前几个周期中,目的端口0(tp0)可以正常的向外发送报文,但在后面的周期中由于LP反压的存在,导致tp0出现断流现象,严重影响了流量性能。

为了避免出现上述情况,需要合理设置并确定TQM的反压水线值。当前TQM输出队列缓存都采用静态水线算法来确定TQM的反压水线值,在一种可能的实现方式中,TQM输出队列的每个TP维护9个计数器(counter),一个用于对TP整体进行计数,其它的用于对8个不同的优先级队列进行计数,当有MCD入队时加1,反之则减1,对每个TP配置两个水线,分别为较大端口反压水线值TP_big_hi和较小端口反压水线值TP_small,对每个优先级队列也配置两个水线,分别为较大队列反压水线值TP_COS_big和较小队列反压水线值TP_COS_small,当整体计数值大于较小端口反压水线值且队列计数值大于较小队列反压水线值,即(TP_cnt>TP_small)且(TP_COS_cnt>TP_COS_small)时,TQM将产生优先级反压,即产生对应的TP COS PFC,由于在大部分场景中,多条PFC流共享TP带宽,共享TP缓存,因此整个TP的缓存并不是最坏情况的8倍,TP_small默认按1倍端口速率*报文往返时延(round-triptime,RTT)进行配置,TP_COS_small默认按25%端口速率*RTT进行配置;或者是,当整体计数值小于或等于较小端口反压水线值且队列计数值大于较大队列反压水线值,即(TP_cnt≤TP_small)且(TP_COS_cnt>TP_COS_big)时,TQM也将产生优先级反压,这里是为了解决一条一条流单独传送,单独起PFC的极端情况(cornercase),避免某一个优先级的队列占用整个TP缓存产生报文数据输出(partdateroutput,PDO)PFC,TP_COS_big默认按50%端口速率*RTT配置;特别的,当整体计数值大于较大端口反压水线值,即TP_cnt>TP_big_hi时,TQM将产生TP整体反压(即端口反压),TP_big_hi默认按3倍端口速率*RTT进行配置。

可以看出,上述利用静态水线算法确定水线时,仅仅只考虑了IQSC到PDO的RTT时间路径上的过冲,并未考虑EQSC以及IQSC的桶深带来的credit突发,导致水线值设置过程,此外,当前级流量突发很大时没有充分利用现有PDO缓存资源进行突发吸纳。

基于上述,本申请提供了一种确定反压水线值的方法,通过在接收到PFC反压时,将空闲的缓存资源共享利用,提升反压水线值,动态调整反压门限,提高缓存利用率,避免PFC流控不均衡导致端口断流。

本申请实施例的技术方案可以应用于任何需要解决反压生成不均衡的通信系统中,例如基于PSTM架构的通信系统,只要该系统存在反压生成不均衡导致出现流量丢包和端口断流等问题。

本申请实施例的系统架构可以参照上述图1,本申请实施例涉及的网络设备可以是支持PSTM架构的通信芯片或插置了上述通信芯片的服务器、交换机、路由器等,本申请实施例所涉及的通信端口可以是TQM模块的通信端口,下面以从LMAG接收周期性低优先级PFC为例,对本申请所提供的确定反压水线值的方法进行进一步说明。

结合图1所示的示意图,下面将结合图3详细描述本申请实施例提供的确定反压水线值的方法。图3中所描述的网络设备和通信端口可以分别对应图1中的所示的TQM模块和TQM模块的通信端口,如图3所示,该方法包括但不限于以下步骤:

S301:针对网络设备的每个通信端口设置队列计数值。

具体地,TQM输出队列的每个TP维护9个counter,其中一个用于对TP自身进行整体计数,余下的分别对TP下的8个不同的优先级队列进行计数,当有对应的MCD入队时,计数器执行加1,当有对应的MCD出队时计数器执行减1。

每一个优先级队列都对应一个队列计数值(即port_cos_cnt),该值可以记录不同优先级队列的数据所占用的TQM输出队列缓存量。应理解,该值是需要不断进行更新的,其具有时效性,只要存在相对应的入队或出队操作,该值都将发生改变。

S302:对每一个优先级队列设置缓存分配值。

具体地,在事先可以为每一个优先级队列设置缓存分配值,即为每一个优先级队列分配一个保留空间,以用于缓存数据,该值可以指示每一个优先级队列缓存数据的能力,若当某一个优先级队列的队列计数值超过缓存分配值,即需要缓存的数据量超过该优先级队列对应的保留空间大小时,则需要利用通信端口内的共享空间以缓存多余的数据,队列计数值与缓存分配值之差即为该优先级队列所占据的共享空间的大小,示例性的,某一个优先级队列的队列计数值为10M比特,缓存分配值为8M比特,那么该优先级队列所占用的共享空间为2M比特。

同理,当队列计数值与缓存分配值之差小于或等于0,则认为没有占用共享空间,进一步可以计算得到整个通信端口内所占用的共享空间大小,即将差值小于0的看作是0,将各个差值加起来之和就是整个通信端口内所占用的共享空间大小,由于当前存在8个优先级队列,需要先进行比较,再进行差值8,4,2,1收敛,所以共需要5级加法器。

S303:对每个通信端口设置空间保留值。

具体地,实时记录每个通信端口的空间保留值,其大小为该端口下各个优先级队列的空间保留值之和,各个优先级队列的空间保留值为各个优先级队列未完全使用的缓存分配值的剩余部分,所有端口的空间保留值之和即为全局保留空间,容易理解,通过这种方式,可以使得不同端口的不同优先级队列共享网络设备的缓存资源,极大的提高了网络设备的缓存利用率。

S304:对每个通信端口设置端口水线值α。

具体地,对每个通信端口都需要设置一个α,该α对应端口内高优先级能占据的最大空间值,用来产生对应的端口级的高优先级反压,在本申请实施例中,所述α的值优选为1。

S305:根据所述队列计数值、所述缓存分配值、所述空间保留值、所述α,计算得到所述通信端口的高优先级反压水线值。

具体地,在得到队列计数值和缓存分配值之后,可以得到每一个优先级队列的共享空间占用值,从而进一步得到每个通信端口内的共享空间占用值以及全局共享空间占用值,然后再根据空间保留值可以得到全局空间保留值,之后再结合α就可以计算得到通信端口的高优先级反压水线值。

进一步的,在得到上述各个参数值以后,可以利用下述公式1计算得到通信端口的高优先级反压水线值,其中,公式1为:

其中,所述port_th_h表示高优先级反压水线值,所述pdo_ifo_total_size(4k)表示所述通信设备的带宽,所述total_rsv_th表示所述通信设备的全局空间保留值,所述total_rsv_th为每个通信端口空间保留值之和,所述port_cos_cnt表示队列计数值,所述cos_rsv_th表示所述缓存分配值,所述β表示共享空间使用量的修正值,用来对可使用空间进行缩小操作,本申请中β的值优选为0,其取值也可以是1、2或3,本申请对此不作限定,该值可以对全局共享空间占用值进行左移0-3比特,即乘以1-8,所述port_rsv_th表示所述通信端口的空间保留值。

此外,由于全局共享空间占用值计算比较复杂,可以采用反向计算的方式进行简化,维护一个总使用份额计数值来替代全局共享空间占用值,当存在入队时,首先判断优先级队列是否占用了共享空间,若是的话,则将总使用份额计数值执行加1操作,否则不变;当存在出队时,也判断优先级队列是否使用的共享空间,若是则将总使用份额计数值执行减1操作,否则不变。

需要说明的是,对于port_th_h的计算是需要实时更新的,并不是在计算得到一个port_th_h之后就不再进行计算,该算法处于一直运行的状态中,每当有入队或出队动作时,则需要重新计算一次port_th_h的值,对其进行更新,并用来产生反压等操作。

可以理解,由于port_th_h是实时进行更新的,相当于静态水线算法所确定的水线值来说,本申请实施例所提供的算法可以根据队列缓存占用情况动态调整反压门限,保证所得到的水线值更加准确,充分利用缓存,避免了端口断流等不良影响,极大的扩展了适用场景。

在一种可能的实现方式中,对每个通信端口设置端口低水线偏移量,所述端口低水线偏移量指示低优先级反压产生的门限;根据所述高优先级反压水线值和所述端口低水线偏移量,计算得到低优先级反压水线值。

具体地,在获取到通信端口的可占用高水线后,还需要计算通信端口内每个优先级队列的可占用量,该水线需要寄存前序高优先级反压水线值,同时还需要一个端口低水线偏移量,用来指示低优先级反压产生的门限,从而最终利用该端口低水线偏移量计算得到通信端口的低优先级反压水线值。

进一步的,可以利用下述公式2计算得到通信端口的低优先级反压水线值,其中,公式2为:

port_th_1=port_th_h-low_th_offset 公式2

其中,所述port_th_1表示低优先级反压水线值,所述low_th_offset表示端口低水线偏移量,本申请中low_th_offset优选为50。

在一种可能的实现方式中,对每个通信端口设置队列水线值cos_α,所述cos_α用于产生通信端口内的队列反压;根据所述高优先反压水线值、所述空间保留值、所述队列计数值、所述缓存分配值、所述cos_α,计算得到通信端口内的队列反压水线值。

具体地,在得到每个优先级队列的缓存分配值之后,可以进一步得到通信端口的缓存分配值,其大小为各个优先级队列的缓存分配值之和,然后根据队列计数值和缓存分配值从而进一步得到每个通信端口的共享空间占用值,之后再结合cos_α就可以计算得到通信端口内的队列反压水线值。

进一步的,在得到上述各个参数值以后,可以利用下述公式3计算得到通信端口内的队列反压水线值,其中,公式3为:

其中,所述port_cos_th表示队列反压水线值,所述port_cos_α表示队列水线值,所述port_rsv_th表示所述通信端口的空间保留值,所述port_cos_cnt表示队列计数值,所述cos_rsv_th表示所述缓存分配值,所述β表示共享空间使用量的修正值,所述cos[x]_rsv_th表示所述通信端口中优先级为x的队列的缓存分配值。

可以看出,port_cos_th也是根据队列缓存占用情况进行实时调整和变化的,其值随着队列缓存占用情况的改变而发生改变,从而可以完成对其进行动态调整的目的,保证所确定得到的水线值更加准确,有效扩展了适用场景。

为了便于更好的实施本申请实施例的上述方案,相应地,下面还提供用于配合实施上述方案的相关装置。

参见图4,图4为本申请实施例提供的一种确定反压水线值装置的结构示意图,该装置可以是上述图3所述的方法实施例中的网络设备,可以执行图3所述的确定反压水线值的方法实施例中以网络设备为执行主体的方法和步骤。如图4所示,该装置400包括设置模块410和计算模块420。其中,

设置模块410,用于对网络设备的每个通信端口设置队列计数值,所述通信端口包括至少两个不同优先级的队列,所述队列计数值用于统计所述至少两个不同优先级队列的数据占用的输出队列缓存的大小;对所述至少两个不同优先级队列的每一个优先级队列设置缓存分配值,所述缓存分配值指示所述每一个优先级队列缓存数据的能力;对所述每个通信端口设置空间保留值,所述空间保留值指示通信端口的保留空间大小,所述空间保留值为所述至少两个不同优先级队列的空间保留值之和;对所述每个通信端口设置端口水线值α,所述α指示通信端口内高优先队列能够占据的最大空间值;

计算模块420,用于根据所述队列计数值、所述缓存分配值、所述空间保留值、所述α,计算得到所述通信端口的高优先级反压水线值。

作为一个实施例,所述设置模块410,还用于对所述每个通信端口设置端口低水线偏移量,所述端口低水线偏移量指示低优先级反压产生的门限;所述计算模块420,还用于根据所述高优先级反压水线值和所述端口低水线偏移量,计算得到低优先级反压水线值。

作为一个实施例,所述设置模块410,还用于对所述每个通信端口设置队列水线值cos_α,所述cos_α用于产生通信端口内的队列反压;所述计算模块420,还用于根据所述高优先反压水线值、所述空间保留值、所述队列计数值、所述缓存分配值、所述cos_α,计算得到通信端口内的队列反压水线值。

作为一个实施例,所述计算模块420,具体用于:采用高优先级反压水线值计算公式计算所述通信端口的高优先级反压水线值,其中,所述高优先级反压水线值计算公式为:

port_th_h=α*(pdo_fifo_total_size(4k)-total_rsv_th-∑port∑(Max[(port_cos_cnt-cos_rsv_th),0])<<β)+port_rsv_th,

其中,所述port_th_h表示高优先级反压水线值,所述pdo_fifo_total_size(4k)表示所述通信设备的带宽,所述total_rsv_th表示所述通信设备的全局空间保留值,所述total_rsv_th为每个通信端口空间保留值之和,所述port_cos_cnt表示队列计数值,所述cos_rsv_th表示所述缓存分配值,所述β表示共享空间使用量的修正值,所述port_rsv_th表示所述通信端口的空间保留值。

作为一个实施例,所述计算模块420,具体用于:采用低优先级反压水线值计算公式计算所述低优先级反压水线值,其中,所述低优先级反压水线值计算公式为:

port_th_1=port_th_h-low_th_offset,

其中,所述port_th_1表示低优先级反压水线值,所述low_th_offset表示端口低水线偏移量。

作为一个实施例,所述计算模块420,具体用于:采用队列反压水线值计算公式计算所述通信端口内的队列反压水线值,其中,所述队列反压水线值计算公式为:

port_cos_th=port_cos_α*(port_th_h-port_rsv_th-∑(Max[(port_cos_cnt-cos_rsv_th),0])<<β)+cos[x]_rsv_th,

其中,所述port_cos_th表示队列反压水线值,所述port_cos_α表示队列水线值,所述port_rsv_th表示所述通信端口的空间保留值,所述port_cos_cnt表示队列计数值,所述cos_rsv_th表示所述缓存分配值,所述β表示共享空间使用量的修正值,所述cos[x]_rsv_th表示所述通信端口中优先级为x的队列的缓存分配值。

需要说明的是,上述装置的结构仅仅作为一种示例,不应构成具体限定,可以根据需要对该装置中的各个模块进行增加、减少或合并。此外,该装置中的各个模块的操作和/或功能是为了实现上述图3所描述的方法的相应流程,为了简洁,在此不再赘述。

参见图5,图5是本申请实施例提供的一种网络设备的结构示意图。如图5所示,该网络设备500包括:处理器510、通信接口520以及存储器530,所述处理器510、通信接口520以及存储器530通过内部总线540相互连接。应理解,该网络设备500可以是中继设备或中继芯片。

所述处理器510可以由一个或者多个通用处理器构成,例如中央处理器(centralprocessing unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。

总线540可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述总线540可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但不表示仅有一根总线或一种类型的总线。

存储器530可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器530也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器530还可以包括上述种类的组合。

需要说明的是,网络设备500的存储器530中存储了确定反压水线值装置400的各个模块对应的代码,处理器510执行这些代码实现了确定反压水线值装置400的各个模块的功能,即执行了S301-S305的方法。

本申请还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,当该计算机程序被处理器执行时,可以实现上述方法实施例中记载的任意一种的部分或全部步骤。

本发明实施例还提供一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行任意一种确定反压水线值的方法的部分或全部步骤。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

相关技术
  • 一种压水堆稳压器压力和水位的耦合强度的确定方法、装置
  • 一种相机姿态信息确定的方法及相关装置
  • 一种物料出库数据确定的方法以及相关装置
  • 确定反压水线值的方法和装置
  • 确定反压水线值的方法和装置
技术分类

06120116336158