一种数据帧存储切换的装置及方法

文档序号:1003496 发布日期:2020-10-23 浏览:8次 >En<

阅读说明:本技术 一种数据帧存储切换的装置及方法 (Device and method for data frame storage switching ) 是由 梁世江 杨彦波 娄非志 于 2020-06-10 设计创作,主要内容包括:本发明公开了一种数据帧存储切换的装置及方法,涉及数据存储技术领域。该方法包括:当各端口需要将数据帧读出时,根据端口DDR资源占用计数、端口OCB资源占用计数、端口的缓存门限配置值,产生多等级的端口抢占请求;对产生的多等级的端口抢占请求进行判决仲裁,得到仲裁结果;根据得到的仲裁结果,将各端口数据帧送入对应的DDR缓存或OCB缓存或进行阻塞。本发明能实现内部缓存和外部缓存的动态切换,提高设备的存储带宽和容量,且使用成本低,满足实际应用需求。(The invention discloses a device and a method for switching data frame storage, and relates to the technical field of data storage. The method comprises the following steps: when each port needs to read out the data frame, generating a multi-level port preemption request according to the port DDR resource occupation count, the port OCB resource occupation count and the cache threshold configuration value of the port; carrying out judgment arbitration on the generated multi-level port preemption requests to obtain an arbitration result; and sending the data frame of each port to a corresponding DDR buffer or OCB buffer or blocking according to the obtained arbitration result. The invention can realize the dynamic switching of the internal cache and the external cache, improve the storage bandwidth and the capacity of the equipment, has low use cost and meets the requirement of practical application.)

一种数据帧存储切换的装置及方法

技术领域

本发明涉及数据存储技术领域,具体来讲是一种数据帧存储切换的装置及方法。

背景技术

目前HGU(Home Gateway Unit,家庭网关单元)设备在接入网中获得了大规模应用,这些设备需要为客户提供支持多种协议的PON(Passive Optical Network,无源光纤网络)接入,并随着接入带宽的不断提高,传统的数据存储方式已无法满足吞吐量的需求。

在数据通信中,有些应用场景需要缓存大量的数据帧,采用芯片内部缓存(OCB,OnChip Buffer),受限于芯片面积和成本控制,容量往往不能满足需求。此时,通常采用扩展芯片外部缓存的方式,如DDR(Double Data Rate,双倍数据速率)缓存,来满足容量的需求,但受限于DDR位宽、工作频率和效率损失等因素,存储带宽会存在不能满足特殊应用场景的情况。

如在XGSPON(10-Gigabit-Capable Symmetric Passive Optical Network,10吉比特对称无源光网络)HGU设备中,设备规格要求下行能够缓存1000个1518字节的数据帧,上行能够缓存DBA(Dynamically Bandwidth Assignment,动态带宽分配)响应间隔内的数据帧,且上行和下行最大流量均为10Gbps。采用OCB缓存虽带宽可满足需求,但缓存容量过大会导致芯片面积和成本过高,采用外部缓存如DDR1066,16BIT的总线位宽最多可提供约34G的读写带宽,考虑进开销和效率损失,实际可用的存储带宽更低,提高DDR规格来满足需求同样会造成芯片和系统成本增加。

现有相关技术虽提到在数据存储时可采用内部缓存和外部缓存共存的方式来提高吞吐量,但需要基于端口固定选择内部缓存或者外部缓存中的一种,如在HGU设备中上行端口选择OCB缓存方式,下行端口选择DDR缓存方式。这种方案虽然可以满足某些场景的需求,但针对于如上行和下行均对缓存帧个数有要求的场景并不能满足。

因此,在内部缓存和外部缓存共存的场景下,如何高效的利用存储带宽和容量,是本领域技术人员亟待解决的问题。

发明内容

本发明的目的是为了克服上述背景技术的不足,提供一种数据帧存储切换的装置及方法,能实现内部缓存和外部缓存的动态切换,提高设备的存储带宽和容量,且使用成本低,满足实际应用需求。

为达到以上目的,本发明提供一种数据帧存储切换的装置,包括端口切换判决模块、判决仲裁模块、DDR读写控制模块和OCB读写控制模块;

