CN102148757B - 一种多核系统报文分发方法及装置 - Google Patents
一种多核系统报文分发方法及装置 Download PDFInfo
- Publication number
- CN102148757B CN102148757B CN201110033391.3A CN201110033391A CN102148757B CN 102148757 B CN102148757 B CN 102148757B CN 201110033391 A CN201110033391 A CN 201110033391A CN 102148757 B CN102148757 B CN 102148757B
- Authority
- CN
- China
- Prior art keywords
- core
- user
- message
- customer instance
- distribution module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种多核系统报文分发方法及装置,该方法包括:从网口读取报文头部,根据提取的所述报文头部中的用户标识得出用户实例所在的核,并通知用户实例所在的核收取报文;用户实例所在的核收到通知后,收取报文并将报文净荷分发至本核相应的用户实例。采用本发明,可以将报文从网口收取并快速分发到每个核上的用户实例,并且解决了现有报文分发模块对CPU要求过高的问题。
Description
技术领域
本发明涉及通信技术领域,更具体地,涉及一种多核系统报文分发方法及装置。
背景技术
基站系统大多采用控制面和媒体面(也称用户面)分离的架构,其中控制面单板负责系统管理、用户接入控制和媒体面资源分配;媒体面则负责处理用户数据(包括语音数据等)处理。因而,媒体面单板支持的用户数和处理能力关系到对整个基站系统的用户指标和性能指标。
随着基站系统对集成度和高容量、高性能的要求,媒体面单板越来越需要高性能处理能器,作为高性能处理器代表的多核处理器成为首选。 目前,常见的用于基站系统的高性能多核处理器芯片,一般有4到8个核,甚至更多。这些多个核之间可并行处理各自的线程,但也共享一些公共资源,比如内存、网口等。对于这些公共资源,各个核之间必须是互斥访问。
为了充分利用多核处理器并行处理的能力,必然要将用户合理分配到每个核上。即,每个核上都被合理分配有一定数量的用户实例,不同核上的用户实例并行处理各自的数据。
多核处理器一般配置有GE(千兆)网口,或者更高速率的网口。从网口上收到的报文,首先会被硬件逻辑放入一个报文缓存区,之后需要分发到具体用户处理,而后要从缓存区中删掉该报文。
一般报文头部会携带有用户标识,可唯一标识该报文属于某一个用户实例。每个从网口收到的报文将根据用户标识分发到每个具体用户实例。
结合图1所示,现有技术中,常见的报文分发处理方法是:为了减少对网口的互斥访问,采用单独的一个收包模块从网口读取整个报文净荷,解析用户标识,然后直接分发到用户实例,最后从报文缓存区中删掉删除该报文。其中,收取报文净荷和分发至具体用户实例这两部分是非常耗费CPU的,这将导致收包模块对CPU要求很高,其所在核容易存在CPU资源占用率居高不下的情况。
发明内容
本发明解决的技术问题是提供一种多核系统报文分发方法及装置,可以从网口收取媒体面报文并快速分发到每个核上的用户实例。
为解决上述技术问题,本发明提供了一种多核系统报文分发方法,所述方法包括:
从网口读取报文头部,根据提取的所述报文头部中的用户标识得出所述用户实例所在的核,并通知所述用户实例所在的核收取报文;
所述用户实例所在的核收到所述通知后,收取报文并将报文净荷分发至本核相应的用户实例。
更进一步地,所述根据所述用户标识得出所述用户实例所在的核,具体是指:
根据预先配置的用户标识与核号的对应关系,得出所述用户实例所在的核号。
更进一步地,所述根据所述用户标识得出所述用户实例所在的核,具体是指:
将所述用户标识与每核最大用户数的比值向下取整,得出所述用户实例所在的核号;其中,各核上的每核最大用户数相等。
更进一步地,所述用户实例所在的核收取报文后,根据提取的所述报文头部中的用户标识将所述报文净荷分发至本核相应的用户实例。
更进一步地,所述方法还包括:
所述用户实例所在的核将所述报文净荷分发至相应的用户实例后,从缓存区中删除所述报文。
本发明还提供了一种多核系统报文分发装置,所述装置包括与网口相连的一级分发模块,和各个核上的二级分发模块,其中:
所述一级分发模块用于,从所述网口读取报文头部,根据提取的所述报文头部中的用户标识得出所述用户实例所在的核,并通知所述用户实例所在的核收取报文;
所述二级分发模块用于,收到所述收取报文的通知后,收取报文并将报文净荷分发至本核相应的用户实例。
更进一步地,所述一级分发模块用于,根据预先配置的用户标识与核号的对应关系,得出所述用户实例所在的核号。
更进一步地,所述一级分发模块用于,将所述用户标识与每核最大用户数的比值向下取整,得出所述用户实例所在的核号;其中,各核上的每核最大用户数相等。
更进一步地,所述二级分发模块用于,收取报文后,根据提取的所述报文头部中的用户标识将所述报文净荷分发至本核相应的用户实例。
更进一步地,所述二级分发模块还用于,将所述报文净荷分发至相应的用户实例后,从缓存区中删除所述报文。
采用本发明提供的媒体面报文二级分发方法,可以将报文从网口收取并快速分发到每个核上的用户实例,并且解决了现有报文分发模块对CPU要求过高的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为依据现有技术的报文分发处理示意图;
图2为依据本发明实施例的报文分发装置的示意图;
图3为依据本发明实施例的媒体面报文一级分发处理流程示意图;
图4为依据本发明实施例的媒体面报文二级分发处理流程示意图。
具体实施方式
本发明的主要思路如下:提出一种媒体面报文二级分发方法,将网口收取的报文,做二级分发。其中,第一级分发是只读取报文头部,提取其中的用户标识,计算出所在核号,通知该用户所在核,来收取报文净荷;第二级分发是用户所在核读取报文净荷,然后根据头部用户标识分发到用户实例。
基于以上思路,本发明提供一种多核系统报文分发方法,具体采用如下技术方案:
从网口读取报文头部,根据提取的所述报文头部中的用户标识得出所述用户实例所在的核,并通知所述用户实例所在的核收取报文;
所述用户实例所在的核收到所述通知后,收取报文并将报文净荷分发至相应的用户实例。
进一步地,所述根据所述用户标识得出所述用户实例所在的核,具体是指:
根据预先配置的用户标识范围与各个核号的对应关系,得出所述用户实例所在的核号。
或者,所述根据所述用户标识得出所述用户实例所在的核,具体也可以是:
所述用户实例所在的核号等于所述用户标识与每核最大用户数的比值向下取整。
进一步地,所述用户实例所在的核收取所述报文净荷后,根据报文头部长提取的用户标识将所述报文净荷分发至相应的用户实例。
进一步地,所述方法还包括:
所述用户实例所在的核将所述报文净荷分发至相应的用户实例后,从缓存区中删除所述报文。
为了便于阐述本发明,以下将结合附图及具体实施例对本发明技术方案的实施作进一步详细描述。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图2所示,本发明实施例的多核系统报文分发装置主要包括以下部分:
第一部分是一级分发模块,用于从网口只读取报文头部,提取其中用户标识,计算出用户所在核号,通知该用户所在核,收取报文净荷。
其中,由于一级分发模块只读取报文头部,而无需读取报文净荷,因此,一级分发模块对于CPU的要求不高。
第二部分是二级分发模块,用户所在核读取报文净荷,然后根据头部用户标识分发到各用户实例,最后从缓存区中删除该报文。
其中,每个用户实例只驻留在一个核上。各个具体核上的用户处理模块用于处理本用户实例的报文净荷。
图3示出了本发明实施例的一级分发模块的处理流程,如图3所示,该流程主要包括以下步骤:
步骤101:从网口读取报文头部。
步骤102:提取其中用户标识。
步骤103:计算出用户所在核号。
步骤104:通知该用户所在核上的二级分发模块收取报文。
网口的报文一般由硬件逻辑放入一个网口报文缓存区,该缓存区大小有限,必须快速拷贝走然后删除,以便再存放新的报文。
这里的收取报文是指,将报文从网口报文缓存区中拷贝出来到本地缓存区,然后通知释放这个报文占用的网口报文缓存区。
图4示出了本发明实施例的二级分发模块的处理流程,如图4所示,该流程主要包括以下步骤:
步骤201:用户所在核上的二级分发模块从网口报文缓存区中读取报文。
步骤202:提取其中用户标识。
步骤203:将报文净荷分发到用户实例处理。
步骤204:从缓存区中删除该报文。
根据以上描述,本发明提出了一种媒体面报文二级分发机制,其至少具有如下特点:
1)将收包功能划分为一个一级分发模块和多个二级分发模块;
2)一级分发模块只负责读取报文头部,确定报文应归属哪个媒体核,然后通知对应二级分发模块去读取报文净荷。由于只读取报文头部,且不作具体的分发,这样一级分发模块对CPU的要求就不高,从而很好地解决了只有一个收包模块对CPU要求很高的问题;
3)每个媒体面核上配置一个 二级分发模块,每个二级分发模块只负责本核上所有用户实例报文的实际收取和分发。也就是将收包功能中最耗CPU的部分,收取报文净荷和派发给用户实例这部分功能,分散到各个核上。这样,经过分散后,二级分发模块对CPU的要求也不会高。
此外,在多核系统中进行实际部署时,推荐操作如下:
a)一级分发模块可仅配置一个;二级分发模块可配置多个,一般是每个媒体面核上配置一个二级分发模块;
b)由于一级分发模块对CPU要求不高,可固定运行于一个核;也可由操作系统随机调度到空闲核上运行。
c)根据用户标识计算所在核号的方法有多种,但应简单而高效。根据用户标识计算所在核号的方法,可由分配的用户标识编号来决定。具体而言,可采用以下方式进行计算:
用户标识编号 = (核号×每核最大用户数) + 每个核上用户编号。
其中,每个核上用户编号是指,如果这个核上有100个用户,则第一个用户编号为1,第二个用户编号为2,以此类推,第100个用户编号为100。而假如系统共有4个核,每个核上100个用户。则,第一个核上的用户标识编号是1到100;第二个核上的用户标识编号是101到200;第三个核是201到300;第四个核是301到400。
这样,第二核上第20号用户,用户标识编号就是:2*100+20 = 220。
假如有个报文,用户标识为220,那么,220除以100向下取整是2,则该用户实例位于第二个核上。
220取模100是20,则该用户为第二个核上的20号用户。
即:核号为用户标识编号除以每核最大用户数后取整。
在另一个示例中,假如有8个核,每个核支持1000个用户。
则第3个核上第100个用户标识编号为:3×1000 + 100 = 3100。
通过编号计算其核号:3100÷1000,再取整得3,则该用户位于3号核。
以上仅为本发明的优选实施案例而已,并不用于限制本发明,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
Claims (10)
1.一种多核系统报文分发方法,其特征在于,所述方法包括:
从网口读取报文头部,根据提取的所述报文头部中的用户标识得出所述用户实例所在的核,并通知所述用户实例所在的核收取报文;
所述用户实例所在的核收到所述通知后,收取报文并将报文净荷分发至本核相应的用户实例;
所述用户标识为系统为用户分配的编号。
2.如权利要求1所述的方法,其特征在于,
所述根据所述用户标识得出所述用户实例所在的核,具体是指:
根据预先配置的用户标识与核号的对应关系,得出所述用户实例所在的核号。
3.如权利要求1所述的方法,其特征在于,
所述根据所述用户标识得出所述用户实例所在的核,具体是指:
将所述用户标识与每核最大用户数的比值向下取整,得出所述用户实例所在的核号;其中,各核上的每核最大用户数相等。
4.如权利要求1、2或3所述的方法,其特征在于,
所述用户实例所在的核收取报文后,根据提取的所述报文头部中的用户标识将所述报文净荷分发至本核相应的用户实例。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
所述用户实例所在的核将所述报文净荷分发至相应的用户实例后,从缓存区中删除所述报文。
6.一种多核系统报文分发装置,其特征在于,所述装置包括与网口相连的一级分发模块,和各个核上的二级分发模块,其中:
所述一级分发模块用于,从所述网口读取报文头部,根据提取的所述报文头部中的用户标识得出所述用户实例所在的核,并通知所述用户实例所在的核收取报文;
所述二级分发模块用于,收到所述收取报文的通知后,收取报文并将报文净荷分发至本核相应的用户实例;
所述用户标识为系统为用户分配的编号。
7.如权利要求6所述的装置,其特征在于,
所述一级分发模块用于,根据预先配置的用户标识与核号的对应关系,得出所述用户实例所在的核号。
8.如权利要求6所述的装置,其特征在于,
所述一级分发模块用于,将所述用户标识与每核最大用户数的比值向下取整,得出所述用户实例所在的核号;其中,各核上的每核最大用户数相等。
9.如权利要求6、7或8所述的装置,其特征在于,
所述二级分发模块用于,收取报文后,根据提取的所述报文头部中的用户标识将所述报文净荷分发至本核相应的用户实例。
10.如权利要求9所述的装置,其特征在于,
所述二级分发模块还用于,将所述报文净荷分发至相应的用户实例后,从缓存区中删除所述报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110033391.3A CN102148757B (zh) | 2011-01-31 | 2011-01-31 | 一种多核系统报文分发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110033391.3A CN102148757B (zh) | 2011-01-31 | 2011-01-31 | 一种多核系统报文分发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102148757A CN102148757A (zh) | 2011-08-10 |
CN102148757B true CN102148757B (zh) | 2015-09-16 |
Family
ID=44422767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110033391.3A Active CN102148757B (zh) | 2011-01-31 | 2011-01-31 | 一种多核系统报文分发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102148757B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051528B (zh) * | 2012-12-14 | 2016-02-10 | 瑞斯康达科技发展股份有限公司 | 一种用于总线的报文快速分发方法及装置 |
CN104158764B (zh) * | 2014-08-12 | 2018-02-06 | 新华三技术有限公司 | 报文处理方法及装置 |
CN105991755B (zh) * | 2015-05-21 | 2019-03-15 | 杭州迪普科技股份有限公司 | 业务报文分发方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564134A (zh) * | 2004-04-13 | 2005-01-12 | 中兴通讯股份有限公司 | 通讯系统中多处理器的选择方法 |
CN101217467A (zh) * | 2007-12-28 | 2008-07-09 | 杭州华三通信技术有限公司 | 核间负载分发装置及方法 |
-
2011
- 2011-01-31 CN CN201110033391.3A patent/CN102148757B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564134A (zh) * | 2004-04-13 | 2005-01-12 | 中兴通讯股份有限公司 | 通讯系统中多处理器的选择方法 |
CN101217467A (zh) * | 2007-12-28 | 2008-07-09 | 杭州华三通信技术有限公司 | 核间负载分发装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102148757A (zh) | 2011-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108874562A (zh) | 分布式高并发消息队列推送系统 | |
CN105391684A (zh) | 一种策略的集中管理方法及集中管理设备 | |
CN106936739B (zh) | 一种报文转发方法及装置 | |
CN103346902B (zh) | 数据采集调度的方法及系统 | |
CN104077420A (zh) | 一种数据导入HBase数据库的方法和装置 | |
CN104331659A (zh) | 一种关键应用主机系统资源应用隔离的设计方法 | |
CN102148757B (zh) | 一种多核系统报文分发方法及装置 | |
EP3026869B1 (en) | Method, device and system for carrying out telecommunication capability group sending | |
CN103746927A (zh) | 基于优先级的流控pfc方法及发送设备、接收设备 | |
CN103236984A (zh) | 一种延迟容忍网络中高效的传染路由缓存管理策略 | |
CN103685517A (zh) | 一种基于业务类别特征的存储分级调度方法及系统 | |
CN103218254B (zh) | 一种多队列的自动售检票数据处理方法 | |
CN102802214A (zh) | 一种基于wlan网络的速率自适应的系统和方法 | |
CN107172193A (zh) | 一种基于集群的负载均衡方法及其装置 | |
CN106330641B (zh) | 一种超低功耗can网络通讯方法 | |
CN108139969B (zh) | 一种内存配置方法、装置及系统 | |
CN104052778A (zh) | 分布式的话单统计方法、装置以及系统 | |
CN103973811A (zh) | 一种可动态迁移的高可用集群管理方法 | |
Jin et al. | System model and performance estimation of dynamic spectrum allocation strategy with multi-channel and imperfect sensing | |
CN105391669A (zh) | 一种电力线通信频谱碎片整理方法和装置 | |
CN104333875B (zh) | 一种频点调整方法及装置 | |
CN101478760B (zh) | 频率资源管理方法 | |
CN103532758A (zh) | 适合下一代传输、数据设备融合的配置处理方法 | |
CN112788768A (zh) | 一种通信资源分配方法及装置 | |
CN108076447A (zh) | 一种面向业务的mtc设备动态接入控制方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |