一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

共享缓存系统及方法、电子设备及存储介质与流程

2022-04-09 07:25:04 来源:中国专利 TAG:


1.本发明属于数据交换技术领域,尤其是涉及一种共享缓存系统及方法、电子设备及存储介质。


背景技术:

2.数据交换技术是网络技术的核心,交换技术通常包括的交换缓存设计和调度算法设计,这两项技术决定了交换机的性能和成本。其中,交换缓存主要完成接收缓存、发送缓存以及交叉缓存,从而保证数据包的有序存储和组织,交换缓存的好坏直接影响整个交换网络的面积;接收缓存的大小直接影响芯片的信用量及数据的传输距离,但受限于芯片面积的设定,接收缓存不能任意增大。在交换技术中根据芯片面积的考虑,一个端口设计相对合适的缓存。数据交换技术使用最多的是crossbar的交换结构,给交换端口分配一个固定的接收缓存。
3.目前的crossbar交换结构给所有的交换端口分配一个固定的接收缓存,在所有的交换端口都在使用的情况下没有任何影响,但是,有些交换端口不使用处于空闲状态时,给其分配的接收缓存同样也处于空闲状态,导致本来就不大的接收缓存存在浪费。无法根据交换端口的使用情况动态分配接收缓存,提高芯片的利用率;较小的接收缓存也无法满足数据的长距离传输,芯片的信用量较低。


技术实现要素:

4.有鉴于此,本发明提出一种共享缓存系统及方法、电子设备及存储介质,通过发明可以在某些端口不被使用的情况下,将此端口分配的接收缓存分享给其他端口,来增加芯片端口的信用量;交换端口的接收缓存可以任意分配共享缓存,且所有端口分配的接收缓存不能超过共享缓存的大小;交换端口接收缓存的配置相互独立、互不影响,当某一端口进行接收缓存大小的配置时,不影响其他端口的数据交换转发。
5.为达到上述目的,本发明的技术方案是这样实现的:
6.第一方面,本发明提供了一种共享缓存系统,其特征在于:包括寄存器模块、端口缓存分配模块、ram模块和地址管理模块、端口组,所述端口组包括多个端口;
7.所述寄存器模块用于根据每个端口的使用情况,重分配每个端口的共享缓存大小;
8.端口缓存分配模块用于根据寄存器模块配置的端口分配共享缓存的大小,并将共享缓存具体的缓存空间分配给相应的端口;
9.地址管理模块包括与端口数量相同的bitmap块,每个bitmap块对应一个端口,端口也采用bitmap算法,bitmap块用于根据端口缓存分配模块输出的端口缓存分配结果,初始化端口各自的bitmap数值;
10.ram模块包括与端口数量对应的ram块,每个所述ram块均对应设有一个mux,每个所述ram块的mux连接所有端口,所述mux还连接端口缓存分配模块,根据端口缓存分配模块
输出的端口缓存分配结果,选择哪个端口的数据包进入当前ram块。
11.进一步的,多个所述端口均可设置最大包缓存。
12.进一步的,共享缓存的大小不得超过多个端口对应的最大包缓存的总和。
13.进一步的,所述地址管理模块当端口有数据包输入时,地址管理模块就会分配相应端口的缓存地址;当下级模块将缓存到共享缓存中的数据包调度走之后,会释放此缓存空间,相应的bitmap数值进行更新。
14.第二方面,本发明提供了一种共享缓存方法,包括如下步骤:
15.s1、如果所有端口同时使用,且分配的存储空间为默认值,每个端口分配对应其最大包缓存的空间;
16.s2、当数据包从port0-portn端口输入到ram模块的mux时,根据端口缓存分配结果ram0的mux选择port0,ram1的mux选择port1,