所述端口切换判决模块,用于:根据端口DDR资源占用计数、端口OCB资源占用计数、端口的缓存门限配置值,产生多等级的端口抢占请求;根据判决仲裁模块反馈的仲裁结果,将各端口数据帧送入对应的DDR读写控制模块或OCB读写控制模块或进行阻塞;

所述判决仲裁模块,用于:对端口切换判决模块产生的多等级的端口抢占请求,进行判决仲裁,并将仲裁结果反馈端口切换判决模块;

所述DDR读写控制模块,用于:统计各端口的DDR资源占用计数;控制DDR缓存的数据写入和读出;

所述OCB读写控制模块,用于:统计各端口的OCB资源占用计数并送至端口切换判决模块;控制OCB缓存的数据写入和读出。

在上述技术方案的基础上,所述端口的缓存门限配置值包括:OCB缓存门限配置值和DDR缓存门限配置值;OCB缓存门限配置值为单门限配置值,DDR缓存门限配置值为多等级门限配置值;

所述端口切换判决模块产生多等级的端口抢占请求,具体包括以下流程:将各端口的端口OCB资源占用计数与各端口的OCB缓存门限配置值进行比较,为其中超过OCB缓存门限配置值的端口,产生最低级别的端口抢占请求;将剩余端口的端口DDR资源占用计数与各自端口的多等级DDR缓存门限配置值进行比较,若端口DDR资源占用计数大于第N级DDR缓存门限配置值,则为该端口产生第N级的端口抢占请求,N为自然数。

在上述技术方案的基础上,所述判决仲裁模块在进行判决仲裁时,采用分组绝对优先级的方式:将各端口相同等级的端口抢占请求划分为一组,组与组之间按照绝对优先级的方式进行仲裁选取,同一组内各端口之间的优先级根据指定策略进行配置,且组内同样按照绝对优先级的方式进行仲裁选取;被选中的端口将获得切换许可、保持许可和阻塞许可中的一种,作为仲裁结果。

在上述技术方案的基础上,该装置还包括端口输入缓存模块,其用于:基于端口缓存输入的数据帧,当端口缓存到指定数量的数据帧后请求端口切换判决模块处理。

在上述技术方案的基础上,各端口在数据帧输入和数据帧被读出时,所述OCB读写控制模块、所述DDR读写控制模块将分别更新各端口的OCB资源占用计数和DDR资源占用计数。

本发明还提供一种数据帧存储切换的方法,包括以下步骤:

当各端口需要将数据帧读出时,根据端口DDR资源占用计数、端口OCB资源占用计数、端口的缓存门限配置值,产生多等级的端口抢占请求;

对所述多等级的端口抢占请求进行判决仲裁,得到仲裁结果;

根据所述仲裁结果,将各端口数据帧送入对应的DDR缓存或OCB缓存或进行阻塞。

在上述技术方案的基础上,所述端口的缓存门限配置值包括:OCB缓存门限配置值和DDR缓存门限配置值;OCB缓存门限配置值为单门限配置值,DDR缓存门限配置值为多等级门限配置值;

所述根据端口DDR资源占用计数、端口OCB资源占用计数、端口的缓存门限配置值,产生多等级的端口抢占请求,具体流程包括:将各端口的端口OCB资源占用计数与各端口的OCB缓存门限配置值进行比较,为其中超过OCB缓存门限配置值的端口,产生最低级别的端口抢占请求;将剩余端口的端口DDR资源占用计数与各自端口的多等级DDR缓存门限配置值进行比较,若端口DDR资源占用计数大于第N级DDR缓存门限配置值,则为该端口产生第N级的端口抢占请求,N为自然数。

在上述技术方案的基础上,对所述多等级的端口抢占请求进行判决仲裁时,采用分组绝对优先级的方式:将各端口相同等级的端口抢占请求划分为一组,组与组之间按照绝对优先级的方式进行仲裁选取,同一组内各端口之间的优先级根据指定策略进行配置,且组内同样按照绝对优先级的方式进行仲裁选取;被选中的端口将获得切换许可、保持许可和阻塞许可中的一种,作为仲裁结果。

