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

内存配置方法、装置、设备及存储介质与流程

2022-02-20 04:53:21 来源:中国专利 TAG:


1.本发明涉及通信领域,尤其涉及一种内存配置方法、装置、设备及存储介质。


背景技术:

2.随着支持用户数量、多业务承载和基准序列号sn(sequence number,序列号)重排序列号长度的扩展等因素影响,对pdcp(packet data convergence protocol,分组数据汇聚协议)和rlc(radio link control,无线链路层控制协议)接收和发送队列静态内存需求指数激增,但是存在一些用户和承载资源在注册激活后一段时间内只是占用,而不使用,处于空闲状态,这就造成内存资源大量浪费。因此需要对内存进行合理分配。
3.现有的内存配置方案为对收发队列内存的使用人为干预调整,但此种方式智能程度低,不能自适应各种序列号长度需求;或者将收发队列长度设置为采用2的指数进行缩小,在一定范围内队列内存节点重复使用,但这种方式不适用具有较大重排窗口情况。
4.因此,如何提出一种有效的节省内存的内存配置方法,成为一个亟需解决的问题。


技术实现要素:

5.针对现有存在的问题,本发明实施例提供一种内存配置方法、装置、设备及存储介质。
6.第一方面,本发明实施例提供一种内存配置方法,包括:
7.获取预设的内存配置因子及待配置的目标pdu(protocol data unit,协议数据单元)节点的序列号;
8.基于所述内存配置因子及所述序列号,按照预设的rb(radio bearers,无线承载)位置算法,确定目标rb队列中的第一目标位置,所述第一目标位置用于存放目标pdu队列;
9.基于所述内存配置因子及所述序列号,按照预设的pdu位置算法,确定所述目标pdu节点位于所述目标pdu队列中的第二目标位置,在所述第二目标位置对所述目标pdu节点进行内存配置。
10.可选地,所述在所述第二目标位置对所述目标pdu节点进行内存配置,具体包括:
11.若所述目标pdu节点为待插入节点,则在所述第二目标位置插入所述目标pdu节点,所述目标pdu队列对应的计数器加一;
12.若所述目标pdu节点为待删除节点,则在所述第二目标位置删除所述目标pdu节点,所述目标pdu队列对应的计数器减一。
13.可选地,所述预设的pdu位置算法具体包括:
14.第一公式:第二目标位置=sn&(2f–
1);
15.其中,sn为目标pdu节点的序列号;
16.f为所述内存配置因子,0<f<snlength,snlength为rb配置参数。
17.可选地,所述预设的rb位置算法具体包括:
18.第二公式:第一目标位置=sn》》f;
19.其中,sn为目标pdu节点的序列号;
20.f为所述内存配置因子,0<f<snlength,snlength为rb配置参数。
21.可选地,所述获取预设的内存配置因子及待配置的目标pdu节点的序列号之前,还包括:
22.在新建立用户承载时,接收rrc(radio resource control,无线资源控制)层发送的rb配置参数,基于所述rb配置参数及所述内存配置因子确定所述目标rb队列的内存大小,并进行内存申请。
23.可选地,所述基于所述rb配置参数及所述内存配置因子确定所述目标rb队列的内存大小,具体包括:
24.通过第三公式:目标rb队列的内存大小=2
snlength-f 2
,计算获得所述目标rb队列的内存大小;
25.其中,snlength为所述rb配置参数;
26.f为所述内存配置因子,0<f<snlength。
27.可选地,若所述目标pdu节点为待插入节点,则在所述基于所述内存配置因子及所述序列号,按照预设的rb位置算法,确定目标rb队列中的第一目标位置之后,在所述基于所述内存配置因子及所述序列号,按照预设的pdu位置算法,确定所述目标pdu节点位于所述目标pdu队列中的第二目标位置之前,还包括:
28.确定所述目标rb队列中的第一目标位置不存在所述目标pdu队列后,在所述第一目标位置申请一个所述目标pdu队列,基于所述内存配置因子获得所述目标pdu队列的内存大小,并进行内存申请。
29.可选地,所述基于所述内存配置因子获得所述目标pdu队列的内存大小,具体包括:
30.通过第四公式:目标pdu队列的内存大小=2
f 2
22,计算获得所述目标pdu队列的内存大小;
31.其中,f为所述内存配置因子,0<f<snlength,snlength为所述rb配置参数。
32.可选地,若所述目标pdu节点为待删除节点,则在所述第二目标位置删除所述目标pdu节点之后,还包括:
33.确定所述目标pdu队列对应的计数器为零,在所述第一目标位置,删除所述目标pdu队列。
34.第二方面,本发明实施例提供一种内存配置装置,包括:
35.获取模块,用于获取预设的内存配置因子及待配置的目标协议数据单元pdu节点的序列号;
36.确定模块,用于基于所述内存配置因子及所述序列号,按照预设的无线承载rb位置算法,确定目标rb队列中的第一目标位置,所述第一目标位置用于存放目标pdu队列;
37.配置模块,用于基于所述内存配置因子及所述序列号,按照预设的pdu位置算法,确定所述目标pdu节点位于所述目标pdu队列中的第二目标位置,在所述第二目标位置对所述目标pdu节点进行内存配置。
38.可选地,所述配置模块,具体用于:
39.若所述目标pdu节点为待插入节点,则在所述第二目标位置插入所述目标pdu节
点,所述目标pdu队列对应的计数器加一;
40.若所述目标pdu节点为待删除节点,则在所述第二目标位置删除所述目标pdu节点,所述目标pdu队列对应的计数器减一。
41.可选地,所述预设的pdu位置算法具体包括:
42.第一公式:第二目标位置=sn&(2f–
1);
43.其中,sn为目标pdu节点的序列号;
44.f为所述内存配置因子,0<f<snlength,snlength为rb配置参数。
45.可选地,所述预设的rb位置算法具体包括:
46.第二公式:第一目标位置=sn》》f;
47.其中,sn为目标pdu节点的序列号;
48.f为所述内存配置因子,0<f<snlength,snlength为rb配置参数。
49.可选地,所述装置还包括:
50.rb初始化模块,用于在新建立用户承载时,接收rrc层发送的rb配置参数,基于所述rb配置参数及所述内存配置因子确定所述目标rb队列的内存大小,并进行内存申请。
51.可选地,所述rb初始化模块,具体用于:
52.通过第三公式:目标rb队列的内存大小=2
snlength-f 2
,计算获得所述目标rb队列的内存大小memory
rb