,ramn的mux选择portnn进行数据的输入,其中,n为正整数;
17.s3、地址管理模块根据端口缓存分配结果初始化所有端口的bitmap值,当port0-portn有数据包输入时,就会进入地址管理模块申请ram缓存地址,bitmap0-bitmapn根据初始化的值和当前ram使用情况给新输入的数据包申请一个缓存地址;
18.s4、地址管理模块给新数据包申请的缓存地址会传给ram模块,ram0-ramn根据缓存地址将新输入的数据包写入相应的地址空间中;
19.s5、当下级模块将数据包调度走之后,会给地址管理模块输出一个地址释放信号,bitmap0-bitmapn进行相应的数值改变。
20.进一步的,如果用户不使用默认的端口分配的缓存,或者只使用一部分端口;用户可根据情况配置寄存器,再将端口缓存大小分配使能打开,最后,在端口缓存分配模块将端口缓存根据寄存器的配置重新分配。
21.第三方面,本发明提供了一种电子设备,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器执行所述指令时实现上述第二方面所述的共享缓存方法的步骤。
22.第四方面,本发明提供了一种计算机可读取存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面所述的共享缓存方法的步骤。
23.相对于现有技术,本发明所述的共享缓存系统及方法、电子设备及存储介质具有以下优势:
24.(1)本发明所述的共享缓存系统及方法、电子设备及存储介质在端口不使用或者短距离传输数据,可以将此端口的缓存空间分配给其他端口使用,提高缓存空间的利用率,增加端口的信用量及长距离传输数据的能力。
25.(2)本发明提出通过配置寄存器来驱动端口缓存分配模块进行端口缓存大小的重分配,使缓存分配更加灵活,各个端口缓存大小重分配是相互独立的,需要进行缓存大小重分配的端口,不影响其他不进行缓存大小重分配端口数据交换转发。
附图说明
26.构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
27.图1为本发明实施例所述的基于交换技术接收数据的共享缓存系统原理示意图。
具体实施方式
28.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
29.在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
30.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
31.下面将参考附图并结合实施例来详细说明本发明。
32.本实施例提供了一种基于交换技术接收数据的共享缓存系统,适用于nxm的交换,n和m为正整数,为了方便说明,下面用8x8的交换进行说明。图1为共享缓存整体框图,共享缓存模块包括:寄存器模块、端口缓存分配模块、ram模块和地址管理模块;共享缓存的大小为256个最大包缓存,默认情况下,每个端口分配32个最大包缓存。
33.寄存器模块:8个端口ram大小分配的寄存器,以及端口分配使能寄存器;用户根据使用情况来重分配8个端口的缓存大小;8个端口一共分配的共享缓存大小不能超过256个最大包缓存;
34.端口缓存分配模块:根据寄存器模块配置的端口分配共享缓存的大小,将共享缓存具体的缓存空间分配给相应的端口;
35.地址管理模块:8个端口采用但不限于bitmap算法,共8个bitmap块;bitmap根据端口缓存分配模块输出的端口缓存分配结果,初始化端口各自的bitmap数值;当端口有数据包输入时,地址管理模块就会分配相应端口的缓存地址;当下级模块(核心交换)将缓存到共享缓存中的数据包调度走之后,会释放此缓存空间,相应的bitmap数值进行更新;
36.ram模块:默认情况下,分别给8个端口分配32个最大包的ram块;由于8个ram块根据用户的使用情况,可以分配给任意的8个端口的其中一个,所以,8个端口都连接到8个ram的输入端,通过mux选择哪个端口的数据包进入当前ram块,选择的条件是端口缓存分配模块输出的端口缓存分配结果。
37.本发明提出了一种交换技术接收数据的共享缓存方法,在其他端口不使用或者不需要默认值那么大的缓存空间情况下,可以将其分配的缓存分配给其他端口使用,提高接收缓存的利用率、增加端口的信用量和适用长距离数传数据。
38.本实施例还提供了一种共享缓存的方法适用于nxm的端口,下面通过8x8交换端口说明共享缓存的工作原理,共享缓存为256个最大包存储空间,每个端口分配32个最大包存储空间。
39.具体步骤如下:
40.1、如果8个端口同时使用,且分配的存储空间为默认值,每个端口分配32个最大包缓存空间;
41.2、当数据包从port0-port7端口输入到ram模块的mux时,根据端口缓存分配结果ram0的mux选择port0,ram1的mux选择port1,

,ram7的mux选择port7进行数据的输入;
42.3、地址管理模块根据端口缓存分配结果初始化8个端口的bitmap值,当port0-port7有数据包输入时,就会进入地址管理模块申请ram缓存地址,bitmap0-bitmap7根据初始化的值和当前ram使用情况给新输入的数据包申请一个缓存地址;
43.4、地址管理模块给新数据包申请的缓存地址会传给ram模块,ram0-ram7根据缓存地址将新输入的数据包写入相应的地址空间中;
44.5、当下级模块(核心交换)将数据包调度走之后,会给地址管理模块输出一个地址释放信号,bitmap0-bitmap7进行相应的数值改变。
45.6、如果用户不使用默认的端口分配的缓存,或者只使用一部分端口;用户可以根据情况配置寄存器,即8个端口分配缓存大小的数值,之后,再将端口缓存大小分配使能打开,最后,在端口缓存分配模块将端口缓存根据寄存器的配置重新分配;8个端口缓存大小重分配是相互独立的,此端口的缓存重分配不影响其他端口数据交换转发;
46.7、重复进行步骤2-6。
47.本实施例提供了一种电子设备,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器执行所述指令时实现上述共享缓存方法的步骤,需要说明的是,该电子设备的硬件结构组成包括处理器和存储器以及相关的电路能够采用现有技术。
48.本实施例提供了一种计算机可读取存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述共享缓存方法的步骤。
49.需要说明的是以下几种情况也均适用于本发明。
50.1、只使用共享缓存方法,但地址管理模块不使用bitmap算法等,同样适用本发明;
51.2、只使用共享缓存方法,端口缓存大小重分配不使用寄存器配置等,同样适用本发明;
52.3、此共享缓存方法不止用于交换技术上,用于其他技术上等,同样适用本发明。
53.在本技术所提供的几个实施例中,应该理解到,所揭露的方法和系统,可以通过其它的方式实现。例如,以上所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。上述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
54.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依
然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
55.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献