在上述技术方案的基础上,在产生多等级的端口抢占请求之前,还包括以下操作:基于端口缓存输入的数据帧,当端口缓存到指定数量的数据帧后,请求将数据帧读出。

在上述技术方案的基础上,该方法还包括以下操作:各端口在数据帧输入和数据帧被读出时,实时更新各端口的OCB资源占用计数和DDR资源占用计数。

本发明的有益效果在于:

本发明中,可根据各端口流量以及各端口可配置的缓存门限,产生多等级的端口抢占请求;对各端口产生的多等级的端口抢占请求进行判决仲裁,可产生切换、保持和阻塞三种中的一种许可,作为仲裁结果;根据不同的仲裁结果,将各端口的数据帧送入对应的DDR缓存或OCB缓存或进行阻塞,从而实现了内部缓存和外部缓存的动态存储切换。不但充分利用了内部缓存的大带宽和外部缓存的大容量的优势,有效提高了设备整体的数据存储能力;而且,无需采用高规格的外部存储器件,使用成本低,满足了实际应用需求。

附图说明

图1为本发明实施例中数据帧存储切换的装置的结构框图;

图2为本发明实施例中判决仲裁模块将各端口抢占请求划分为组的示意图;

图3为本发明实施例中判决仲裁流程的示意图;

图4为本发明实施例中数据帧存储切换的方法的流程图;

图5为本发明另一实施例中数据帧存储切换的方法的流程图。

具体实施方式

随着HGU和OLT(Optical Line Terminal,光线路终端)设备数据存储带宽和容量需求的不断提高,传统的数据缓存架构已无法满足新的需求。单纯采用芯片内部缓存虽然带宽可以满足需求,但是大容量势必会造成芯片面积和成本过高。单独采用外部缓存(如DDR缓存)虽然容量可以满足需求,但受限于外部缓存的效率损失和开销,在达到内部缓存相同的带宽时,往往需要更高规格的外部器件来实现,采用高规格的外部存储器件同样会造成系统成本过高。

当前已有相关技术采用内部缓存和外部缓存共存的方式来达到满足带宽和容量的目的,如在设备中根据端口对带宽和容量的需求不同,将对容量需求大的端口数据固定写入外部缓存,将对带宽需求大的端口数据写入内部缓存,此方式可在特定场景下达到带宽和容量的平衡。但当所有端口对带宽和容量均需求严格时,采用内部缓存和外部缓存固定划分的方式并不能满足需求。

针对在内部缓存和外部缓存共存的场景下,如何高效的利用存储带宽和容量的问题,本发明旨在提供一种数据帧存储切换的装置及方法,能实现内部缓存和外部缓存的动态切换,以提高设备的存储带宽和容量,且使用成本低,满足实际应用需求。

为了达到上述目的,本发明的主要设计思路为:根据各端口流量(端口DDR资源占用计数、端口OCB资源占用计数)以及各端口可配置的缓存门限,产生多等级的端口抢占请求;对各端口产生的多等级的端口抢占请求进行判决仲裁,并产生切换、保持和阻塞三种中的一种许可,作为仲裁结果;根据不同的仲裁结果,将各端口的数据帧送入对应的DDR缓存或OCB缓存或进行阻塞。与现有技术中,采用内部缓存和外部缓存固定划分的方式相比,本方案可实现内部缓存和外部缓存的动态存储切换,充分利用内部缓存的大带宽和外部缓存的大容量的优势,有效提高设备整体的数据存储能力。

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合说明书附图以及具体的实施例对本发明的技术方案进行详细的说明。

但需说明的是:接下来要介绍的示例仅是一些具体的例子,而不作为限制本发明的实施例必须为如下具体的步骤、数值、条件、数据、顺序等。本领域技术人员可以通过阅读本说明书来运用本发明的构思来构造本说明书中未提到的更多实施例。

实施例一

参见图1所示,本实施例提供了一种数据帧存储切换的装置,包括端口切换判决模块、判决仲裁模块、DDR读写控制模块和OCB读写控制模块。