53.其中,snlength为所述rb配置参数;
54.f为所述内存配置因子,0<f<snlength。
55.可选地,所述装置还包括:
56.pdu初始化模块,用于确定所述目标rb队列中的第一目标位置不存在所述目标pdu队列后,在所述第一目标位置申请一个所述目标pdu队列,基于所述内存配置因子获得所述目标pdu队列的内存大小,并进行内存申请。
57.可选地,所述pdu初始化模块,具体用于:
58.通过第四公式:目标pdu队列的内存大小=2
f 2
22,计算获得所述目标pdu队列的内存大小memory
pdu

59.其中,f为所述内存配置因子,0<f<snlength,snlength为所述rb配置参数。
60.可选地,所述装置还包括:
61.删除模块,用于确定所述目标pdu队列对应的计数器为零,在所述第一目标位置,删除所述目标pdu队列。
62.第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法的步骤。
63.第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述的方法的步骤。
64.本发明实施例提供的内存配置方法、装置、设备及存储介质,通过根据内存需要,预先灵活配置用于内存优化的内存配置因子,可以进行内存深度优化。并通过内存配置因子对rb队列及pdu队列进行内存分配,既保证处理效率,又自动适应所有snlength长度情况下的收发队列配置,节省大量内存,从而提升接入用户数量和业务kpi指标。
附图说明
65.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
66.图1为本发明一实施例提供的内存配置方法流程示意图;
67.图2为本发明另一实施例提供的内存配置方法流程示意图;
68.图3为本发明又一实施例提供的内存配置方法流程示意图;
69.图4为本发明一实施例提供的内存配置装置结构示意图;
70.图5为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
71.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
72.为了便于清楚描述本发明实施例的技术方案,在本发明的各实施例中,若采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
73.内存资源一直在软件工程中属于稀缺资源,然而内存的使用和软件运行效率在一定程度上关系为此消彼长,现有的内存优化配置方法智能程度很低,无法自适应各种序列号长度的需求或者不适合具有较大重排窗口的情况。本发明各实施例的主要构思为:引入内存配置因子,对内存进行灵活调整,可以实现既不需要重复使用节点,还可以适应各种序列号长度,有效优化内存;本发明各实施例通过提出一种收发队列的优化方法,在用户数量、业务承载和序列号增加的情况下,保证处理效率的同时可以有效减少内存资源浪费。
74.下面通过多个实施例进行详细说明。
75.图1为本发明一实施例提供的内存配置方法流程示意图,如图1所示,该方法至少包括如下步骤:
76.步骤100,获取预设的内存配置因子及待配置的目标pdu节点的序列号;
77.具体地,本实施例可以通过使用内存配置因子f进行收发队列的内存优化,在用户数量、业务承载和rb序列号增加的情况下,在保证处理效率同时可以大量减少在pdcp和rlc的rb实例初始化时产生的收发队列内存消耗。
78.可以理解的是,在进行内存配置之前,首先可以获取用于内存优化的内存配置因子,还可以获取待配置的目标pdu节点的序列号;
79.可以理解的是,本实施例中,在待配置的目标pdu节点的序列号已知的情况下,可以基于序列号,根据内存配置因子对目标pdu节点进行内存的灵活配置。
80.可以理解的是,为了实现内存深度优化,可以在预设内存配置因子时,根据内存需要,对内存配置因子的值灵活选取;
81.步骤101,基于所述内存配置因子及所述序列号,按照预设的rb位置算法,确定目
标rb队列中的第一目标位置,所述第一目标位置用于存放目标pdu队列;
82.具体地,rb队列用来存放pdu队列的地址,因此,在获取预设的内存配置因子及待配置的目标pdu节点的序列号后,本实施例中可以根据内存配置因子及序列号,通过预设的rb位置算法,计算确定目标pdu队列在目标rb队列中的第一目标位置;
83.步骤102,基于所述内存配置因子及所述序列号,按照预设的pdu位置算法,确定目标pdu节点位于所述目标pdu队列中的第二目标位置,在所述第二目标位置对所述目标pdu节点进行内存配置。
84.具体地,pdu队列用来存放pdu节点的地址,因此,在获得预设的内存配置因子及待配置的目标pdu节点的序列号,并确定位于目标rb队列中的第一目标位置的目标pdu队列后,可以通过预设的pdu位置算法,计算确定目标pdu节点位于目标pdu队列中的第二目标位置;
85.具体地,本实施例中,在确定了目标pdu节点在目标pdu队列中的具体位置后,即可以对目标pdu节点的内存配置,例如插入目标pdu节点或者删除目标pdu节点。
86.具体地,本实施例中,在接收或者发送侧,配置目标pdu节点时,根据pdu数据对应的sn,将目标pdu节点插入到目标pdu队列中或从目标pdu队列中删除时,可以进行两步计算:
87.按照预设的rb位置算法,确定目标rb队列中的目标pdu队列的第一目标位置;
88.可以理解的是,本实施例中,根据pdu数据及对应的sn,可以唯一确定一个目标rb队列;
89.在获得第一目标位置的目标pdu队列后,可以计算对应目标pdu队列中目标pdu节点的第二目标位置;
90.经过计算得到目标pdu节点的存放位置在目标rb收发队列第一目标位置的目标pdu队列的第二目标位置处。
91.本发明实施例提供的内存配置方法,通过根据内存需要,预先灵活配置用于内存优化的内存配置因子,可以进行内存深度优化。并通过内存配置因子对rb队列及pdu队列进行内存分配,既保证处理效率,又自动适应所有snlength长度情况下的收发队列配置,节省大量内存,从而提升接入用户数量和业务kpi指标。
92.可选地,在上述各实施例的基础上,所述在所述第二目标位置对所述目标pdu节点进行内存配置,具体包括:
93.若所述目标pdu节点为待插入节点,则在所述第二目标位置插入所述目标pdu节点,所述目标pdu队列对应的计数器加一;
94.具体地,目标pdu节点可以为一新增节点,即待插入节点,因此在确定目标pdu节点位于目标pdu队列中的第二目标位置后,可以在第二目标位置插入目标pdu节点,完成对目标pdu节点的内存配置。
95.可以理解的是,本实施例中,为了确定目标pdu队列中存储有多少个目标pdu节点,从而确定目标pdu队列在插入新的目标pdu节点后是否会溢出,例如可以配置4字节作为pdu队列中节点的pdu计数器;可以理解的是,在目标pdu队列的内存已知的情况下,目标pdu队列中可以存放的pdu节点个数也是已知的。
96.若所述目标pdu节点为待删除节点,则在所述第二目标位置删除所述目标pdu节
点,所述目标pdu队列对应的计数器减一。
97.具体地,目标pdu节点可以为一待删除节点,因此在确定目标pdu节点位于目标pdu队列中的第二目标位置后,可以在第二目标位置删除目标pdu节点,完成对目标pdu节点的内存配置。
98.可以理解的是,本实施例中,为了确定目标pdu队列在删除目标pdu节点后是否为空,配置有4字节作为pdu队列对应的pdu计数器,用于记录目标pdu队列中存放的pdu节点的数量;可以理解的是,在计数器为0时,目标pdu队列为空队列,可以理解的是,为了避免占用内存,当目标pdu队列为空队列时,可以将其删除。
99.可选地,在上述各实施例的基础上,所述预设的pdu位置算法具体包括:
100.第一公式:第二目标位置=sn&(2f–
1);
101.其中,sn为目标pdu节点的序列号;
102.f为所述内存配置因子,0<f<snlength,snlength为rb配置参数。
103.具体地,在基于内存配置因子及序列号,按照预设的pdu位置算法,确定目标pdu节点位于目标pdu队列中的第二目标位置时,可以应用公式pdupos=sn&(2f–
1)进行计算,计算后可以获得目标pdu节点在目标rb队列对应的目标pdu队列中的第二目标位置pdupos;
104.其中,sn为目标pdu节点的序列号;
105.f为所述内存配置因子,0<f<snlength,snlength为rb配置参数,snlength等于12或18,可以理解的是,f取6或8时内存节省率可以达到较大百分比。
106.可选地,在上述各实施例的基础上,所述预设的rb位置算法具体包括:
107.第二公式:第一目标位置=sn》》f;
108.其中,sn为目标pdu节点的序列号;
109.f为所述内存配置因子,0<f<snlength,snlength为rb配置参数。
110.具体地,在基于内存配置因子及序列号,按照预设的rb位置算法,确定目标rb队列中的第一目标位置时,可以应用公式quepos=sn》》f进行计算,计算后可以获得目标pdu队列在目标rb队列中的第一目标位置quepos;
111.其中,sn为目标pdu节点的序列号;
112.f为所述内存配置因子,0<f<snlength,snlength为rb配置参数,snlength等于12或18。
113.可选地,在上述各实施例的基础上,所述获取预设的内存配置因子及待配置的目标pdu节点的序列号之前,还包括:
114.在新建立用户承载时,接收rrc层发送的rb配置参数,基于所述rb配置参数及所述内存配置因子确定所述目标rb队列的内存大小,并进行内存申请。
115.具体地,在高层激活用户时,pdcp或者rlc模块进行用户承载的新建时,需要进行rb收发队列的初始化。
116.具体地,在进行目标rb队列的初始化时,高层rrc配置l2 rb实例时可以携带snlength,目标rb队列根据收到rb参数snlenth进行收发队列内存申请,申请的内存大小为memory
rb

