一种针对空口协议数据面的数据处理方法及装置转让专利

申请号 : CN201710044159.7

文献号 : CN106851667B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄勇吴治鸣

申请人 : 京信通信系统(中国)有限公司京信通信系统(广州)有限公司京信通信技术(广州)有限公司天津京信通信系统有限公司

摘要 :

本发明公开了一种针对空口协议数据面的数据处理方法及装置,获取基站的硬件核总数Y和所述基站需要支持的小区数量N;根据所述基站需要支持的小区数量N和所述基站的硬件核总数Y的关系,确定用于处理小区MAC层调度的硬件核数M1;根据所述基站的硬件核总数Y和所述用于处理小区媒体访问控制MAC层调度的硬件核数M1,确定用于处理用户数据的硬件核数M2,其中,M1+M2≤Y。通过将硬件核总数进行合理分配,具体分为处理小区MAC层调度的硬件核,数量为M1;以及处理用户数据的硬件核,数量为M2。利用多核处理器分类并行处理达到满足LTE空口协议栈数据面高吞吐、多小区、多用户的目的。

权利要求 :

1.一种针对空口协议数据面的数据处理方法,其特征在于,包括:获取基站的硬件核总数Y和所述基站需要支持的小区数量N;

根据所述基站需要支持的小区数量N和所述基站的硬件核总数Y的关系,确定用于处理小区MAC层调度的硬件核数M1;

根据所述基站的硬件核总数Y和所述用于处理小区媒体访问控制MAC层调度的硬件核数M1,确定用于处理用户数据的硬件核数M2,其中,M1+M2≤Y。

2.如权利要求1所述的方法,其特征在于,根据所述基站需要支持的小区数量N和所述基站的硬件核总数Y的关系,确定用于处理小区MAC层调度的硬件核数M1,包括:根据每个小区占用一个硬件核进行小区MAC层调度,每个小区占用一个硬件核处理用户数据的原则,确定Y是否大于等于2N;

在Y≥2N时,确定用于处理小区MAC层调度的硬件核数M1为N,确定用于处理用户数据的硬件核数M2=Y-N。

3.如权利要求2所述的方法,其特征在于,还包括:

在Y<2N时,根据一个处理小区MAC层调度的硬件核为两个小区服务的原则,确定用于处理小区MAC层调度的硬件核数M1,M1为不小于N/2的整数;并确定用于处理用户数据的硬件核数M2=Y-M1。

4.如权利要求1至3任一项所述的方法,其特征在于,所述确定用于处理用户数据的硬件核数M2之后,还包括:确定所述基站内小区的小区调度线程组和用户数据线程组;

将小区调度线程组部署在处理小区MAC层调度的M1个硬件核上,将用户数据线程组部署在处理用户数据的M2个硬件核上;

根据处理用户数据的硬件核的负荷调整接入所述用户数据线程组的用户的部署。

5.如权利要求4所述的方法,其特征在于,所述根据处理用户数据的硬件核的负荷调整接入所述用户数据线程组的用户的部署,包括:根据每个用户数据线程组记录接入的用户数,将已接入的用户数最少的用户数据线程组作为新接入用户的用户数据线程组;

或,

根据每个用户数据线程组记录设定时长内的所属硬件核的CPU平均负荷,将CPU平均负荷最小的硬件核上部署的用户数据线程组作为新接入用户的用户数据线程组;

或,

根据每个用户数据线程组记录设定时长内的所属硬件核的CPU平均负荷,若最大CPU平均负荷与最小CPU平均负荷之差超过设定阈值,则将所述最大CPU平均负荷的硬件核上部署的用户数据线程组的用户调整至所述最小CPU平均负荷的硬件核上部署的用户数据线程组。

6.一种针对空口协议数据面的数据处理装置,其特征在于,包括:获取单元:用于获取基站的硬件核总数Y和所述基站需要支持的小区数量N;

第一确定单元:用于根据所述基站需要支持的小区数量N和所述基站的硬件核总数Y的关系,确定用于处理小区MAC层调度的硬件核数M1;

第二确定单元:用于根据所述基站的硬件核总数Y和所述用于处理小区媒体访问控制MAC层调度的硬件核数M1,确定用于处理用户数据的硬件核数M2,其中,M1+M2≤Y。