其中,端口切换判决模块,用于:当各端口需要将数据帧读出时,根据DDR读写控制模块送入的端口DDR资源占用计数、OCB读写控制模块送入的端口OCB资源占用计数、端口的缓存门限配置值,产生多等级的端口抢占请求;根据判决仲裁模块反馈的仲裁结果,将各端口数据帧送入对应的DDR读写控制模块或OCB读写控制模块或进行阻塞。

本实施例中,将端口DDR资源占用计数、端口OCB资源占用计数等效计量为端口流量,即根据端口的DDR流量来表示端口DDR资源占用计数,根据端口的OCB流量来表示端口OCB资源占用计数。另外,端口的缓存门限配置值为可配置的预设值,包括端口的OCB缓存门限配置值和端口的DDR缓存门限配置值。其中,端口的OCB缓存门限配置值为单门限配置值,根据各端口流量按比例进行配置,以保证各端口基本带宽的需求;端口的DDR缓存门限配置值为多等级门限配置值,以便可产生多等级的端口抢占请求。

判决仲裁模块,用于:对端口切换判决模块产生的多等级的端口抢占请求,进行判决仲裁,并将仲裁结果反馈给端口切换判决模块。具体来说,本实施例中,判决仲裁模块会产生切换、保持和阻塞三种中的一种许可,作为仲裁结果。端口切换判决模块根据判决仲裁模块反馈的仲裁结果,将各端口数据帧送入对应的DDR读写控制模块或OCB读写控制模块或进行阻塞时,包括以下几种处理情况:

1)端口原写入DDR缓存

现得到切换许可的仲裁结果,则将该端口数据帧送入OCB读写控制模块,即切换写入OCB缓存;

现得到保持许可的仲裁结果,则将该端口数据帧送入DDR读写控制模块,即保持写入DDR缓存;

现得到阻塞许可的仲裁结果,则对该端口数据帧进行阻塞处理,即进行数据反压;

2)端口原写入OCB缓存

现得到切换许可的仲裁结果,则将该端口数据帧送入DDR读写控制模块,即切换写入DDR缓存;

现得到保持许可的仲裁结果,则将该端口数据帧送入OCB读写控制模块,即保持写入OCB缓存;

现得到阻塞许可的仲裁结果,则对该端口数据帧进行阻塞处理,即进行数据反压。

DDR读写控制模块,用于:统计各端口的DDR资源占用计数并送至端口切换判决模块;控制DDR缓存的数据写入和读出。实际应用中,作为优选的实施方式,该DDR读写控制模块还可用于预缓存需要写入DDR的数据帧,以提高DDR的接口效率。

OCB读写控制模块,用于:统计各端口的OCB资源占用计数并送至端口切换判决模块;控制OCB缓存的数据写入和读出。与DDR读写控制模块相似,实际应用中,作为优选的实施方式,该OCB读写控制模块还可用于预缓存需要写入OCB的数据帧,以提高OCB的接口效率。

通过上述描述可知,本实施例中,端口切换判决模块可根据各端口流量(端口DDR资源占用计数、端口OCB资源占用计数)以及各端口可配置的缓存门限,产生多等级的端口抢占请求;判决仲裁模块会对各端口产生的多等级的端口抢占请求进行判决仲裁,并产生切换、保持和阻塞三种中的一种许可,作为仲裁结果;端口切换判决模块可根据判决仲裁模块反馈的仲裁结果,将各端口数据帧送入对应的DDR读写控制模块或OCB读写控制模块或进行阻塞,从而实现COB缓存和DDR缓存的动态存储切换,提高了设备的存储带宽和容量。并且,该方案无需采用高规格的外部存储器件,使用成本低,满足了实际应用需求。

进一步地,作为一种可选的实施方式,如图1所示,该装置还包括端口输入缓存模块。该端口输入缓存模块,用于:基于端口缓存输入的数据帧,当端口缓存到指定数量的数据帧后请求端口切换判决模块处理(即需要将数据帧写入缓存)。

进一步地,作为一种可选的实施方式,该端口切换判决模块产生多等级的端口抢占请求,具体包括以下流程:

步骤1、将各端口的端口OCB资源占用计数与各端口的OCB缓存门限配置值进行比较,为其中超过OCB缓存门限配置值的端口,产生最低级别的端口抢占请求;