117.可以理解的是,由于目标rb队列中存储有pdu队列地址,每个pdu队列地址占4个字节,因此目标rb队列中存储的pdu队列地址的个数为memory
rb
/4个,每个pdu队列中存放对应
的pdu队列节点。
118.可以理解的是,本实施例中,rb收发队列初始化分配内存后,内存大小在整个ue生存期间固定不变,可以认为是静态内存分配。
119.可选地,在上述各实施例的基础上,所述基于所述rb配置参数及所述内存配置因子确定所述目标rb队列的内存大小,具体包括:
120.通过第三公式:目标rb队列的内存大小=2
snlength-f 2
,计算获得所述目标rb队列的内存大小memory
rb

121.其中,snlength为所述rb配置参数;
122.f为所述内存配置因子,0<f<snlength。
123.具体地,在进行rb队列内存申请时,需要明确申请的内存大小。本实施例中,可以根据rb配置参数以及内存配置因子确定所述目标rb队列的内存大小。
124.本实施例中,在确定目标rb队列的内存大小时,可以应用公式memory
rb
=2
snlength-f 2
计算,获得目标rb队列的内存大小memory
rb

125.可以理解的是,本实施例通过基于内存配置因子f作为目标rb队列的内存大小memory
rb
的指数部分,可以在现有技术中memory
rb
=2
snlength 2
的基础上,根据内存需要适当减小目标rb队列的内存,与实际需求相互匹配,节省大量内存。
126.可选地,在上述各实施例的基础上,若所述目标pdu节点为待插入节点,则在所述基于所述内存配置因子及所述序列号,按照预设的rb位置算法,确定目标rb队列中的第一目标位置之后,在所述基于所述内存配置因子及所述序列号,按照预设的pdu位置算法,确定所述目标pdu节点位于所述目标pdu队列中的第二目标位置之前,还包括:
127.确定所述目标rb队列中的第一目标位置不存在所述目标pdu队列后,在所述第一目标位置申请一个所述目标pdu队列,基于所述内存配置因子获得所述目标pdu队列的内存大小,并进行内存申请。
128.具体地,在确定目标rb队列中的第一目标位置后,即可获得目标pdu队列,但若是目标rb队列中的第一目标位置中并不存在目标pdu队列,即刚刚开始收发业务,因此需要申请一个新的pdu队列并进行初始化,为维护pdu节点准备;则可以在第一目标位置申请一个目标pdu队列,并基于内存配置因子获得目标pdu队列的内存大小,并进行目标pdu队列的内存申请。
129.可以理解的是,本实施例中,若是目标rb队列中的第一目标位置中存在目标pdu队列,且满足存放一个pdu节点时,即pdu队列存放目标pdu节点后不会溢出时,是不会申请新的pdu队列的。
130.可以理解的是,本实施例中,可以根据pdu队列对应的pdu计数器判断并确定pdu队列存放目标pdu节点后不会溢出;可以理解的是,若判断并确定pdu队列存放目标pdu节点后会溢出,则申请一个新的pdu队列并初始化。
131.具体地,进行目标pdu队列的内存申请时,可以首先确定目标pdu队列的内存大小memory
pdu
,目标pdu队列用来存放pdu节点地址,每个pdu节点的地址占4字节,因此一个pdu队列可以存放memory
pdu
/4个pdu节点。
132.可选地,在上述各实施例的基础上,所述基于所述内存配置因子获得所述目标pdu队列的内存大小,具体包括:
133.通过第四公式:目标pdu队列的内存大小=2
f 2
22,计算获得所述目标pdu队列的内存大小memory
pdu