7.如权利要求6所述的装置,其特征在于,第一确定单元,具体用于:根据每个小区占用一个硬件核进行小区MAC层调度,每个小区占用一个硬件核处理用户数据的原则,确定Y是否大于等于2N;

在Y≥2N时,确定用于处理小区MAC层调度的硬件核数M1为N;第二确定单元确定用于处理用户数据的硬件核数M2=Y-N。

8.如权利要求7所述的装置,其特征在于,所述第一确定单元还用于:在Y<2N时,根据一个处理小区MAC层调度的硬件核为两个小区服务的原则,确定用于处理小区MAC层调度的硬件核数M1,M1为不小于N/2的整数;第二确定单元确定用于处理用户数据的硬件核数M2=Y-M1。

9.如权利要求6至8任一项所述的装置,其特征在于,还包括调整单元,用于:确定所述基站内小区的小区调度线程组和用户数据线程组;

将小区调度线程组部署在处理小区MAC层调度的M1个硬件核上,将用户数据线程组部署在处理用户数据的M2个硬件核上;

根据处理用户数据的硬件核的负荷调整接入所述用户数据线程组的用户的部署。

10.如权利要求9所述的装置,其特征在于,所述调整单元,还用于:根据每个用户数据线程组记录接入的用户数,将已接入的用户数最少的用户数据线程组作为新接入用户的用户数据线程组;

或,

根据每个用户数据线程组记录设定时长内的所属硬件核的CPU平均负荷,将CPU平均负荷最小的硬件核上部署的用户数据线程组作为新接入用户的用户数据线程组;

或,

根据每个用户数据线程组记录设定时长内的所属硬件核的CPU平均负荷,若最大CPU平均负荷与最小CPU平均负荷之差超过设定阈值,则将所述最大CPU平均负荷的硬件核上部署的用户数据线程组的用户调整至所述最小CPU平均负荷的硬件核上部署的用户数据线程组。

说明书 :

一种针对空口协议数据面的数据处理方法及装置

技术领域

[0001] 本发明涉及LTE(Long Term Evolution,长期演进)技术领域,尤其涉及一种针对空口协议数据面的数据处理方法及装置。

背景技术

[0002] LTE作为第四代移动通信的标准技术之一,是一种专门为移动高宽带应用而设计的无线通信标准。无线接口可分为三个协议层:物理层L1、数据链路层L2和网络层L3,如图1所示。
[0003] LTE无线通信空口协议的数据面L2包括PDCP(Packet Data Convergence Protocol,分组数据汇聚协议)层、RLC(Radio Link Control,无线链路控制协议)层和MAC(Media Access Control,媒体接入控制协议)层。PDCP层负责数据头部压缩/解压缩、完整性保护、加密/解密、PDCP SN(Serial Number,序列号)维护、按序递交、切换数据倒换和定时丢弃等功能;RLC协议层负责TM(Transparent Mode,透传模式)、UM(Unacknowledged Mode,非确认模式)和AM(Acknowledged Mode,确认模式)三种模式数据的传输,数据的分段、级联、重组、重分段和ARQ(Automatic Repeat Request,自动重传请求)等功能;MAC协议层负责逻辑信道与传输信道映射、逻辑信道复用与解复用、HARQ(Hybrid Automatic Repeat Request,混合自动重传请求)、动态调度、半静态调度和传输格式选择等功能。
[0004] 在现有的LTE空口协议的数据面数据处理流程中,对于下行数据传输,PDCP对来自上层的数据包增加PDCP头部信息、进行头压缩并加密后发送给RLC;RLC对来自PDCP的无线链路控制层服务数据单元根据MAC层的调度指定长度进行分段、级联、填充处理并增加相应的RLC头部信息,形成无线链路控制层协议数据单元;然后MAC层将来自不同逻辑信道上的数据复用到传输信道,复用处理基于一组既定的TB(Transport Block,传输块)尺寸和传输格式,涉及串接、填充、增加相应的MAC头部信息和MAC控制信息形成MAC PDU(Protocol Data Unit,协议数据单元)的操作;经过MAC处理后形成的TB传送到底层,经过空口无线发送到终端。
[0005] 在现有的LTE空口协议的数据面数据处理流程中,对于上行数据传输,MAC层将上行接收到的数据进行去MAC头部,解复用,将解复用后的数据发送到RLC,同时将解复用后的MAC控制信息发送到MAC调度;RLC对接收到的数据进行去RLC头部,重组后发送到PDCP;PDCP对接收到的数据进行解密、解头压缩、及去PDCP头部,然后将数据包按序递交到上层。
[0006] 在单载波情况下,LTE数据传输速率上行可达50Mbps,下行可达100Mbps,在载波聚合情况下,速率更是根据聚合的载波个数而成倍数增加,同时随着智能终端设备急剧增加,要求基站支持的用户数呈数量级提高。然而,现有技术的2G和3G空口协议的数据面架构基于单核或多核硬件处理器上部署软件单线程或多线程的设计架构,难以满足LTE高速率的性能的要求。
[0007] 综上所述,现有的空口协议的数据面架构无法满足高吞吐、多小区、多用户的LTE基站设备数据面要求。