步骤2、将剩余端口的端口DDR资源占用计数与各自端口的多等级DDR缓存门限配置值进行比较,若端口DDR资源占用计数大于第N级DDR缓存门限配置值,则为该端口产生第N级的端口抢占请求,N为自然数。

举例来说,假设有端口0、端口1、端口2和端口3四个端口;端口0原写入OCB缓存,端口1、端口2和端口3原写入DDR缓存。其中,端口0:OCB缓存门限为10,0级DDR缓存门限为0,1级DDR缓存门限为20,2级DDR缓存门限为30,3级DDR缓存门限为40;端口1:OCB缓存门限为20,0级DDR缓存门限为0,1级DDR缓存门限为30,2级DDR缓存门限为40,3级DDR缓存门限为50;端口2:OCB缓存门限为30,0级DDR缓存门限为0,1级DDR缓存门限为40,2级DDR缓存门限为50,3级DDR缓存门限为60;端口3:OCB缓存门限为40,0级DDR缓存门限为0,1级DDR缓存门限为50,2级DDR缓存门限为60,3级DDR缓存门限为70。

假设在某时刻,各端口的OCB资源占用计数、DDR资源占用计数分别如下:

端口0:OCB资源占用计数为12,DDR资源占用计数为15;

端口1:OCB资源占用计数为18,DDR资源占用计数为25;

端口2:OCB资源占用计数为28,DDR资源占用计数为65;

端口3:OCB资源占用计数为38,DDR资源占用计数为75。

那么,产生多等级的端口抢占请求的具体流程可如下:

先将四个端口的端口OCB资源占用计数与各端口的OCB缓存门限配置值进行比较,其中端口0的OCB资源占用计数超过其OCB缓存门限配置值(12>10),则为端口0产生最低级别的端口抢占请求,即0级的端口抢占请求。

然后,将剩余的端口1、2、3的端口DDR资源占用计数与各自端口的多等级DDR缓存门限配置值进行分别比较,其中,端口1的DDR资源占用计数大于其0级DDR缓存门限(25>0),则为端口1产生0级的端口抢占请求;端口2的DDR资源占用计数大于其3级DDR缓存门限(65>60),则为端口2产生3级的端口抢占请求;端口3的DDR资源占用计数大于其3级DDR缓存门限(75>70),则为端口3产生3级的端口抢占请求。

另外,实际应用中,各端口在数据输入和数据被读出时,OCB读写控制模块、DDR读写控制模块需要为各端口维护基于OCB缓存和DDR缓存的统计信息,即实时更新统计各端口的OCB资源占用计数和DDR资源占用计数。

实施例二

本实施例提供的一种数据帧存储切换的装置,其基本结构与实施例一相同,不同之处在于,作为一种优选的实施方式,本实施例中,判决仲裁模块在对各端口产生的多等级的端口抢占请求进行判决仲裁时,采用分组绝对优先级的方式:将各端口相同等级的端口抢占请求划分为一组,组与组之间按照绝对优先级的方式进行仲裁选取,同一组内各端口之间的优先级可灵活配置,且组内同样按照绝对优先级的方式进行仲裁选取,被选中的端口将获得相应的许可。具体来说,所述判决仲裁模块采用分组绝对优先级的方式进行判决仲裁,包括以下操作:

步骤一、判决仲裁模块将各端口相同等级的端口抢占请求划分为一组,组与组之间按照DDR缓存门限配置值越高,该组优先级越高的顺序排列;组内的各端口优先级按照指定策略进行配置。该指定策略可根据具体需求进行灵活设置,如按照端口号大小配置优先级或者将端口优先级设计为软件可配置等,本实施例不做具体限定。