134.其中,f为所述内存配置因子,0<f<snlength,snlength为所述rb配置参数。
135.具体地,在进行pdu队列内存申请时,需要明确申请的内存大小。本实施例中,可以根据内存配置因子f确定目标pdu队列的内存大小。
136.本实施例中,在确定目标pdu队列的内存大小时,可以应用公式memory
pdu
=2
f 2
22计算,获得目标pdu队列的内存大小memory
pdu

137.可以理解的是,本实施例通过基于内存配置因子f作为目标pdu队列的内存大小memory
rb
的指数部分,可以使得pdu队列根据sn的需要动态申请和释放,可以认为是动态内存分配。
138.具体地,每个pdu队列大小为memory
pdu
=2
f 2
22(bytes),其中2
f 2
(bytes)用来存放pdu节点,22(bytes)作为pdu队列节点中的pdu计数器。
139.可选地,在上述各实施例的基础上,若所述目标pdu节点为待删除节点,则在所述第二目标位置删除所述目标pdu节点之后,还包括:
140.确定所述目标pdu队列对应的计数器为零,在所述第一目标位置,删除所述目标pdu队列。
141.具体地,本实施例中,若目标pdu节点为待删除节点,则在第二目标位置删除了目标pdu节点之后,还需要判断目标pdu队列在删除目标pdu节点后是否为空,即确定目标pdu队列对应的计数器是否为零,若确定目标pdu队列对应的计数器为零,则应该在目标pdu队列所在的目标rb队列的用于存放目标pdu队列的第一目标位置,删除目标pdu队列。
142.可以理解的是,本实施例中,只要在目标pdu队列所在目标rb队列删除了其存放的地址,pdu队列内存块中的pdu队列也随之删除。
143.可以理解的是,本实施例中,只要在目标pdu节点所在目标pdu队列删除了其存放的地址,pdu节点内存块中的pdu节点也随之删除。
144.本发明实施例提供的内存配置方法,通过根据内存需要,预先灵活配置用于内存优化的内存配置因子,可以进行内存深度优化。并通过内存配置因子对rb队列及pdu队列进行内存分配,既保证处理效率,又自动适应所有snlength长度情况下的收发队列配置,节省大量内存,从而提升接入用户数量和业务kpi指标。
145.图2为本发明另一实施例提供的内存配置方法流程示意图,如图2所示,该方法至少包括如下步骤:
146.步骤200,获取序列号sn及预设内存配置因子f;
147.具体地,首先获取预设的内存配置因子f及待插入的目标pdu节点的序列号sn;
148.具体地,以32位系统为例,本实施例中,高层rrc配置mr rb实例的snlength=18,预设内存配置因子f=6,需要插入的目标pdu节点为pdu sn为100的节点。
149.步骤201,计算第一目标位置;
150.具体地,本实施例中,可以基于内存配置因子f及序列号sn,按照预设的rb位置算法,确定目标rb队列中的第一目标位置,可以理解的是,第一目标位置用于存放目标pdu队列;
151.具体地,可以理解的是,在步骤300之前,在新建承载时目标rb队列已经初始化完
毕,内存为memory
rb
=2
snlength-f 2
=16384(bytes),则目标rb队列中可以存放的队列个数为2
snlength-f
=4096个。
152.具体地,在基于内存配置因子及所述序列号,按照预设的rb位置算法,确定目标rb队列中的第一目标位置时,可以应用公式quepos=sn》》f计算获得目标pdu队列在目标rb队列中的第一目标位置quepos;
153.具体地,本实施例中,可以计算获得第一目标位置:
154.quepos=sn》》f=100》》6=1,用来存放目标pdu队列。
155.步骤202,确定第一目标位置是否存在目标pdu队列;
156.具体地,在确定了用于存放目标pdu队列的第一目标位置后,可以首先确定第一目标位置是否存在目标pdu队列;
157.若第一目标位置存在目标pdu队列,则跳转至步骤204计算第二目标位置;
158.若第一目标位置不存在目标pdu队列,则跳转至步骤203,在目标rb队列中的第一目标位置上申请一个目标pdu队列并初始化;
159.步骤203,申请目标pdu队列;
160.具体地,第一目标位置不存在目标pdu队列,则说明有新的pdu节点需要处理,因此可以根据需要进行pdu队列初始化。进行目标pdu队列的内存申请时,可以首先确定目标pdu队列的内存大小memory
pdu
,目标pdu队列用来存放pdu节点地址,每个pdu节点的地址占4字节,因此一个pdu队列可以存放memory
pdu
/4个pdu节点。
161.具体地,本实施例中,在确定目标pdu队列的内存大小时,可以应用公式获得目标pdu队列的内存大小memory
pdu
=2
f 2
22=260(bytes),其中目标pdu队列中可存放pdu节点数量为2f=64,即完成目标pdu队列的初始化。
162.步骤204,计算第二目标位置;
163.具体地,可以基于内存配置因子f及序列号sn,按照预设的pdu位置算法,确定目标pdu节点位于所述目标pdu队列中的第二目标位置;
164.具体地,本实施例中,在基于内存配置因子及序列号,按照预设的pdu位置算法,确定目标pdu节点位于目标pdu队列中的第二目标位置时可以应用公式获得目标pdu节点在目标rb队列对应的目标pdu队列中的第二目标位置:
165.pdupos=sn&(2f–
1)=100&63=36。
166.步骤205,插入目标pdu节点;
167.具体地,在确定了目标pdu节点在目标rb队列对应的目标pdu队列中的第二目标位置pdupos=36后,且目标pdu节点为待插入节点,可以在第二目标位置pdupos插入目标pdu节点。
168.步骤206,目标pdu队列计数器加一。
169.具体地,在目标pdu队列中插入目标pdu节点后,目标pdu队列计数器加一,可以记录目标pdu队列中存有的pdu节点的地址的数量。
170.图3为本发明又一实施例提供的内存配置方法流程示意图,如图1所示,该方法至少包括如下步骤:
171.步骤300,获取序列号sn及预设内存配置因子f;
172.具体地,首先获取预设的内存配置因子f及待删除的目标pdu节点的序列号sn;
173.具体地,以32位系统为例,本实施例中,高层rrc配置mr rb实例的snlength=18,预设内存配置因子f=6,需要删除的目标pdu节点为pdu sn为100的节点。
174.步骤301,计算第一目标位置;
175.具体地,本实施例中,可以基于内存配置因子f及序列号sn,按照预设的rb位置算法,确定目标rb队列中的第一目标位置,可以理解的是,第一目标位置用于存放目标pdu队列;
176.具体地,可以理解的是,在步骤300之前,在新建承载时目标rb队列已经初始化完毕,内存为memory
rb
=2
snlength-f 2
=16384(bytes),则目标rb队列中可以存放的队列个数为2
snlength-f
=4096个;
177.具体地,在基于内存配置因子及所述序列号,按照预设的rb位置算法,确定目标rb队列中的第一目标位置时,可以应用公式quepos=sn》》f计算获得目标pdu队列在目标rb队列中的第一目标位置quepos;
178.具体地,本实施例中,可以计算获得第一目标位置:
179.quepos=sn》》f=100》》6=1,用来存放目标pdu队列。
180.步骤302,计算第二目标位置;
181.具体地,可以基于内存配置因子f及序列号sn,按照预设的pdu位置算法,确定目标pdu节点位于所述目标pdu队列中的第二目标位置;
182.具体地,在基于内存配置因子及序列号,按照预设的pdu位置算法,确定目标pdu节点位于目标pdu队列中的第二目标位置时,可以应用公式pdupos=sn&(2f–
1)进行计算,计算后可以获得目标pdu节点在目标rb队列对应的目标pdu队列中的第二目标位置pdupos。
183.具体地,本实施例中基于内存配置因子及序列号,按照预设的pdu位置算法,确定目标pdu节点位于目标pdu队列中的第二目标位置时可以应用公式获得目标pdu节点在目标rb队列对应的目标pdu队列中的第二目标位置:
184.pdupos=sn&(2f–
1)=100&63=36。
185.步骤303,删除目标pdu节点;
186.具体地,在确定了目标pdu节点在目标rb队列对应的目标pdu队列中的第二目标位置pdupos=36后,且目标pdu节点为待删除节点,可以在第二目标位置pdupos删除目标pdu节点。
187.步骤304,目标pdu队列计数器减一;
188.具体地,在目标pdu队列中删除目标pdu节点后,目标pdu队列计数器减一,可以记录目标pdu队列中剩余的pdu节点的地址的数量。
189.步骤305,确定目标pdu队列是否为空;
190.具体地,可以根据目标pdu队列计数器是否为0来判断目标pdu队列是否为空;
191.具体地,目标pdu队列计数器为0,则目标pdu队列为空;
192.步骤306,删除空的目标pdu队列。
193.具体地,若目标pdu队列计数器为0即目标pdu队列为空,则可以在目标pdu队列对应的目标rb队列中的第一目标位置删除此空的目标pdu队列的地址,可以理解的是,在目标rb队列中的目标pdu队列的地址被删除后,pdu队列内存块里目标pdu队列所占用的内存也随之删除,进一步节省内存。
194.可以理解的是,本实施例避免了现有方案中需要人为干预调整,不能自适应各种序列号长度需求或者注册在线无业务用户造成内存占用浪费的缺陷,根据需要预设内存配置因子f,进行内存深度优化,在保证处理效率的情况下,自动适应所有snlength长度的收发队列配置,节省大量内存,从而大幅度提升接入用户数量和业务kpi指标。
195.图4为本发明一实施例提供的内存配置装置结构示意图,如图4所示,该装置包括获取模块401,确定模块402以及配置模块403,其中:
196.获取模块401用于获取预设的内存配置因子及待配置的目标pdu节点的序列号;
197.确定模块402用于基于所述内存配置因子及所述序列号,按照预设的rb位置算法,确定目标rb队列中的第一目标位置,所述第一目标位置用于存放目标pdu队列;
198.配置模块403用于基于所述内存配置因子及所述序列号,按照预设的pdu位置算法,确定所述目标pdu节点位于所述目标pdu队列中的第二目标位置,在所述第二目标位置。
199.具体地,内存配置装置通过获取模块401获取预设的内存配置因子及待配置的目标pdu节点的序列号后,通过确定模块402基于内存配置因子及序列号,按照预设的rb位置算法,确定目标rb队列中的第一目标位置,并获得第一目标位置存放的目标pdu队列;随后通过配置模块403基于内存配置因子及所述序列号,按照预设的pdu位置算法,确定目标pdu节点位于所述目标pdu队列中的第二目标位置,最后实现对所述目标pdu节点的内存配置。
200.本发明实施例提供的内存配置装置,通过根据内存需要,预先灵活配置用于内存优化的内存配置因子,可以进行内存深度优化。并通过内存配置因子对rb队列及pdu队列进行内存分配,既保证处理效率,又自动适应所有snlength长度情况下的收发队列配置,节省大量内存,从而提升接入用户数量和业务kpi指标。
201.可选地,在上述各实施例的基础上,所述配置模块,具体用于:
202.若所述目标pdu节点为待插入节点,则在所述第二目标位置插入所述目标pdu节点,所述目标pdu队列对应的计数器加一;
203.若所述目标pdu节点为待删除节点,则在所述第二目标位置删除所述目标pdu节点,所述目标pdu队列对应的计数器减一。
204.可选地,在上述各实施例的基础上,所述预设的pdu位置算法具体包括:
205.第一公式:第二目标位置=sn&(2f–
1);
206.其中,sn为目标pdu节点的序列号;
207.f为所述内存配置因子,0<f<snlength,snlength为rb配置参数。
208.可选地,在上述各实施例的基础上,所述预设的rb位置算法具体包括:
209.第二公式:第一目标位置=sn》》f;
210.其中,sn为目标pdu节点的序列号;
211.f为所述内存配置因子,0<f<snlength,snlength为rb配置参数。
212.可选地,在上述各实施例的基础上,所述装置还包括:
213.rb初始化模块,用于在新建立用户承载时,接收rrc层发送的rb配置参数,基于所述rb配置参数及所述内存配置因子确定所述目标rb队列的内存大小,并进行内存申请。
214.可选地,在上述各实施例的基础上,所述rb初始化模块,具体用于:
215.通过第三公式:目标rb队列的内存大小=2
snlength-f 2
,计算获得所述目标rb队列的内存大小memory
rb