发明内容

[0008] 本发明提供一种针对空口协议数据面的数据处理方法及装置,用以解决现有技术中空口协议的数据面架构无法满足高吞吐、多小区、多用户的LTE基站设备数据面要求的问题。
[0009] 本发明实施例提供一种针对空口协议数据面的数据处理方法,包括:
[0010] 获取基站的硬件核总数Y和所述基站需要支持的小区数量N;
[0011] 根据所述基站需要支持的小区数量N和所述基站的硬件核总数Y的关系,确定用于处理小区MAC层调度的硬件核数M1;
[0012] 根据所述基站的硬件核总数Y和所述用于处理小区媒体访问控制MAC层调度的硬件核数M1,确定用于处理用户数据的硬件核数M2,其中,M1+M2≤Y。
[0013] 较佳地,根据所述基站需要支持的小区数量N和所述基站的硬件核总数Y的关系,确定用于处理小区MAC层调度的硬件核数M1,包括:
[0014] 根据每个小区占用一个硬件核进行小区MAC层调度,每个小区占用一个硬件核处理用户数据的原则,确定Y是否大于等于2N;
[0015] 在Y≥2N时,确定用于处理小区MAC层调度的硬件核数M1为N,确定用于处理用户数据的硬件核数M2=Y-N。
[0016] 较佳地,所述方法还包括:
[0017] 在Y<2N时,根据一个处理小区MAC层调度的硬件核为两个小区服务的原则,确定用于处理小区MAC层调度的硬件核数M1,M1为不小于N/2的整数;并确定用于处理用户数据的硬件核数M2=Y-M1。
[0018] 较佳地,所述确定用于处理用户数据的硬件核数M2之后,还包括:
[0019] 确定所述基站内小区的小区调度线程组和用户数据线程组;
[0020] 将小区调度线程组部署在处理小区MAC层调度的M1个硬件核上,将用户数据线程组部署在处理用户数据的M2个硬件核上;
[0021] 根据处理用户数据的硬件核的负荷调整接入所述用户数据线程组的用户的部署。
[0022] 较佳地,所述根据处理用户数据的硬件核的负荷调整接入所述用户数据线程组的用户的部署,包括:
[0023] 根据每个用户数据线程组记录接入的用户数,将已接入的用户数最少的用户数据线程组作为新接入用户的用户数据线程组;
[0024] 或,
[0025] 根据每个用户数据线程组记录设定时长内的所属硬件核的CPU平均负荷,将CPU平均负荷最小的硬件核上部署的用户数据线程组作为新接入用户的用户数据线程组;
[0026] 或,
[0027] 根据每个用户数据线程组记录设定时长内的所属硬件核的CPU平均负荷,若最大CPU平均负荷与最小CPU平均负荷之差超过设定阈值,则将所述最大CPU平均负荷的硬件核上部署的用户数据线程组的用户调整至所述最小CPU平均负荷的硬件核上部署的用户数据线程组。
[0028] 本发明实施例还提供一种针对空口协议数据面的数据处理装置,包括:
[0029] 获取单元:用于获取基站的硬件核总数Y和所述基站需要支持的小区数量N;
[0030] 第一确定单元:用于根据所述基站需要支持的小区数量N和所述基站的硬件核总数Y的关系,确定用于处理小区MAC层调度的硬件核数M1;
[0031] 第二确定单元:用于根据所述基站的硬件核总数Y和所述用于处理小区媒体访问控制MAC层调度的硬件核数M1,确定用于处理用户数据的硬件核数M2,其中,M1+M2≤Y。
[0032] 较佳地,第一确定单元,具体用于:
[0033] 根据每个小区占用一个硬件核进行小区MAC层调度,每个小区占用一个硬件核处理用户数据的原则,确定Y是否大于等于2N;
[0034] 在Y≥2N时,确定用于处理小区MAC层调度的硬件核数M1为N;第二确定单元确定用于处理用户数据的硬件核数M2=Y-N。
[0035] 较佳地,所述第一确定单元还用于:
[0036] 在Y<2N时,根据一个处理小区MAC层调度的硬件核为两个小区服务的原则,确定用于处理小区MAC层调度的硬件核数M1,M1为不小于N/2的整数;第二确定单元确定用于处理用户数据的硬件核数M2=Y-M1。
[0037] 较佳地,所述装置还包括调整单元,用于:
[0038] 确定所述基站内小区的小区调度线程组和用户数据线程组;
[0039] 将小区调度线程组部署在处理小区MAC层调度的M1个硬件核上,将用户数据线程组部署在处理用户数据的M2个硬件核上;
[0040] 根据处理用户数据的硬件核的负荷调整接入所述用户数据线程组的用户的部署。
[0041] 较佳地,所述调整单元,还用于:
[0042] 根据每个用户数据线程组记录接入的用户数,将已接入的用户数最少的用户数据线程组作为新接入用户的用户数据线程组;
[0043] 或,
[0044] 根据每个用户数据线程组记录设定时长内的所属硬件核的CPU平均负荷,将CPU平均负荷最小的硬件核上部署的用户数据线程组作为新接入用户的用户数据线程组;
[0045] 或,
[0046] 根据每个用户数据线程组记录设定时长内的所属硬件核的CPU平均负荷,若最大CPU平均负荷与最小CPU平均负荷之差超过设定阈值,则将所述最大CPU平均负荷的硬件核上部署的用户数据线程组的用户调整至所述最小CPU平均负荷的硬件核上部署的用户数据线程组。
[0047] 本发明实施例提供一种针对空口协议数据面的数据处理方法及装置,获取基站的硬件核总数Y和所述基站需要支持的小区数量N;根据所述基站需要支持的小区数量N和所述基站的硬件核总数Y的关系,确定用于处理小区MAC层调度的硬件核数M1;根据所述基站的硬件核总数Y和所述用于处理小区媒体访问控制MAC层调度的硬件核数M1,确定用于处理用户数据的硬件核数M2,其中,M1+M2≤Y。通过将硬件核总数进行合理分配,具体分为处理小区MAC层调度的硬件核,数量为M1;以及处理用户数据的硬件核,数量为M2。利用多核处理器分类并行处理达到满足LTE空口协议栈数据面高吞吐、多小区、多用户的目的。