具体来说,如图2所示,假设端口切换判决模块根据DDR资源占用计数、OCB资源占用计数和可配置的缓存门限配置值,会为各端口产生0、1、2……或M级的端口抢占请求,那么判决仲裁模块会将端口0、1、2……N的相同等级的端口抢占请求划分到一个组内,M个级别的组之间按照DDR缓存门限配置值越高,该组优先级越高的顺序排列(如图2所示,DDR缓存门限配置值越高,该组优先级越高,表明DDR资源占用高需要优先切换到OCB缓存,则对应的DDR切换优先级越高、DDR保持优先级越低;相反,DDR缓存门限配置值越低,该组优先级越低,表明DDR资源占用少最需要被保持写入DDR缓存,则对应的DDR保持优先级越高、DDR切换优先级越低)。同一个组内的各端口优先级则按照指定策略进行配置。

举例来说,还是以实施例一中的实例为例,假设当前端口0产生0级的端口抢占请求,端口1也产生0级的端口抢占请求,端口2产生3级的端口抢占请求,端口3也产生3级的端口抢占请求。那么,将端口0和端口1划分在第0组,将端口2和端口3划分在第3组。由于组与组之间按照DDR缓存门限配置值越高,该组优先级越高的顺序排列,因此,第3组的优先级高于第0组的优先级。同一个组内的各端口优先级按照指定策略进行配置,本例中,假设按照端口号大小配置策略,端口号越大优先级越高,则第0组中,端口1优先级高于端口0;第3组中,端口3优先级高于端口2。

步骤二、判断端口原写入的是DDR缓存还是OCB缓存,若为DDR缓存,转入步骤三;若为OCB缓存,转入步骤四。可以理解的是,作为一种优选的实施方式,本实施例中各端口数据帧在初始时可优先走片上缓存(OCB)通道,即初始时优先写入OCB缓存,则初次判决仲裁时会进入步骤四流程;但实际应用中也可采取其他初始写入方式,本实施例不做具体限定。

步骤三、首先,对端口抢占请求为从DDR缓存切换到OCB缓存的进行仲裁,将组内成员不为空且优先级最高的组优先被选中(优先级高的组因DDR缓存门限配置值高,表明DDR资源占用高需优先切换到OCB缓存),被选中的组内部根据配置的优先级由高到低进行仲裁,被选中的端口将获得从DDR缓存到OCB缓存的切换许可;

举例来说,还是以上述步骤中的实例为例,假设当前分组为端口0和端口1划分在第0组,端口2和端口3划分在第3组;选择可以写入OCB缓存的端口时,先进行组间仲裁,由于组3的优先级高于组0的优先级,第3组被选中(优先级高的组因DDR缓存门限配置值高,表明DDR资源占用高需优先切换到OCB缓存);然后进行组内仲裁,组内按照端口优先级仲裁,第3组内的端口3优先级比端口2优先级高,所以端口3获得最终的OCB写入许可;

其次,对端口抢占请求为保持写入DDR缓存的进行仲裁,将组内成员不为空且优先级最低的组优先被选中(优先级低的组因DDR缓存门限配置值低,表明DDR资源占用少最需要被保持写入DDR缓存),被选中的组内部根据配置的优先级由高到低进行仲裁,被选中的端口将获得保持写入DDR缓存的许可;

举例来说,还是以上述步骤中的实例为例,假设当前分组为端口0和端口1划分在第0组,端口2划分在第3组(端口3由于在上一步中被选中,因此排除);选择可以写入DDR缓存的端口时,先进行组间仲裁,由于组0的优先级低于组3的优先级,第0组被选中(优先级低的组因DDR缓存门限配置值低,表明DDR资源占用少最需要被保持写入DDR缓存);然后进行组内仲裁,组内按照端口优先级仲裁,第0组内的端口1优先级比端口0优先级高,所以端口1获得最终的DDR写入许可;

最后,其他未被选中的端口,将获取阻塞许可,其数据帧将被阻塞(反压)在端口输入缓存中。

步骤四、判断端口的OCB资源占用计数是否超过OCB缓存门限配置值,若未超过,端口将获得保持写入OCB缓存的许可;若超过,则参加保持写入DDR缓存的仲裁,不同的是若该端口被选中,将获取从OCB缓存到DDR缓存的切换许可。具体来说,若端口的OCB资源占用计数超过OCB缓存门限配置值,则判断端口是否处于组内成员不为空且优先级最低的组中,且该端口的优先级为组内最高优先级,若是,则将获取从OCB缓存到DDR缓存的切换许可;否则,将获取阻塞许可,其数据帧将被阻塞(反压)在端口输入缓存中。