216.其中,snlength为所述rb配置参数;
217.f为所述内存配置因子,0<f<snlength。
218.可选地,在上述各实施例的基础上,所述装置还包括:
219.pdu初始化模块,用于确定所述目标rb队列中的第一目标位置不存在所述目标pdu队列后,在所述第一目标位置申请一个所述目标pdu队列,基于所述内存配置因子获得所述目标pdu队列的内存大小,并进行内存申请。
220.可选地,在上述各实施例的基础上,所述pdu初始化模块,具体用于:
221.通过第四公式:目标pdu队列的内存大小=2
f 2
22,计算获得所述目标pdu队列的内存大小memory
pdu

222.其中,f为所述内存配置因子,0<f<snlength,snlength为所述rb配置参数。
223.可选地,在上述各实施例的基础上,所述装置还包括:
224.删除模块,用于确定所述目标pdu队列对应的计数器为零,在所述第一目标位置,删除所述目标pdu队列。
225.图5为本发明一实施例提供的电子设备组成示意图,如图5所示,该电子设备包括存储器(memory)501、处理器(processor)502及存储在存储器501上并可在处理器502上运行的程序,其中,存储器501和处理器502通过通信总线503完成相互间的通信,处理器502执行所述程序时实现如下步骤:
226.获取预设的内存配置因子及待配置的目标pdu节点的序列号;
227.基于所述内存配置因子及所述序列号,按照预设的rb位置算法,确定目标rb队列中的第一目标位置,所述第一目标位置用于存放目标pdu队列;
228.基于所述内存配置因子及所述序列号,按照预设的pdu位置算法,确定所述目标pdu节点位于所述目标pdu队列中的第二目标位置,在所述第二目标位置对所述目标pdu节点进行内存配置。
229.此外,上述的存储器501中的计算机程序可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
230.处理器502执行所述程序所涉及的方法流程,具体可以参将上述方法实施例,此处不再赘述。
231.本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的数据传输处理方法,例如包括:
232.获取预设的内存配置因子及待配置的目标pdu节点的序列号;
233.基于所述内存配置因子及所述序列号,按照预设的rb位置算法,确定目标rb队列中的第一目标位置,所述第一目标位置用于存放目标pdu队列;
234.基于所述内存配置因子及所述序列号,按照预设的pdu位置算法,确定所述目标pdu节点位于所述目标pdu队列中的第二目标位置,在所述第二目标位置对所述目标pdu节点进行内存配置。
235.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
236.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
237.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

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

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

相关文献