附图说明

[0048] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0049] 图1为本发明实施例提供的LTE无线通信空口协议的数据面;
[0050] 图2为本发明实施例提供的一种LTE空口协议的数据面软件架构示意图;
[0051] 图3为本发明实施例提供的一种针对空口协议数据面的数据处理方法流程示意图;
[0052] 图4为本发明实施例提供的一种针对空口协议数据面的数据处理方法流程图;
[0053] 图5为本发明实施例提供的一种针对空口协议数据面的数据处理装置结构示意图。

具体实施方式

[0054] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0055] 本发明实施例所指基站即公用移动通信基站,是无线电台站的一种形式,指在一定的无线电覆盖区中,通过移动通信交换中心,与移动电话终端之间进行信息传递的无线电收发信电台。
[0056] 下面对本发明实施例中的相关术语进行解释。
[0057] PDCP_UL THD(PDCP Up Link Thread,PDCP上行处理线程):负责解密、解头压缩、去PDCP头部信息、向上层(网络层)有序递交数据包等功能。
[0058] PDCP_DL THD(PDCP Down Link Thread,PDCP下行处理线程):负责加密、头压缩、增加PDCP头部信息、定时丢弃、向下层(RLC)递交数据包等功能。
[0059] RLC_UL THD(RLC Up Link Thread,RLC上行处理线程):负责级联、重组、重排序、上行ARQ、去RLC头部信息等功能。
[0060] RLC_DL THD(RLC Down Link Thread,RLC下行处理线程):负责分段、填充、重分段、下行ARQ、增加RLC头部信息等功能。
[0061] MAC_UL THD(MAC Up Link Thread,MAC上行处理线程):负责将传输信道的数据解复用到逻辑信道、去MAC头部信息等功能。
[0062] MAC_DL THD(MAC Down Link Thread,MAC下行处理线程):负责将逻辑信道的数据复用到传输信道,填充、增加MAC头部信息等功能。
[0063] MAC_SCH_UL THD(MAC Schedule Up Link Thread,MAC调度上行处理线程):负责上行MAC调度、上行授权等功能。
[0064] MAC_SCH_DL THD(MAC Schedule Down Link Thread,MAC调度下行处理线程):负责下行MAC调度功能、下行授权等功能。
[0065] 本发明实施例中用户数据线程组包括PDCP上行处理线程PDCP_UL THD、PDCP下行处理线程PDCP_DL THD、RLC上行处理线程RLC_UL THD、RLC下行处理线程RLC_DL THD、MAC上行处理线程MAC_UL THD、MAC下行处理线程MAC_DL THD,小区调度线程组包括上行MAC调度线程MAC_SCH_UL THD及下行MAC调度线程MAC_SCH_DL THD。
[0066] 本发明实施例提供的针对空口协议数据面的数据处理方法及装置基于数据面软件架构,如图2所示为本发明提供了一种LTE空口协议的数据面软件架构示意图,处理器的可用内核总数为S1+S2,一个内核处理一个线程组,S1个内核用于处理S1个用户数据线程组,S2个内核用于处理S2个小区调度线程组。通过将小区调度线程组与用户数据线程组分离,利用多核处理器合理分配并行处理该两类线程组达到满足LTE空口协议栈数据面高吞吐、多小区、多用户的目的。
[0067] 本发明实施例提供一种针对空口协议数据面的数据处理方法。如图3所示,为本发明实施例提供的一种针对空口协议数据面的数据处理方法流程示意图,包括:
[0068] 步骤301:获取基站的硬件核总数Y和基站需要支持的小区数量N。
[0069] 具体地,查询基站的处理器内核的数量,得到硬件核总数Y。查询基站支持的小区数,得到小区数量N。
[0070] 步骤302:根据基站需要支持的小区数量N和基站的硬件核总数Y的关系,确定用于处理小区MAC层调度的硬件核数M1;
[0071] 步骤303:根据基站的硬件核总数Y和用于处理小区MAC层调度的硬件核数M1,确定用于处理用户数据的硬件核数M2,其中,M1+M2≤Y。
[0072] 具体地,步骤302中,根据每个小区占用一个硬件核进行小区MAC层调度,以及每个小区占用一个硬件核处理用户数据的原则,确定Y是否大于等于2N。此时,为了各硬件核的负载均衡,首先考虑每个小区调度线程组单独处理一个小区的用户调度,一个小区配置一个用户数据线程组来处理用户数据。
[0073] 在Y≥2N时,确定用于处理小区MAC层调度的硬件核数M1为N,确定用于处理用户数据的硬件核数M2=Y-N。
[0074] 此时,小区调度线程组需要占用N个硬件核,剩余的硬件核可用于处理用户数据,由于Y-N≥N,即剩余硬件核数大于或等于小区数,因而剩余硬件核可全部或部分用于部署用户数据线程组,在此情况下可以满足一个小区至少配置一个用户数据线程组来处理用户数据。
[0075] 例如,基站的硬件核总数Y=8,基站的小区数量N=3,由于Y>2N,则用于处理小区MAC层调度的硬件核数M1=3,用于处理用户数据的硬件核数M2=5。即小区调度线程组需要占用3个硬件核,剩余5个硬件核用于处理用户数据。其中,5个硬件核不限于全部或部分处理用户数据线程组,可以根据需要支持的用户数进行相应的部署。优选的,一个小区至少配置一个硬件核处理用户数据线程组。
[0076] 在Y<2N时,根据一个处理小区MAC层调度的硬件核为两个小区服务的原则,确定用于处理小区MAC层调度的硬件核数M1,M1为不小于N/2的整数;并确定用于处理用户数据的硬件核数M2=Y-M1。
[0077] 此时,一个小区调度线程组处理两个小区的用户调度,至少需要N/2个硬件核来部署小区调度线程组,剩余硬件核用于部署用户数据线程组。
[0078] 具体地,当N/2不是整数时,需要进行向上取整。例如,小区数N=3,则N/2=1.5,此时M1需向上取整,即M1=2。
[0079] 需要说明的是,在硬件核总数Y较少的情况下,一个处理小区MAC层调度的硬件核也可以为两个以上小区服务,即也可以通过一个小区调度线程组处理两个以上的小区的用户调度,在此不做限制。
[0080] 当N≤Y-M1时,即剩余硬件核数大于或等于小区数,此时剩余硬件核可全部或部分用于部署用户数据线程组,在此情况下可以满足一个小区至少配置一个用户数据线程组来处理用户数据。
[0081] 例如,基站的硬件核总数Y=7,基站的小区数量N=4,由于Y<2N,则采用一个处理小区MAC层调度的硬件核为两个小区服务,即一个小区调度线程组处理两个小区的用户调度,此时用于处理小区MAC层调度的硬件核数M1=2,用于处理用户数据的硬件核数M2=5。由于N<M2,剩余5个硬件核用于处理4个小区的用户数据。
[0082] 再如,基站的硬件核总数Y=9,基站的小区数量N=5,由于Y<2N,则采用一个处理小区MAC层调度的硬件核为两个小区服务,即一个小区调度线程组处理两个小区的用户调度,此时用于处理小区MAC层调度的硬件核数M1向上取整为3,用于处理用户数据的硬件核数M2=6。由于N<M2,剩余6个硬件核用于处理5个小区的用户数据。
[0083] 当N>Y-M1时,即剩余硬件核数小于小区数,此时剩余硬件核可全部或部分用于部署用户数据线程组,此时一个用户数据线程组处理至少一个小区的用户数据。
[0084] 例如,基站的硬件核总数Y=5,基站的小区数量N=4,由于Y<2N,则采用一个处理小区MAC层调度的硬件核为两个小区服务,即一个小区调度线程组处理两个小区的用户调度,此时用于处理小区MAC层调度的硬件核数M1=2,用于处理用户数据的硬件核数M2=3。由于N>M2,剩余3个硬件核用于处理4个小区的用户数据。
[0085] 需要说明的是,当N>Y-M1,且N/2不是整数时,M1也可以进行向下取整,在此不做限制。例如,基站的硬件核总数Y=6,小区数量N=5,也可设置用于处理小区MAC层调度的硬件核数M1向下取整为2,则用于处理用户数据的硬件核数M2=4。由于N>M2,剩余4个硬件核用于处理5个小区的用户数据。
[0086] 需要说明的是,在LTE系统中,基站需要支持的用户数为上百或上千数量级,因此需要合理分配用户到各用户数据线程组,才能保证各硬件核负荷均衡。因此,步骤303之后,还需要根据处理用户数据的硬件核的负荷调整接入用户数据线程组的用户的部署。基于针对空口协议数据面的数据处理方法,本发明实施例还提供了在用户数量大的情况下保证各硬件核负荷均衡的三种方法。
[0087] 方法一:根据每个用户数据线程组记录接入的用户数,将已接入的用户数最少的用户数据线程组作为新接入用户的用户数据线程组。
[0088] 具体地,每个用户数据线程组记录已接入的用户数S,每个用户数据线程组接入一个新用户时S加一,释放一个用户时S减一。每次接入新用户时,在M2个用户数据线程组中选择记录的已接入用户数S最少的用户数据线程组作为新接入用户的用户数据线程。此方法相对简单,易实现,各用户数据线程组处理的用户数基本相同,但由于每个用户业务不同,数据量大小也就不同,各硬件核的负荷可能存在一定的不均衡性。
[0089] 方法二:
[0090] 根据每个用户数据线程组记录设定时长内的所属硬件核的CPU平均负荷,将CPU平均负荷最小的硬件核上部署的用户数据线程组作为新接入用户的用户数据线程组。
[0091] 具体地,每个用户数据线程组记录T秒时长内的所属硬件核的CPU平均处理负荷。当新用户接入时,选择CPU平均处理负荷最小的硬件核上部署的用户数据线程组作为新接入用户的用户数据线程组,此方法相对方法一实现复杂,但基本能使各硬件核负荷均衡。
[0092] 方法三:
[0093] 根据每个用户数据线程组记录设定时长内的所属硬件核的CPU平均处理负荷,若最大CPU平均负荷与最小CPU平均负荷之差超过设定阈值,则将最大CPU平均负荷的硬件核上部署的用户数据线程组的用户调整至所述最小CPU平均负荷的硬件核上部署的用户数据线程组。
[0094] 上述方法一和方法二都是新用户接入时确定所属的用户数据线程组,然而用户的业务数据量大小是动态变化的,虽然用户在接入时各硬件核负荷是均衡的,但随着各用户业务数据量大小的变化,硬件核负荷也是动态变化的。因此需要动态调整用户所属的用户数据线程组。
[0095] 具体地,每个用户数据线程组记录T秒时长内的所属硬件核的实时CPU平均处理负荷。若最大CPU负荷与最小CPU负荷之差超过设定阈值H,则将最大CPU平均负荷的硬件核上部署的用户数据线程组的用户调整至所述最小CPU平均负荷的硬件核上部署的用户数据线程组,然后重复如上动态调整过程,从而使得各用户数据线程组所属硬件核的实时CPU处理负荷的差值不超过设定阈值。此方法较为复杂,但能使各硬件核的负荷实时均衡。
[0096] 本发明实施例提供一种针对空口协议数据面的数据处理方法,通过将硬件核总数进行合理分配,具体分为处理小区MAC层调度的硬件核,数量为M1;以及处理用户数据的硬件核,数量为M2。利用多核处理器合理分配并行处理两类线程组达到满足LTE空口协议栈数据面高吞吐、多小区、多用户的目的,同时使各硬件核负荷均衡,提高硬件资源利用率及系统稳定性。
[0097] 本发明实施例还提供一种一种针对空口协议数据面的数据处理方法,如图4所示,为本发明实施例提供的一种针对空口协议数据面的数据处理方法流程图,包括:
[0098] 步骤401:获取基站的硬件核总数Y和基站的小区数量N。
[0099] 步骤402:判断Y≥2N是否成立,若是,则执行步骤403,否者执行步骤404。
[0100] 步骤403:确定用于处理小区MAC层调度的硬件核数M1=N,确定用于处理用户数据的硬件核数M2=Y-N。
[0101] 例如,基站的硬件核总数Y=8,基站的小区数量N=3,由于Y>2N,则用于处理小区MAC层调度的硬件核数M1=3,用于处理用户数据的硬件核数M2=5。即小区调度线程组需要占用3个硬件核,剩余5个硬件核用于处理用户数据。
[0102] 步骤404:确定用于处理小区MAC层调度的硬件核数为M1,M1为不小于N/2的整数,继续执行步骤405。
[0103] 步骤405:判断N>Y-M1是否成立,若是,则执行步骤406,否者执行步骤407。
[0104] 步骤406:配置一个用户数据线程组处理至少一个小区的用户数据。
[0105] 例如,基站的硬件核总数Y=5,基站的小区数量N=4,由于Y<2N,则采用一个处理小区MAC层调度的硬件核为两个小区服务,即一个小区调度线程组处理两个小区的用户调度,此时用于处理小区MAC层调度的硬件核数M1=2,用于处理用户数据的硬件核数M2=3。由于N>M2,剩余3个硬件核用于处理4个小区的用户数据,则配置一个用户数据线程组处理至少一个小区的用户数据
[0106] 步骤407:配置至少一个用户数据线程组处理一个小区的用户数据。
[0107] 例如,基站的硬件核总数Y=7,基站的小区数量N=4,由于Y<2N,则采用一个处理小区MAC层调度的硬件核为两个小区服务,即一个小区调度线程组处理两个小区的用户调度,此时用于处理小区MAC层调度的硬件核数M1=2,用于处理用户数据的硬件核数M2=5。由于N>M2,剩余5个硬件核用于处理4个小区的用户数据,则配置至少一个用户数据线程组处理一个小区的用户数据。
[0108] 基于同样的发明构思,本发明实施例还提供针对空口协议数据面的数据处理装置,如图5所示,为本发明实施例提供的针对空口协议数据面的数据处理装置结构示意图,包括:
[0109] 获取单元501:用于获取基站的硬件核总数Y和所述基站需要支持的小区数量N;
[0110] 第一确定单元502:用于根据所述基站需要支持的小区数量N和所述基站的硬件核总数Y的关系,确定用于处理小区MAC层调度的硬件核数M1;
[0111] 第二确定单元503:用于根据所述基站的硬件核总数Y和所述用于处理小区媒体访问控制MAC层调度的硬件核数M1,确定用于处理用户数据的硬件核数M2,其中,M1+M2≤Y。
[0112] 较佳地,第一确定单元502,具体用于:
[0113] 根据每个小区占用一个硬件核进行小区MAC层调度,每个小区占用一个硬件核处理用户数据的原则,确定Y是否大于等于2N;
[0114] 在Y≥2N时,确定用于处理小区MAC层调度的硬件核数M1为N;第二确定单元确定用于处理用户数据的硬件核数M2=Y-N。
[0115] 较佳地,所述第一确定单元502还用于:
[0116] 在Y<2N时,根据一个处理小区MAC层调度的硬件核为两个小区服务的原则,确定用于处理小区MAC层调度的硬件核数M1,M1为不小于N/2的整数;第二确定单元确定用于处理用户数据的硬件核数M2=Y-M1。
[0117] 较佳地,所述装置还包括调整单元504,用于:
[0118] 确定所述基站内小区的小区调度线程组和用户数据线程组;
[0119] 将小区调度线程组部署在处理小区MAC层调度的M1个硬件核上,将用户数据线程组部署在处理用户数据的M2个硬件核上;
[0120] 根据处理用户数据的硬件核的负荷调整接入所述用户数据线程组的用户的部署。
[0121] 较佳地,所述调整单元504,还用于:
[0122] 根据每个用户数据线程组记录接入的用户数,将已接入的用户数最少的用户数据线程组作为新接入用户的用户数据线程组;
[0123] 或,
[0124] 根据每个用户数据线程组记录设定时长内的所属硬件核的CPU平均负荷,将CPU平均负荷最小的硬件核上部署的用户数据线程组作为新接入用户的用户数据线程组;
[0125] 或,
[0126] 根据每个用户数据线程组记录设定时长内的所属硬件核的CPU平均负荷,若最大CPU平均负荷与最小CPU平均负荷之差超过设定阈值,则将所述最大CPU平均负荷的硬件核上部署的用户数据线程组的用户调整至所述最小CPU平均负荷的硬件核上部署的用户数据线程组。
[0127] 本发明实施例提供一种针对空口协议数据面的数据处理装置,获取基站的硬件核总数Y和所述基站需要支持的小区数量N;根据所述基站需要支持的小区数量N和所述基站的硬件核总数Y的关系,确定用于处理小区MAC层调度的硬件核数M1;根据所述基站的硬件核总数Y和所述用于处理小区媒体访问控制MAC层调度的硬件核数M1,确定用于处理用户数据的硬件核数M2,其中,M1+M2≤Y。通过将硬件核总数进行合理分配,具体分为处理小区MAC层调度的硬件核,数量为M1;以及处理用户数据的硬件核,数量为M2。利用多核处理器合理分配并行处理两类线程组达到满足LTE空口协议栈数据面高吞吐、多小区、多用户的目的,同时使各硬件核负荷均衡,提高硬件资源利用率及系统稳定性。
[0128] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
[0129] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0130] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0131] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0132] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。