为了更清楚的说明上述判决仲裁的具体操作,步骤二至步骤四的仲裁流程可参见图3所示。

另外,可以理解的是,(1)当端口因流量突发或者阻塞导致OCB缓存容量不足时,端口需要切换到DDR缓存写入,以平滑过度防止丢包;又由于单独使用DDR缓存时带宽不足,所以需要在OCB缓存有足够剩余空间后切换回OCB缓存。(2)DDR缓存写入需要等待响应,为保证同一个端口内的包从DDR缓存切换到OCB缓存时不乱序,需要保证在写入DDR的数据响应完成后才能切换;如果频繁的进行切换,会因为频繁的等待DDR响应造成带宽的损失,所以需要根据DDR缓存门限配置值来控制切换的频率。(3)端口DDR缓存资源占用越高,说明该端口在DDR缓存中保持写入的时间越长(即该端口OCB缓存和DDR缓存切换的频率越低),该端口的带宽需求更难以保证,需要将该端口优选切换到OCB缓存。相反,端口DDR缓存资源占用低,则需要优先保持该端口继续写入到DDR缓存。

本实施例中采用分组绝对优先级的仲裁方式,可同时满足上述三种情况的需求,从而实现端口带宽和容量均衡处理的目的。

实施例三

参见图4所示,基于同一发明构思,本发明实施例还提供了一种数据帧存储切换的方法,该方法包括以下步骤:

S1、当各端口需要将数据帧读出时,根据端口DDR资源占用计数、端口OCB资源占用计数、端口的缓存门限配置值,产生多等级的端口抢占请求。本实施例中,将端口DDR资源占用计数、端口OCB资源占用计数等效计量为端口流量,即根据端口的DDR流量来表示端口DDR资源占用计数,根据端口的OCB流量来表示端口OCB资源占用计数。另外,端口的缓存门限配置值为可配置的预设值,包括端口的OCB缓存门限配置值和端口的DDR缓存门限配置值。其中,端口的OCB缓存门限配置值为单门限配置值,根据各端口流量按比例进行配置,以保证各端口基本带宽的需求;端口的DDR缓存门限配置值为多等级门限配置值,以便可产生多等级的端口抢占请求。

S2、对产生的多等级的端口抢占请求进行判决仲裁,得到仲裁结果。

S3、根据得到的仲裁结果,将各端口数据帧送入对应的DDR缓存或OCB缓存或进行阻塞。

进一步地,作为一种可选的实施方式,如图5所示,该方法在步骤S1之前,还包括步骤S0:基于端口缓存输入的数据帧,当端口缓存到指定数量的数据帧后,请求将数据帧读出。

更进一步地,作为一种可选的实施方式,步骤S1具体包括以下流程:

S101、将各端口的端口OCB资源占用计数与各端口的OCB缓存门限配置值进行比较,为其中超过OCB缓存门限配置值的端口,产生最低级别的端口抢占请求;

S102、将剩余端口的端口DDR资源占用计数与各自端口的多等级DDR缓存门限配置值进行比较,若端口DDR资源占用计数大于第N级DDR缓存门限配置值,则为该端口产生第N级的端口抢占请求。

再进一步地,作为一种可选的实施方式,如图5所示,该方法在步骤S3之后,还包括步骤S4:各端口在数据帧输入和数据帧被读出时,实时更新各端口的OCB资源占用计数和DDR资源占用计数。

从上述操作可以看出,本实施例中可根据各端口流量以及各端口可配置的缓存门限,产生多等级的端口抢占请求;对各端口产生的多等级的端口抢占请求进行判决仲裁,可产生不同仲裁结果;根据不同的仲裁结果,将各端口的数据帧送入对应的DDR缓存或OCB缓存或进行阻塞,从而实现了内部缓存和外部缓存的动态存储切换。不但充分利用了内部缓存的大带宽和外部缓存的大容量的优势,有效提高了设备整体的数据存储能力;而且,无需采用高规格的外部存储器件,使用成本低,满足了实际应用需求。

实施例四

本实施例提供的一种数据帧存储切换的方法,其基本步骤与实施例三相同,不同之处在于,作为一种优选的实施方式,本实施例的步骤S2中,对多等级的端口抢占请求进行判决仲裁时,采用的是分组绝对优先级的方式:将各端口相同等级的端口抢占请求划分为一组,组与组之间按照绝对优先级的方式进行仲裁选取,同一组内各端口之间的优先级根据指定策略进行配置,且组内同样按照绝对优先级的方式进行仲裁选取;被选中的端口将获得切换许可、保持许可和阻塞许可中的一种,作为仲裁结果。采用该分组绝对优先级的方式进行判决仲裁的具体流程,可参见实施例三中的具体描述。

另外,需要说明的是,由于本实施例的方法在解决问题的原理上与上述实施例一、二的装置相似,因此该方法的具体实施可参见装置的具体实施,重复之处不再赘述。

注意:上述的具体实施例仅是例子而非限制,且本领域技术人员可以根据本发明的构思从上述分开描述的各个实施例中合并和组合一些步骤和装置来实现本发明的效果,这种合并和组合而成的实施例也被包括在本发明中,在此不一一描述这种合并和组合。

本发明实施例中提及的优点、优势、效果等仅是示例,而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,本发明实施例公开的上述具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明实施例必须采用上述具体的细节来实现。

本发明实施例中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子,并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。本发明实施例所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。本发明实施例所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

本发明实施例中的步骤流程图以及以上方法描述仅作为例示性的例子,并且不意图要求或暗示必须按照给出的顺序进行各个实施例的步骤。如本领域技术人员将认识到的,可以按任意顺序进行以上实施例中的步骤的顺序。诸如“其后”、“然后”、“接下来”等等的词语不意图限制步骤的顺序;这些词语仅用于引导读者通读这些方法的描述。此外,例如使用冠词“一个”、“一”或者“该”对于单数的要素的任何引用不被解释为将该要素限制为单数。

另外,本发明各个实施例中的步骤和装置并非仅限定于某个实施例中实行,事实上,可以根据本发明的概念来结合本文中的各个实施例中相关的部分步骤和部分装置,以构思新的实施例,而这些新的实施例也包括在本发明的范围内。

本发明实施例中的各个操作可以通过能够进行相应的功能的任何适当的手段而进行。该手段可以包括各种硬件和/或软件组件和/或模块,包括但不限于硬件的电路或处理器。

本发明实施例的方法包括用于实现上述的方法的一个或多个动作。方法和/或动作可以彼此互换而不脱离权利要求的范围。换句话说,除非指定了动作的具体顺序,否则可以修改具体动作的顺序和/或使用而不脱离权利要求的范围。

本发明实施例中的功能可以按硬件、软件、固件或其任意组合而实现。如果以软件实现,功能可以作为一个或多个指令存储在切实的计算机可读介质上。存储介质可以是可以由计算机访问的任何可用的切实介质。通过例子而不是限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟存储、磁碟存储或其他磁存储器件或者可以用于携带或存储指令或数据结构形式的期望的程序代码并且可以由计算机访问的任何其他切实介质。如在此使用的,碟(disk)和盘(disc)包括紧凑盘(CD)、激光盘、光盘、DVD(Digital Versatile Disc,数字多功能光盘)、软碟和蓝光盘,其中碟通过磁再现数据,而盘利用激光光学地再现数据。

因此,计算机程序产品可以进行在此给出的操作。例如,这样的计算机程序产品可以是具有有形存储(和/或编码)在其上的指令的计算机可读的有形介质,该指令可由一个或多个处理器执行以进行在此所述的操作。计算机程序产品可以包括包装的材料。

其他例子和实现方式在本发明实施例和所附权利要求的范围和精神内。例如,由于软件的本质,以上所述的功能可以使用由处理器、硬件、固件、硬连线或这些的任意的组合执行的软件实现。实现功能的特征也可以物理地位于各个位置,包括被分发以便功能的部分在不同的物理位置处实现。

本领域技术人员可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。

提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。且本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种日志输出方法、装置、设备及可读存储介质

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!